Обратились ко мне коллеги с вопрос: "Сделай так, чтобы контактное лицо(допреквизит) выбиралось с учетом партнера (второй допреквизит) . А сам партнер был из определенной папки". При чем часть пользователей используют эти допреквизиты и соответственно выводят их себе на форму, а часть нет. Естественно прозвучало пожелание, чтоб по максимуму сохранить возможность обновления конфигурации.
Долго искал варианты и в итоге пришел к следующему варианту: необходимо настроить Параметр выбора и связь параметров выбора.
СписокСвойств = Новый СписокЗначений;
КлючНазначения = Неопределено;
НаборыСвойствОбъекта = УправлениеСвойствамиСлужебный.ПолучитьНаборыСвойствОбъекта(
Объект, КлючНазначения);
Для каждого Строка Из НаборыСвойствОбъекта Цикл
Если УправлениеСвойствамиСлужебный.ВидыСвойствНабора(Строка.Набор).ДополнительныеРеквизиты Тогда
СписокСвойств.Добавить(
Строка.Набор, Строка.Заголовок);
КонецЕсли;
КонецЦикла;
ОписаниеСвойств = УправлениеСвойствамиСлужебный.ЗначенияСвойств(
Объект.ДополнительныеРеквизиты.Выгрузить(),
СписокСвойств,
Ложь);
Для каждого ТекРеквизит из Элементы.ГруппаДополнительныеРеквизиты.ПодчиненныеЭлементы Цикл
Для каждого ТекДопРеквизит из ОписаниеСвойств Цикл
Если найти(ТекРеквизит.имя,"_" + стрЗаменить(ВРег(Строка(ТекДопРеквизит.Свойство.УникальныйИдентификатор())),"-","x")) > 0 тогда
Если ТекДопРеквизит.Свойство.Заголовок = "Контактное лицо партнера" тогда
ТекРеквизит.СвязиПараметровВыбора = Новый ФиксированныйМассив(Новый массив);
НоваяСвязь = Новый СвязьПараметраВыбора("Отбор.Владелец", "ДополнительныйРеквизитЗначение_588521B2x57ECx11E7x8133x00155D001801_34175D5Cx581Fx11E7x8133x00155D001801");
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НоваяСвязь);
МассивНоваяСвязь = Новый ФиксированныйМассив(НовыйМассив);
ТекРеквизит.СвязиПараметровВыбора = МассивНоваяСвязь;
ИначеЕсли ТекДопРеквизит.Свойство.Заголовок = "Партнер" тогда
НовыйПараметр = Новый ПараметрВыбора("Отбор.Родитель", Какой - то родитель );
НовыйМассив = Новый Массив;
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
ТекРеквизит.ПараметрыВыбора = НовыеПараметры;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Этот код можно просто вписать в обработчик "ПриСозданииНаСервере" модуля формы либо добавить в расширение.
Будет работать на любой стандартной конфигурации 8.3 с использование БСП.
Тестировалось и работает на УТ 11.3.4.21.
На оригинальность не претендую, просто решил проблему и делюсь. Может кому - то поможет.