В работе с конфигурацией 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с ситуацией: дополнительные реквизиты созданы, данные в карточки объектов (например, номенклатуры или документов) занесены, но при попытке вывести эти данные в форму списка колонки остаются пустыми. Эта проблема особенно актуальна после массовой загрузки данных из внешних источников, таких как Excel. Рассмотрим подробно причины такого поведения системы и разберем пошагово, как заставить данные отображаться корректно.
Первым делом проанализируем настройки самого реквизита. Платформа 1С использует механизм БСП (Библиотека стандартных подсистем) для управления доп. свойствами. Для того чтобы динамический список «понимал», что данные нужно вытягивать из отдельной таблицы значений свойств, в настройках реквизита должен быть установлен соответствующий признак.
Разберем, что нужно проверить:
Важный нюанс: Если этот флаг не установлен, пользователь все равно сможет добавить поле в форму через команду Изменить форму (выбрав Ссылка -> Добавить поле), но данные не будут подтягиваться в запрос динамического списка, и колонка останется пустой.
Выясним причину, почему данные могут отсутствовать даже при включенном флаге отображения. Динамические списки в 1С работают на основе сложных SQL-запросов. Чтобы не замедлять работу системы при обращении к таблице ЗначенияСвойствОбъектов, платформа накладывает определенные ограничения.
Если реквизит не проиндексирован, система может игнорировать его в тяжелых списках для оптимизации производительности. В карточке дополнительного реквизита найдем настройку «Индексировать» и установим её. Это создаст индекс в базе данных, что позволит механизму ДинамическийСписок эффективно связывать основную таблицу объекта с таблицей дополнительных сведений.
Проанализируем ситуацию, описанную автором: данные загружены из Excel, в карточке элемента они видны, а в списке — нет. Это классическая проблема нарушения целостности кэшированных данных в 1С:УНФ.
При ручном вводе данных через интерфейс срабатывают программные события (триггеры), которые обновляют специальные вспомогательные таблицы (индексы поиска). При программной загрузке или использовании сторонних обработок загрузки из Excel эти события могут игнорироваться. В итоге объект изменен, а данные для быстрого поиска и отображения в списках остались старыми.
Для решения этой проблемы выполним следующие шаги:
Дополнительные реквизиты и сведения, дождаться завершения операции и включить его обратно.Рассмотрим техническую разницу между двумя способами добавления колонок. Когда мы используем Изменить форму -> Ссылка -> [Доп. реквизит], мы заставляем динамический список обращаться к табличной части объекта (или связанному регистру) через точку. Это крайне неэффективный метод, который часто блокируется платформой в целях безопасности и производительности.
Правильный способ вывода в УНФ — это использование предопределенных механизмов БСП. Если в настройках доп. реквизита стоит галочка «Выводить в списке», то в окне Изменить форму это поле должно появиться в основном списке доступных полей, а не внутри подменю Ссылка. Попробуем найти поле именно в корне списка элементов формы. Для более гибкого управления составом и отображением полей подойдет инструмент для расширенной настройки динамических списков.
Чтобы окончательно убедиться, что данные физически записаны верно, воспользуемся консолью запросов. Проанализируем структуру хранения:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Объект,
НоменклатураДопРеквизит.Свойство КАК Свойство,
НоменклатураДопРеквизит.Значение КАК Значение
ИЗ
Справочник.Номенклатура КАК Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДопРеквизит
ПО Номенклатура.Ссылка = НоменклатураДопРеквизит.Ссылка
ГДЕ
НоменклатураДопРеквизит.Свойство.Наименование ПОДОБНО "Название_Вашего_Реквизита"
Если запрос возвращает пустой результат, значит, при загрузке из Excel данные были записаны некорректно (например, в другой тип данных или не в ту табличную часть). В 1С:УНФ дополнительные реквизиты могут храниться либо в табличной части самого объекта (ДополнительныеРеквизиты), либо в регистре сведений ДополнительныеСведения. Убедимся, что при загрузке вы выбрали правильный тип хранения.
Если все настройки верны, а данные в запросе есть, но список все равно пуст, попробуем классические методы «лечения» платформы 1С:
Еще — Установить стандартные настройки в форме списка. Это сбросит настройки динамического списка и заставит систему перестроить схему компоновки данных.Толстый клиент или полной очистки папки %AppData%\1C\1Cv8.Подводя итог, отметим, что чаще всего проблема кроется в комбинации отсутствующего флага «Выводить в списке» и специфики работы динамического списка, который требует «явного» разрешения на отображение полей из дополнительных таблиц.