При доработке управляемых форм в 1С:Предприятие 8.3 разработчики часто сталкиваются с ситуацией, когда в метаданные документа добавляется новый реквизит, но при попытке добавить его в форму списка (например, в колонку таблицы) данный реквизит отсутствуют в дереве доступных полей формы.
Разберем подробнее, почему так происходит, и проанализируем основные способы решения этой задачи.
В управляемых формах отображением списков документов управляет реквизит формы с типом ДинамическийСписок. Поведение структуры полей динамического списка зависит от его настроек:
ВЫБРАТЬ. Доступными остаются только те поля, которые явно перечислены в запросе.Документ.Заказ), платформа не производит автоматический импорт состава реквизитов объекта метаданных.Если для динамического списка включена опция произвольного запроса, необходимо вручную прописать выбираемый реквизит в тексте запроса. Проанализируем порядок действий:
ДинамическийСписок (обычно он называется Список).ВЫБРАТЬ и добавим созданный реквизит.Рассмотрим пример корректировки запроса в динамическом списке:
ВЫБРАТЬ
ЗаказПокупателя.Ссылка КАК Ссылка,
ЗаказПокупателя.Дата КАК Дата,
ЗаказПокупателя.Номер КАК Номер,
ЗаказПокупателя.Проведен КАК Проведен,
ЗаказПокупателя.НовыйРеквизит КАК НовыйРеквизит
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
После сохранения изменений в запросе новое поле НовыйРеквизит появится в дереве данных динамического списка, и его можно будет перетащить на форму в качестве колонки таблицы.
Если произвольный запрос не содержит сложной логики, проверим настройку основной таблицы динамического списка:
Список.Документ.НазваниеВашегоДокумента.После этого платформа автоматически обновит состав полей dynamic list и предоставит доступ ко всем реквизитам объекта.
Если по каким-то причинам нет возможности или необходимости менять текст запроса динамического списка, выберем альтернативный вариант вывода данных:
Список.Ссылка.НовыйРеквизит.Важно: Данный способ позволяет быстро вынести поле на форму, однако следует учитывать, что обращение к реквизитам через точку от ссылки в динамическом списке может создавать дополнительные запросы к базе данных при прокрутке списка.
Иногда платформа 1С кэширует структуру полей управляемой формы. Чтобы принудительно обновить состав полей:
Список.ПутьКДанным созданной колонки теперь можно выбрать необходимый реквизит.