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