Имя: Пароль:
1C
 
открыть форму с отбором по доп.реквизиту
☑
0 vux13
 
21.10.26
✎
11:25
Как передать отбор по дополнительному реквизиту в параметр открытия формы выбора?

сейчас работает отбор по реквизиту объекта "Ответственный"

ссылку на ПВХ доп. реквизита получаю на сервере:
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Ответственный")

&НаКлиенте
Процедура ЗаказчикНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
		
	НастройкиКомпоновкиДанных = Новый НастройкиКомпоновкиДанных;
			
	ЭлементОтбора = НастройкиКомпоновкиДанных.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементОтбора.Использование = Истина;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбора.ПравоеЗначение = ПользователиКлиентСервер.ТекущийПользователь();
   
	ПараметрыФормы = Новый Структура("ФиксированныеНастройки, РежимВыбора, МножественныйВыбор", 
		НастройкиКомпоновкиДанных, Истина, Ложь);   	

	Если Объект.Заказчик <> Неопределено Тогда
    	ПараметрыФормы.Вставить("ТекущаяСтрока", Объект.Заказчик);
	КонецЕсли;		
		
	ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", ПараметрыФормы, Элемент);

КонецПроцедуры
1 paramedic
 
21.10.26
✎
11:31
Допреквизиты находятся в табличной части справочника/документа. Запрос в форме выбора не подтягивает табличные части.
2 Ненавижу 1С
 
гуру
21.10.26
✎
11:45
(1) почему нет, если это типовое, то все прописано в характеристиках и вполне может подтягивать. В общем сделать можно, но муторно
3 Chameleon1980
 
22.10.26
✎
06:09
отбери ссылки перед открытием и передай их в ФиксированныеНастройки
4 Ненавижу 1С
 
гуру
22.10.26
✎
09:51
(3) 100500 ссылок?
5 Chameleon1980
 
22.10.26
✎
12:43
(5)
большая, однако, система получается - овер 100500 пользователей.
ну 1с то же самое будет делать, только уже без твоего контроля
6 Ненавижу 1С
 
гуру
22.10.26
✎
12:39
(5) ссылки же на документы
7 vux13
 
22.10.26
✎
12:42
(3) не совсем понял какие ссылки и как их передать ?
8 Chameleon1980
 
22.10.26
✎
15:08
отбери пользователей
Выбрать Ссылка из Справочник.Пользователи.ДополнительныеРеквизиты
Где Свойство = &ПВХ и Значение = &ТвоеЗначение

Строки:

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = ПользователиКлиентСервер.ТекущийПользователь();


замени на

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    ЭлементОтбора.ПравоеЗначение = СсылкиНаПользователей.

я уже давал ответ в ТГ в группе, но ты не читатель нифига
9 Ненавижу 1С
 
гуру
22.10.26
✎
15:22
(8) дополнительный реквизит не у пользователей, а у контрагентов, судя по коду
10 Chameleon1980
 
22.10.26
✎
15:43
(9) у пользователей. У контрагента есть ответственный - пользователь. опять же - судя по коду.
А может и ты прав. но сути не меняет жеж.

Но автор в упор не хочет вникать даже.
Предлагал разные книжки почитать - не хочет, наверное.

Тут я пас.

(0) скорми написанное нейронке - пусть тебе объяснит, что тебе предлагают на твоем языке.

вообще задача из (0) напрямую (так, как хочет автор) может быть не очень реальная или трудоемкая. там поля ты не угадаешь т.к., скорее всего с УИДами для доп. реквизитов динамическими.
11 Ненавижу 1С
 
гуру
22.10.26
✎
16:00
можно перед открытием вообще свой текст запроса в динамический список передать - все доступно для изменения
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший