Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Как изменить состав кнопок у элементов формы
Дальше: Как добавить в форму табличную часть

Как добавить поле для ввода значений подчиненного справочника

Менеджеры вашего предприятия удачно приобрели несколько партий товаров, и руководство пришло к выводу, что оплаты поставщикам необходимо привязывать не только к контрагентам, но и договорам с ними (ибо товар приобретали каждый раз на разных условиях).

Договоры хранятся в справочнике, подчиненном контрагентам, то есть каждый контрагент имеет некоторое количество договоров. Именно из них (а не вообще всех договоров) пользователь и должен выбрать какой-то один.

Задача вам ясна, с теорией модификации формы вы уже знакомы по , так что – вперед. Добавим в структуру данных документа реквизит ДоговорКонтрагента, разместим его в форме и ограничим пользователя в выборе договоров.

Итак, добавим реквизит ДоговорКонтрагента в документ РасходныйКассовыйОрдер и зададим тип этого реквизита – ссылка на справочник ДоговорыКонтрагента (рис. 2.182).

Рис. 2.182. Реквизиты документа

После этого реквизит станет доступен в форме документа в списке реквизитов основного реквизита формы. Перетащим его мышью в дерево элемента формы, при этом в форме появится соответствующее поле ввода, связанное с этим реквизитом (рис. 2.183).

Рис. 2.183. Отображение в форме нового реквизита объекта

Для получения положительного результата доработки осталось лишь добавить отбор договоров по контрагенту, и премия в кармане.

Чтобы список договоров отбирался с учетом выбранного ранее контрагента, необходимо задать этот отбор в свойстве СвязиПараметровВыбора реквизита ДоговорКонтрагента.

Однако воспользоваться этим свойством элемента формы, связанного с реквизитом, значит допустить методологическую ошибку. Если вы так и поступили, то вам стоит перечитать теоретические главы этой книги (главы , ). Дело в том, что часть свойств элементов формы сейчас есть и у реквизитов объектов, а значит, более правильно настраивать это там.

Откроем палитру свойств реквизита ДоговорКонтрагента и нажмем кнопку выбора у свойства СвязиПараметровВыбора. Откроется окно настройки параметров для выбора значений реквизита. Слева находится список всех доступных реквизитов документа, значения которых могут ограничивать список выбора для реквизита ДоговорКонтрагента. Перенесем в правый список параметров выбора реквизит Контрагент (рис. 2.184).

Рис. 2.184. Настройка отбора договоров по контрагенту

В поле Имя параметра выбора платформа автоматически добавила отбор по полю ВладелецОтбор.Владелец. Так произошло потому, что реквизит ДоговорКонтрагента имеет тип ссылки на справочник ДоговорыКонтрагента. А этот справочник подчинен справочнику Контрагенты, на который, в свою очередь, ссылается реквизит Контрагент, значения которого будут накладывать отбор на список договоров контрагента.

Как же все это работает? Да очень просто. Список договоров строится с помощью системы компоновки данных, на отбор которой и влияет свойство Связи параметров выбора (рис. 2.185).

Рис. 2.185. Отбор договоров по контрагенту

Вполне очевидно, что во всех формах нашего документа нам будет необходим отбор договоров по текущему контрагенту. Вот поэтому мы и настроили его на уровне не одной формы, а на уровне реквизита объекта.

Назад: Как изменить состав кнопок у элементов формы
Дальше: Как добавить в форму табличную часть