Как вывести дополнительные реквизиты (характеристики) в динамическом списке 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Часто при разработке возникает задача вывести дополнительные реквизиты (характеристики) документов или справочников в динамический список. В Системе Компоновки Данных (СКД) этот механизм работает "из коробки" при использовании соответствующего расширения языка запросов. Однако при переносе аналогичного кода в динамический список разработчики иногда сталкиваются с тем, что дополнительные реквизиты не появляются в списке доступных полей объекта. Разберем по шагам, почему это происходит и как правильно настроить динамический список для работы с характеристиками.

Синтаксис описания характеристик в запросе

Проанализируем базовый вариант, когда мы хотим описать характеристики непосредственно в произвольном запросе динамического списка. Для этого используется специальная конструкция ХАРАКТЕРИСТИКИ. Посмотрим на рабочий пример описания для документа:


{ХАРАКТЕРИСТИКИ
    ТИП(Документ.ЧекККМ)
    ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения
    ПОЛЕКЛЮЧА Ссылка
    ПОЛЕИМЕНИ Наименование
    ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
    ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ДополнительныеСведения
    ПОЛЕОБЪЕКТА Объект
    ПОЛЕВИДА Свойство
    ПОЛЕЗНАЧЕНИЯ Значение }

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

Почему поля не появляются на форме списка?

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

Чтобы вывести дополнительные реквизиты на форму, выполним следующие действия в режиме Предприятия:

  1. Откроем нужную форму списка документов.
  2. Нажмем кнопку "Изменить форму" (или "Настроить форму").
  3. В дереве элементов формы найдем и выделим элемент Ссылка.
  4. Нажмем кнопку "Добавить поля".
  5. В открывшемся окне должны появиться дополнительные реквизиты, доступные для отметки флажками.

Важно: убедитесь, что вы настраиваете именно ту форму списка, для которой изменяли запрос! Ошибка с редактированием "не той" формы (например, формы выбора вместо формы списка) — одна из самых распространенных.

Обязательные условия и нюансы настройки динамического списка

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

  1. Обязательное присутствие поля Ссылка: Для того чтобы платформа смогла "подтянуть" значения характеристик, в выборке запроса динамического списка обязательно должно быть поле Ссылка. Более того, настоятельно рекомендуется в настройках свойств списка для поля Ссылка установить флажок "Использовать всегда". Если этого не сделать, платформа может оптимизировать запрос и исключить ссылку, после чего доп. реквизиты перестанут отображаться.
  2. Глобальная настройка метаданных: Вместо написания кода ХАРАКТЕРИСТИКИ в каждом запросе, вы можете настроить свойства объекта глобально. Кликните правой кнопкой мыши по нужному объекту в дереве конфигурации, выберите пункт "Характеристики" и укажите связи с ПВХ и регистрами. После этого доп. реквизиты будут автоматически доступны во всех стандартных списках и отчетах СКД.
  3. Особенности типа Булево: Разберем известную проблему с типом Булево. По таким дополнительным реквизитам в динамическом списке может некорректно работать отбор. Для обхода этой ситуации рекомендуется вместо встроенного типа Булево использовать элементы специального справочника (например, "Значения свойств объектов" из БСП).
  4. Влияние подсистемы "Свойства" из БСП: Если вы работаете в типовой конфигурации, помните, что Библиотека стандартных подсистем часто перехватывает вывод характеристик программно через общие модули (например, УправлениеСвойствами). В таких случаях ручное вмешательство в текст запроса может конфликтовать со штатными алгоритмами БСП.
  5. Производительность: Механизм характеристик работает через скрытые левые соединения с регистром сведений. Если пользователь добавил поле на форму, данные будут запрашиваться. Если скрыл — соединение не выполняется, что экономит ресурсы. Поэтому не устанавливайте флаг "Использовать всегда" для самих полей характеристик без острой необходимости.

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

← На главную