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