В данной статье мы рассмотрим механизм добавления реквизитов справочников путем добавления реквизитов в конфигураторе и альтернативный ему способ (наиболее полно реализованный в современных конфигурациях на основе управляемых форм (УНФ, УТ 11, БУХ 3.0)) – добавление реквизитов в пользовательском режиме через «Дополнительные реквизиты и свойства» (синонимы - «Наборы дополнительных реквизитов и сведений» / «Наборы свойств»).
На примере УНФ 1.4. добавим реквизит «БизнесРегион» для справочника «ДоговорыКонтрагентов».
В первом варианте нам необходимо в конфигураторе в справочник «ДоговорыКонтрагентов» добавить реквизит «БизнесРегион» (плюс при необходимости создать сам справочник «БизнесРегион»)
Во втором варианте в пользовательском режиме добавляем дополнительное свойство для справочника «ДоговорыКонтрагентов». Для того чтобы такая возможность стала возможной необходимо включить механизм «дополнительных реквизитов и сведений» ,- для УНФ это делается «Администрирование» -> «Настройки» -> «Сервисные настройки» -> флажок «Использовать дополнительные реквизиты и сведения». Само добавление реквизитов делается «Администрирование» -> «Наборы дополнительных реквизитов и сведений» – в подборе можно создать новое свойство или выбрать существующее (в нашем случае мы будем привязывать его к справочнику «ДоговорыКонтрагентов»).
На рис. представлен результат работы обоих вариантов.
Итого, для пользователя разница минимальна. Стоит упомянуть, что во втором случае кроме того, что совершенно не «тревожится» конфигурация, реквизит будет подхвачен отчетами на СКД (необходимая связь в последних релизах уже включена («Характеристики»))
Теперь посмотрим, как обращаться к созданным реквизитам для обоих случаев.
Первый вариант – обычное получение реквизита от договора:
"ВЫБРАТЬ
| РасходнаяНакладная.Договор.БизнесРегион КАК БизнесРегион,
| РасходнаяНакладная.Договор,
| РасходнаяНакладная.Ссылка,
| РасходнаяНакладная.СуммаДокумента КАК СуммаДокумента,
| РасходнаяНакладная.Организация,
| РасходнаяНакладная.Проведен
|ИЗ
| Документ.РасходнаяНакладная КАК РасходнаяНакладная
|ГДЕ
| РасходнаяНакладная.Заказ.ДатаОтгрузки = &ДатаОтгрузки
| И РасходнаяНакладная.Заказ.Дата МЕЖДУ &НачДата И &КонДата
| И РасходнаяНакладная.ПометкаУдаления = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| БизнесРегион,
| РасходнаяНакладная.Контрагент,
| РасходнаяНакладная.Договор
|ИТОГИ
| СУММА(СуммаДокумента)
|ПО
| БизнесРегион";
Во втором варианте мы соединимся с табличной частью справочника «ДоговорыКонтрагентов» - «ДополнительныеРеквизиты» (где физически находится созданный нами в пользовательском режиме реквизит «БизнесРегион»)
"ВЫБРАТЬ
| РасходнаяНакладная.Контрагент,
| РасходнаяНакладная.Договор,
| РасходнаяНакладная.Ссылка,
| РасходнаяНакладная.СуммаДокумента КАК СуммаДокумента,
| РасходнаяНакладная.Организация,
| РасходнаяНакладная.Проведен
|ПОМЕСТИТЬ ВТ
|ИЗ
| Документ.РасходнаяНакладная КАК РасходнаяНакладная
|ГДЕ
| РасходнаяНакладная.Заказ.ДатаОтгрузки = &ДатаОтгрузки
| И РасходнаяНакладная.Заказ.Дата МЕЖДУ &НачДата И &КонДата
| И РасходнаяНакладная.ПометкаУдаления = ЛОЖЬ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство,
| ДоговорыКонтрагентовДополнительныеРеквизиты.Значение КАК ДоговорБизнесРегион,
| ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка КАК Договор
|ПОМЕСТИТЬ ВТ_БизнесРегион
|ИЗ
| Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
|ГДЕ
| ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка В
| (ВЫБРАТЬ ВТ.Договор ИЗ ВТ КАК ВТ)
| И ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство.Наименование = ""БизнесРегион""
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ.Контрагент,
| ВТ.Договор,
| ВТ.Ссылка,
| ВТ.СуммаДокумента КАК СуммаДокумента,
| ВТ.Организация,
| ВТ.Проведен,
| ВТ_БизнесРегион.ДоговорБизнесРегион, КАК ДоговорБизнесРегион
|ИЗ
| ВТ КАК ВТ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_БизнесРегион КАК ВТ_БизнесРегион
| ПО ВТ.Договор = ВТ_БизнесРегион.Договор
|
|УПОРЯДОЧИТЬ ПО
| ВТ_БизнесРегион.ДоговорБизнесРегион,
| ВТ.Контрагент,
| ВТ.Договор
|ИТОГИ
| СУММА(СуммаДокумента)
|ПО
| ДоговорБизнесРегион";
Итого, для программиста тоже разница минимальна. Как говорится «а если нет разницы, зачем …» снимать конфигурацию с замка ?
PS: в приложении приводится внешняя обработка (пакетная печать накладных) реализующая указанный функционал (используется несколько реквизитов)