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