Часто при разработке возникает задача вывести дополнительные реквизиты (характеристики) документов или справочников в динамический список. В Системе Компоновки Данных (СКД) этот механизм работает "из коробки" при использовании соответствующего расширения языка запросов. Однако при переносе аналогичного кода в динамический список разработчики иногда сталкиваются с тем, что дополнительные реквизиты не появляются в списке доступных полей объекта. Разберем по шагам, почему это происходит и как правильно настроить динамический список для работы с характеристиками.
Проанализируем базовый вариант, когда мы хотим описать характеристики непосредственно в произвольном запросе динамического списка. Для этого используется специальная конструкция ХАРАКТЕРИСТИКИ. Посмотрим на рабочий пример описания для документа:
{ХАРАКТЕРИСТИКИ
ТИП(Документ.ЧекККМ)
ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ДополнительныеСведения
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Свойство
ПОЛЕЗНАЧЕНИЯ Значение }
Этот код сообщает платформе, откуда брать метаданные свойств и где хранятся их фактические значения. В теории, после добавления этого кода, поля должны стать доступны для вывода.
Рассмотрим самую частую ошибку. Как выяснилось в обсуждаемой ситуации, проблема крылась не в тексте запроса или ограничениях динамического списка, а в настройках пользовательского интерфейса. Разберем механизм добавления полей.
Чтобы вывести дополнительные реквизиты на форму, выполним следующие действия в режиме Предприятия:
Ссылка.Важно: убедитесь, что вы настраиваете именно ту форму списка, для которой изменяли запрос! Ошибка с редактированием "не той" формы (например, формы выбора вместо формы списка) — одна из самых распространенных.
Проанализируем дополнительные важные детали, без которых характеристики могут не работать корректно в динамическом списке:
Ссылка. Более того, настоятельно рекомендуется в настройках свойств списка для поля Ссылка установить флажок "Использовать всегда". Если этого не сделать, платформа может оптимизировать запрос и исключить ссылку, после чего доп. реквизиты перестанут отображаться.ХАРАКТЕРИСТИКИ в каждом запросе, вы можете настроить свойства объекта глобально. Кликните правой кнопкой мыши по нужному объекту в дереве конфигурации, выберите пункт "Характеристики" и укажите связи с ПВХ и регистрами. После этого доп. реквизиты будут автоматически доступны во всех стандартных списках и отчетах СКД.Булево. По таким дополнительным реквизитам в динамическом списке может некорректно работать отбор. Для обхода этой ситуации рекомендуется вместо встроенного типа Булево использовать элементы специального справочника (например, "Значения свойств объектов" из БСП).УправлениеСвойствами). В таких случаях ручное вмешательство в текст запроса может конфликтовать со штатными алгоритмами БСП.Применяя эти знания, вы сможете легко управлять выводом дополнительных реквизитов в динамических списках, избегая типовых ошибок при настройке пользовательских интерфейсов и запросов данных.