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