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