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