Как вывести дополнительный реквизит числового типа на форму списка справочника?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе разработки или доработки конфигураций 1С (особенно в типовых решениях, таких как Управление торговлей 11) часто возникает задача вывести дополнительные реквизиты, созданные пользователем в режиме 1С:Предприятие, непосредственно в форму списка справочника. Рассмотрим, почему это не всегда удается сделать «в два клика» и какими способами можно решить эту задачу, не снимая конфигурацию с поддержки.

Понимание проблемы: почему реквизиты не видны в списке

Динамический список, который используется в формах списков, работает на основе запроса к базе данных. В типовых конфигурациях, если для списка не задан Произвольный запрос, он обращается к Основной таблице справочника. Дополнительные реквизиты, в свою очередь, хранятся в отдельных служебных таблицах (например, СвойствоЗначение через механизм БСП), а не в таблице самого справочника. Поэтому стандартный механизм Изменить форму просто не видит эти данные как часть структуры объекта, и команда Добавить поля часто оказывается неактивной или бесполезной.

Решение 1: Использование расширения конфигурации (рекомендуемый способ)

Самый правильный и поддерживаемый путь — это использование Расширения конфигурации. Это позволяет изменить логику формирования запроса динамического списка, сохранив саму конфигурацию полностью «чистой» и обновляемой.

  1. Создайте новое Расширение конфигурации и добавьте в него нужный справочник (например, ЦеновыеГруппы).
  2. Перейдите в форму списка этого справочника в расширении.
  3. В модуле формы или в настройках динамического списка необходимо программно переопределить запрос, добавив левое соединение (LEFT JOIN) с таблицей значений свойств.
  4. Добавьте новое поле в Динамический список, задав ему путь к данным, который будет вычисляться через ваше соединение.
  5. После этого поле станет доступным в настройке Изменить форму, и вы сможете вывести его на экран.

Решение 2: Использование внешней формы списка

Если по каким-то причинам использование расширения ограничено, вы можете создать Внешнюю обработку со своей собственной формой списка. Это позволит вам полностью контролировать запрос к данным.

В этой форме вы размещаете Динамический список, для которого устанавливаете свойство Произвольный запрос = Истина. В тексте запроса вы можете написать произвольный SELECT, объединяющий основную таблицу справочника и таблицу с дополнительными реквизитами. Это дает гибкость, но требует поддержки собственной формы отдельно от типовой.

Решение 3: Анализ структуры табличной части

Иногда решение лежит на поверхности. Проверьте, предусмотрена ли в конфигурации табличная часть ДополнительныеРеквизиты для данного справочника. Если она заполнена, то в некоторых случаях (в зависимости от версии БСП) разработчики типового решения уже предусмотрели вывод этих полей.

Однако, если стандартный механизм недоступен, как в случае с Ценовыми группами в УТ 11, попытка просто добавить поле через Изменить форму может быть заблокирована платформой из-за того, что у объекта не настроено свойство Использовать всегда для реквизита Ссылка или из-за отсутствия вызова методов БСП в модуле формы.

Подведем итоги: что выбрать?

Таким образом, мы выяснили, что без изменения метаданных (через расширение) добавить доп. реквизит в стандартную форму списка невозможно, если это не предусмотрено разработчиком. Приступайте к созданию расширения, это надежный и профессиональный метод решения задачи.

← На главную