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