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