Отчеты и Аналитика · 11 мин
Как создать отчет в конфигураторе 1С
Пошаговая инструкция по созданию отчета в конфигураторе 1С: схема компоновки данных, запрос, настройки, внешние отчеты, типичные ошибки и проверка результата.
Отчет в 1С — это объект метаданных, который извлекает данные из информационной базы и представляет их пользователю в наглядной форме: таблице, диаграмме или сводном списке. В современных конфигурациях отчеты строятся на системе компоновки данных (СКД), которая позволяет получать сложные выборки практически без написания кода. Разработчику достаточно описать запрос, наборы данных и настройки отображения.
Работа ведется в конфигураторе — инструменте разработки 1С:Предприятие. Прежде чем начинать, убедитесь, что у вас есть права на изменение конфигурации, а сама база скопирована: любые правки структуры метаданных требуют обновления конфигурации базы данных и при ошибке могут нарушить работу пользователей. Для тестовых отчетов безопаснее использовать внешние отчеты — они не требуют изменения конфигурации.
Ниже описан полный цикл: от создания объекта «Отчет» в дереве метаданных до настройки вариантов, проверки результата и подключения внешнего отчета без изменения конфигурации.
Что понадобится перед началом работы
Для создания отчета нужен конфигуратор 1С:Предприятие версии, соответствующей вашей базе, и учетная запись с правами разработчика (роль с правом «Администрирование» и доступом к изменению конфигурации). Откройте базу в режиме конфигуратора и убедитесь, что конфигурация не заблокирована другим пользователем или хранилищем конфигурации.
Желательно заранее определить, какие данные должен показывать отчет: из каких регистров, документов или справочников берутся показатели, какие нужны итоги и группировки. От этого зависит текст запроса и структура настроек. Если отчет строится по регистру накопления, уточните, нужны ли обороты за период, остатки на дату или детальные движения.
Шаг 1. Создание объекта «Отчет» в дереве конфигурации
В конфигураторе откройте дерево конфигурации (меню «Конфигурация — Открыть конфигурацию» или сочетание клавиш). Найдите ветку «Отчеты», щелкните по ней правой кнопкой мыши и выберите «Добавить». Откроется палитра свойств нового объекта.
Задайте имя отчета латиницей без пробелов — например, ПродажиПоМенеджерам. Синоним заполните по-русски: именно его увидят пользователи в интерфейсе («Продажи по менеджерам»). Если конфигурация управляемая, проверьте, что включено использование управляемых форм, иначе отчет может не открыться в тонком клиенте.
На закладке «Подсистемы» отметьте, в каких разделах интерфейса отчет будет доступен. Это не обязательно на этапе разработки, но без подсистемы пользователь не найдет отчет в панели навигации и сможет открыть его только через меню «Все функции».
- 1Откройте конфигуратор и дерево конфигурации
- 2В ветке «Отчеты» выберите «Добавить»
- 3Задайте имя, синоним и подсистему
- 4Откройте схему компоновки данных
- 5Напишите запрос в конструкторе
- 6Настройте ресурсы, параметры и варианты
- 7Обновите конфигурацию базы данных (F7)
- 8Проверьте отчет в режиме Предприятие
Шаг 2. Схема компоновки данных и запрос
В палитре свойств отчета нажмите кнопку открытия у поля «Основная схема компоновки данных». Конфигуратор предложит создать новую схему — согласитесь. Откроется конструктор СКД с закладками «Наборы данных», «Связи наборов данных», «Вычисляемые поля», «Ресурсы», «Параметры» и «Настройки».
На закладке «Наборы данных» нажмите «Добавить — Запрос» и откройте конструктор запроса. Выберите нужные таблицы: например, виртуальную таблицу Продажи.Обороты для аналитики или таблицу документа для детального списка. Перетащите поля в список выборки, задайте условия отбора через параметры (например, период).
Пример простого запроса по оборотам продаж:
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.Менеджер КАК Менеджер,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СуммаОборот КАК Сумма
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты
Параметры &НачалоПериода и &КонецПериода СКД подставит автоматически, если на закладке «Параметры» для стандартного параметра «Период» включить состав дат. Проверьте запрос кнопкой «Запрос» — конструктор покажет результат выборки по текущим данным базы.
Шаг 3. Ресурсы, группировки и настройки отчета
На закладке «Ресурсы» укажите поля, по которым считаются итоги: Количество и Сумма с агрегатной функцией «Сумма». Без ресурсов отчет выведет детальные строки, но не сможет показать итоги по группам — это частая причина «пустых» итоговых колонок.
Перейдите на закладку «Настройки». В режиме конструктора настроек добавьте группировку — например, по полю «Менеджер», а внутри нее — детальные записи по номенклатуре. В списке выбранных полей отметьте ресурсы, которые должны выводиться. На закладке «Параметры» настроек включите параметр периода в пользовательские настройки, чтобы пользователь мог менять даты без редактирования отчета.
Варианты отчета
Один отчет может иметь несколько вариантов: например, «По менеджерам» и «По номенклатуре». На закладке «Настройки» внизу окна есть список вариантов — добавьте второй вариант и задайте для него другую структуру группировок. Пользователь переключится между вариантами прямо в форме отчета.
Вычисляемые поля
Если нужен показатель, которого нет в запросе (например, средняя цена = Сумма / Количество), добавьте его на закладке «Вычисляемые поля», указав выражение на языке выражений СКД. Учтите деление на ноль: используйте конструкцию ВЫБОР КОГДА Количество = 0 ТОГДА 0 ИНАЧЕ Сумма / Количество КОНЕЦ.
Проверяйте отчет на периоде с небольшим объемом данных. Запрос по виртуальной таблице оборотов без указания периода на большой базе может выполняться минутами и создавать нагрузку на сервер СУБД.
Шаг 4. Обновление конфигурации и проверка результата
Сохраните схему компоновки и закройте конструктор. Нажмите F7 («Обновить конфигурацию базы данных») и подтвердите обновление. Если конфигурация находится на поддержке с запретом изменений, потребуется сначала включить возможность изменения объекта «Отчеты» (меню «Конфигурация — Поддержка — Настройка поддержки»).
Запустите базу в режиме Предприятие, откройте отчет из соответствующей подсистемы, задайте период и нажмите «Сформировать». Сверьте итоги с эталонными данными: например, сумма по отчету должна совпадать с итогом типового отчета по тому же регистру за тот же период.
Как проверить результат
Форма открывается, вариант отчета доступен
Ошибка «Объект не обнаружен» — конфигурация БД не обновлена
Суммы совпадают с типовым отчетом за тот же период
Итоги нулевые — не назначены ресурсы или неверные поля в запросе
Пользователь может менять даты в форме
Период недоступен — параметр не вынесен в пользовательские настройки
Строки сгруппированы, итоги по группам считаются
Плоский список без итогов — не настроена структура в настройках
Шаг 5. Внешний отчет без изменения конфигурации
Если конфигурация типовая и изменять ее нельзя (или нежелательно терять поддержку), создайте внешний отчет. В конфигураторе выберите «Файл — Новый — Внешний отчет», имя и синоним, затем точно так же откройте схему компоновки данных и настройте запрос. Сохраните файл с расширением .erf.
В режиме Предприятие внешний отчет открывается через «Файл — Открыть». Для постоянного использования подключите его в справочнике «Дополнительные отчеты и обработки» (в типовых конфигурациях на БСП): при добавлении укажите вид «Отчет», размещение в разделах и варианты. После этого отчет появится в интерфейсе рядом со встроенными.
Сравнение вариантов
Подходит для собственных и дорабатываемых конфигураций; требует обновления конфигурации БД и прав разработчика
Подходит для типовых конфигураций на поддержке; подключается без изменения метаданных, но обновляется вручную
Подходит для разовых аналитических выборок; не дает постоянного объекта в интерфейсе пользователей
Типичные ошибки и ограничения
Наиболее частая проблема — отчет формируется пустым. Проверьте, что в базе есть данные за выбранный период, что параметры периода реально передаются в виртуальную таблицу запроса и что отборы в настройках не противоречат друг другу. Вторая типичная ситуация — ошибка «Поле не найдено» при формировании: поле переименовали в запросе, а в настройках осталась старая ссылка.
Учитывайте ограничения СКД: в запросе нельзя использовать временные таблицы в произвольной форме (для этого есть наборы данных-объекты и программная компоновка), а обращение к большим таблицам без индексированных условий приводит к медленной работе. Для сложной логики с предварительной обработкой данных используйте программное формирование отчета через объект КомпоновщикМакетаКомпоновкиДанных в модуле объекта.
Частые вопросы
Можно ли создать отчет без программирования?
Да. Типовой сценарий на СКД требует только запроса в визуальном конструкторе и настройки группировок мышью. Код понадобится лишь для нестандартной логики: собственных кнопок, программной обработки результата или событий формы.
Чем внешний отчет отличается от встроенного?
Внешний отчет хранится отдельным файлом .erf и не входит в конфигурацию, поэтому не требует обновления базы и не снимает конфигурацию с поддержки. Встроенный отчет — часть метаданных: он доступен всем пользователям сразу после обновления, но требует прав на изменение конфигурации.
Почему отчет формируется очень долго?
Обычные причины: выборка без ограничения периода, соединения таблиц без условий по индексированным полям, отборы по неиндексированным реквизитам. Сократите период, перенесите условия в параметры виртуальной таблицы и проверьте план запроса.
Как дать пользователю доступ к новому отчету?
Добавьте отчет в нужную подсистему и проверьте роли: у пользователя должно быть право «Использование» и «Просмотр» на объект «Отчет». В типовых конфигурациях права настраиваются через профили групп доступа в разделе администрирования.
Можно ли вывести диаграмму в отчете?
Да. В настройках СКД вместо группировки добавьте элемент «Диаграмма», укажите серии, точки и значения. Диаграммы удобны для динамики по периодам и долей по категориям, но для больших детальных выборок лучше оставить таблицу.
Что делать, если конфигурация на поддержке без возможности изменений?
Используйте внешний отчет и подключите его через механизм дополнительных отчетов и обработок. Либо включите возможность изменения для конкретного объекта в настройке поддержки — но учтите, что при обновлении конфигурации поставщиком такие доработки потребуют ручного сопоставления.
Что важно запомнить
Отчет создается через объект «Отчет» и схему компоновки данных: запрос, ресурсы, настройки, варианты. Проверяйте результат на копии базы, выносите период в пользовательские настройки и назначайте ресурсы для итогов. Если конфигурацию менять нельзя — используйте внешний отчет .erf и подключайте его через дополнительные отчеты и обработки.