Понадобилось добавить в справочник дополнительный реквизит "Банковский счет контрагента".
По умолчанию дополнительный реквизит не связывается с контрагентом, выбранным в справочнике, поэтому пришлось дописать этот функционал.
Для этого были внесены изменения в код процедуры "УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме".
Но это изменения не работает так, как хотелось бы, а именно - при выборе счета выпадает список всех счетов всех контрагентов и организаций.
Совершенно случайно я обнаружил дополнительные телодвижения, которые неочевидны, но позволяют отбирать счет контрагента и списка счетов, владельцем которых является выбранный в элементе контрагент:
Необходимо установить правила видимости и доступности этого реквизита
Я установил такие правила
Имейте в виду, что эти правила следует устанавливать у записанного элемента. Если их установить до записи - работать не будет…
Если Вы уже установили, правила, можно их отменить и заново установить.
В результате получаем отбор по владельцу у дополнительного реквизита
Ну, и, как вишенка на торте, сделано автозаполнение банковского счета при выборе контрагента.
Для этого были внесены изменения в процедуру "КонтрагентПриИзменении" формы элемента, и добавлена процедура "ЗаполнитьБанковскийСчетНаСервере" в то же модуль.
Наверное поиск этого дополнительного реквизита по наименованию сделан топорно - пишите как сделать красивее без изменения конфигурации. Критика принимается.
Статью написал потому, что отбор работает при таких неочевидных условиях. Вот и решил поделиться…
Поскольку код занимает много места, его я помещаю в файл конфигурации, который можно скачать.
Разработка протестирована на конфигурации Документооборот КОРП 2.1.11.5 на платформе версии 8.3.11.3034.
PS
Скорее всего данный подход будет работать и в других конфигурациях на БСП.