К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как создать отчет в конфигураторе 1С

Пошаговая инструкция по созданию отчета в конфигураторе 1С: схема компоновки данных, запрос, настройки, внешние отчеты, типичные ошибки и проверка результата.

Отчет в 1С — это объект метаданных, который извлекает данные из информационной базы и представляет их пользователю в наглядной форме: таблице, диаграмме или сводном списке. В современных конфигурациях отчеты строятся на системе компоновки данных (СКД), которая позволяет получать сложные выборки практически без написания кода. Разработчику достаточно описать запрос, наборы данных и настройки отображения.

Работа ведется в конфигураторе — инструменте разработки 1С:Предприятие. Прежде чем начинать, убедитесь, что у вас есть права на изменение конфигурации, а сама база скопирована: любые правки структуры метаданных требуют обновления конфигурации базы данных и при ошибке могут нарушить работу пользователей. Для тестовых отчетов безопаснее использовать внешние отчеты — они не требуют изменения конфигурации.

Ниже описан полный цикл: от создания объекта «Отчет» в дереве метаданных до настройки вариантов, проверки результата и подключения внешнего отчета без изменения конфигурации.

Что понадобится перед началом работы

Для создания отчета нужен конфигуратор 1С:Предприятие версии, соответствующей вашей базе, и учетная запись с правами разработчика (роль с правом «Администрирование» и доступом к изменению конфигурации). Откройте базу в режиме конфигуратора и убедитесь, что конфигурация не заблокирована другим пользователем или хранилищем конфигурации.

Желательно заранее определить, какие данные должен показывать отчет: из каких регистров, документов или справочников берутся показатели, какие нужны итоги и группировки. От этого зависит текст запроса и структура настроек. Если отчет строится по регистру накопления, уточните, нужны ли обороты за период, остатки на дату или детальные движения.

Шаг 1. Создание объекта «Отчет» в дереве конфигурации

В конфигураторе откройте дерево конфигурации (меню «Конфигурация — Открыть конфигурацию» или сочетание клавиш). Найдите ветку «Отчеты», щелкните по ней правой кнопкой мыши и выберите «Добавить». Откроется палитра свойств нового объекта.

Задайте имя отчета латиницей без пробелов — например, ПродажиПоМенеджерам. Синоним заполните по-русски: именно его увидят пользователи в интерфейсе («Продажи по менеджерам»). Если конфигурация управляемая, проверьте, что включено использование управляемых форм, иначе отчет может не открыться в тонком клиенте.

На закладке «Подсистемы» отметьте, в каких разделах интерфейса отчет будет доступен. Это не обязательно на этапе разработки, но без подсистемы пользователь не найдет отчет в панели навигации и сможет открыть его только через меню «Все функции».

Порядок действий
  1. 1
    Откройте конфигуратор и дерево конфигурации
  2. 2
    В ветке «Отчеты» выберите «Добавить»
  3. 3
    Задайте имя, синоним и подсистему
  4. 4
    Откройте схему компоновки данных
  5. 5
    Напишите запрос в конструкторе
  6. 6
    Настройте ресурсы, параметры и варианты
  7. 7
    Обновите конфигурацию базы данных (F7)
  8. 8
    Проверьте отчет в режиме Предприятие

Шаг 2. Схема компоновки данных и запрос

В палитре свойств отчета нажмите кнопку открытия у поля «Основная схема компоновки данных». Конфигуратор предложит создать новую схему — согласитесь. Откроется конструктор СКД с закладками «Наборы данных», «Связи наборов данных», «Вычисляемые поля», «Ресурсы», «Параметры» и «Настройки».

На закладке «Наборы данных» нажмите «Добавить — Запрос» и откройте конструктор запроса. Выберите нужные таблицы: например, виртуальную таблицу Продажи.Обороты для аналитики или таблицу документа для детального списка. Перетащите поля в список выборки, задайте условия отбора через параметры (например, период).

Пример простого запроса по оборотам продаж:

ВЫБРАТЬ

ПродажиОбороты.Номенклатура КАК Номенклатура,

ПродажиОбороты.Менеджер КАК Менеджер,

ПродажиОбороты.КоличествоОборот КАК Количество,

ПродажиОбороты.СуммаОборот КАК Сумма

ИЗ

РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты

Параметры &НачалоПериода и &КонецПериода СКД подставит автоматически, если на закладке «Параметры» для стандартного параметра «Период» включить состав дат. Проверьте запрос кнопкой «Запрос» — конструктор покажет результат выборки по текущим данным базы.

Шаг 3. Ресурсы, группировки и настройки отчета

На закладке «Ресурсы» укажите поля, по которым считаются итоги: Количество и Сумма с агрегатной функцией «Сумма». Без ресурсов отчет выведет детальные строки, но не сможет показать итоги по группам — это частая причина «пустых» итоговых колонок.

Перейдите на закладку «Настройки». В режиме конструктора настроек добавьте группировку — например, по полю «Менеджер», а внутри нее — детальные записи по номенклатуре. В списке выбранных полей отметьте ресурсы, которые должны выводиться. На закладке «Параметры» настроек включите параметр периода в пользовательские настройки, чтобы пользователь мог менять даты без редактирования отчета.

Варианты отчета

Один отчет может иметь несколько вариантов: например, «По менеджерам» и «По номенклатуре». На закладке «Настройки» внизу окна есть список вариантов — добавьте второй вариант и задайте для него другую структуру группировок. Пользователь переключится между вариантами прямо в форме отчета.

Вычисляемые поля

Если нужен показатель, которого нет в запросе (например, средняя цена = Сумма / Количество), добавьте его на закладке «Вычисляемые поля», указав выражение на языке выражений СКД. Учтите деление на ноль: используйте конструкцию ВЫБОР КОГДА Количество = 0 ТОГДА 0 ИНАЧЕ Сумма / Количество КОНЕЦ.

Проверяйте отчет на периоде с небольшим объемом данных. Запрос по виртуальной таблице оборотов без указания периода на большой базе может выполняться минутами и создавать нагрузку на сервер СУБД.
ПЗ
Практическое замечание

Шаг 4. Обновление конфигурации и проверка результата

Сохраните схему компоновки и закройте конструктор. Нажмите F7 («Обновить конфигурацию базы данных») и подтвердите обновление. Если конфигурация находится на поддержке с запретом изменений, потребуется сначала включить возможность изменения объекта «Отчеты» (меню «Конфигурация — Поддержка — Настройка поддержки»).

Запустите базу в режиме Предприятие, откройте отчет из соответствующей подсистемы, задайте период и нажмите «Сформировать». Сверьте итоги с эталонными данными: например, сумма по отчету должна совпадать с итогом типового отчета по тому же регистру за тот же период.

Контрольные точки

Как проверить результат

Отчет открывается в режиме Предприятие
Норма

Форма открывается, вариант отчета доступен

Тревожный признак

Ошибка «Объект не обнаружен» — конфигурация БД не обновлена

Итоги по ресурсам
Норма

Суммы совпадают с типовым отчетом за тот же период

Тревожный признак

Итоги нулевые — не назначены ресурсы или неверные поля в запросе

Параметр периода
Норма

Пользователь может менять даты в форме

Тревожный признак

Период недоступен — параметр не вынесен в пользовательские настройки

Группировки
Норма

Строки сгруппированы, итоги по группам считаются

Тревожный признак

Плоский список без итогов — не настроена структура в настройках

Шаг 5. Внешний отчет без изменения конфигурации

Если конфигурация типовая и изменять ее нельзя (или нежелательно терять поддержку), создайте внешний отчет. В конфигураторе выберите «Файл — Новый — Внешний отчет», имя и синоним, затем точно так же откройте схему компоновки данных и настройте запрос. Сохраните файл с расширением .erf.

В режиме Предприятие внешний отчет открывается через «Файл — Открыть». Для постоянного использования подключите его в справочнике «Дополнительные отчеты и обработки» (в типовых конфигурациях на БСП): при добавлении укажите вид «Отчет», размещение в разделах и варианты. После этого отчет появится в интерфейсе рядом со встроенными.

Сравнение вариантов

Отчет в конфигурации

Подходит для собственных и дорабатываемых конфигураций; требует обновления конфигурации БД и прав разработчика

Внешний отчет (.erf)

Подходит для типовых конфигураций на поддержке; подключается без изменения метаданных, но обновляется вручную

Консоль отчетов СКД

Подходит для разовых аналитических выборок; не дает постоянного объекта в интерфейсе пользователей

Типичные ошибки и ограничения

Наиболее частая проблема — отчет формируется пустым. Проверьте, что в базе есть данные за выбранный период, что параметры периода реально передаются в виртуальную таблицу запроса и что отборы в настройках не противоречат друг другу. Вторая типичная ситуация — ошибка «Поле не найдено» при формировании: поле переименовали в запросе, а в настройках осталась старая ссылка.

Учитывайте ограничения СКД: в запросе нельзя использовать временные таблицы в произвольной форме (для этого есть наборы данных-объекты и программная компоновка), а обращение к большим таблицам без индексированных условий приводит к медленной работе. Для сложной логики с предварительной обработкой данных используйте программное формирование отчета через объект КомпоновщикМакетаКомпоновкиДанных в модуле объекта.

Типичные ошибки
01
Не назначены ресурсы в СКД — итоговые колонки пустые или отсутствуют
02
Параметр периода не вынесен в пользовательские настройки — пользователь не может сменить даты
03
Запрос без ограничения периода на большой базе — отчет формируется минутами
04
Отчет не включен ни в одну подсистему — пользователи не видят его в интерфейсе
05
Обновление конфигурации на рабочей базе днем — ошибки у пользователей и риск рассинхронизации

Частые вопросы

Можно ли создать отчет без программирования?

Да. Типовой сценарий на СКД требует только запроса в визуальном конструкторе и настройки группировок мышью. Код понадобится лишь для нестандартной логики: собственных кнопок, программной обработки результата или событий формы.

Чем внешний отчет отличается от встроенного?

Внешний отчет хранится отдельным файлом .erf и не входит в конфигурацию, поэтому не требует обновления базы и не снимает конфигурацию с поддержки. Встроенный отчет — часть метаданных: он доступен всем пользователям сразу после обновления, но требует прав на изменение конфигурации.

Почему отчет формируется очень долго?

Обычные причины: выборка без ограничения периода, соединения таблиц без условий по индексированным полям, отборы по неиндексированным реквизитам. Сократите период, перенесите условия в параметры виртуальной таблицы и проверьте план запроса.

Как дать пользователю доступ к новому отчету?

Добавьте отчет в нужную подсистему и проверьте роли: у пользователя должно быть право «Использование» и «Просмотр» на объект «Отчет». В типовых конфигурациях права настраиваются через профили групп доступа в разделе администрирования.

Можно ли вывести диаграмму в отчете?

Да. В настройках СКД вместо группировки добавьте элемент «Диаграмма», укажите серии, точки и значения. Диаграммы удобны для динамики по периодам и долей по категориям, но для больших детальных выборок лучше оставить таблицу.

Что делать, если конфигурация на поддержке без возможности изменений?

Используйте внешний отчет и подключите его через механизм дополнительных отчетов и обработок. Либо включите возможность изменения для конкретного объекта в настройке поддержки — но учтите, что при обновлении конфигурации поставщиком такие доработки потребуют ручного сопоставления.

Итог

Что важно запомнить

Отчет создается через объект «Отчет» и схему компоновки данных: запрос, ресурсы, настройки, варианты. Проверяйте результат на копии базы, выносите период в пользовательские настройки и назначайте ресурсы для итогов. Если конфигурацию менять нельзя — используйте внешний отчет .erf и подключайте его через дополнительные отчеты и обработки.