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

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

Как создать универсальный отчет в 1С

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

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

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

Прежде чем начинать, определите источник данных: какие регистры, документы или справочники должны попасть в отчет, какие показатели нужны пользователю и какие разрезы анализа он будет переключать. От этого зависит текст запроса и структура настроек СКД.

Что такое универсальный отчет и когда он нужен

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

Универсальный отчет оправдан, когда одни и те же данные анализируют в разных разрезах: продажи — по товарам, клиентам и периодам; остатки — по складам и номенклатурным группам; задолженность — по контрагентам и договорам. Если же нужен один строго фиксированный бланк (например, регламентированная форма), универсальность не требуется — проще сделать обычный отчет с фиксированным макетом.

Способ 1: типовой «Универсальный отчет» без конфигуратора

В конфигурациях на базе БСП (1С:ERP, Комплексная автоматизация, Управление торговлей ред. 11, Бухгалтерия предприятия 3.0 и другие) есть встроенный инструмент «Универсальный отчет». Он позволяет построить отчет по любому регистру сведений, регистру накопления или справочнику, не открывая конфигуратор. Обычно он доступен в разделе администрирования или через «Все функции» → «Отчеты» → «Универсальный отчет».

Порядок работы такой: выберите тип объекта метаданных (например, «Регистр накопления»), затем сам объект (например, «Продажи»). После этого задайте период, отборы и группировки в панели настроек — и сформируйте отчет. Результат можно сохранить как вариант, чтобы не настраивать заново.

Ограничение этого способа — вы работаете только с одним источником данных за раз и не можете добавить вычисляемые поля сложной логики или соединения нескольких регистров. Если нужен отчет, объединяющий, например, продажи и себестоимость с расчетом маржинальности, потребуется собственный отчет на СКД.

Порядок действий в типовом универсальном отчете
  1. 1
    Откройте «Все функции» → «Отчеты» → «Универсальный отчет» (или найдите его в разделе администрирования)
  2. 2
    Выберите тип метаданных: регистр накопления, регистр сведений или справочник
  3. 3
    Укажите конкретный объект, например регистр «Продажи»
  4. 4
    Задайте период и нужные отборы в панели настроек
  5. 5
    Настройте группировку строк и выводимые ресурсы
  6. 6
    Сформируйте отчет и сохраните настройки как вариант

Способ 2: создание собственного отчета на СКД в конфигураторе

Для собственного универсального отчета откройте конфигуратор и создайте новый объект «Отчет» (Главное меню → Файл → Новый → Отчет, либо через дерево конфигурации). В свойствах отчета нажмите «Открыть схему компоновки данных» — платформа предложит создать основную схему автоматически. Именно в ней описывается, откуда брать данные и как их можно компоновать.

На закладке «Наборы данных» добавьте набор типа «Запрос» и напишите текст запроса. Для универсального отчета по продажам это может быть обращение к виртуальной таблице оборотов регистра накопления. Пример запроса:

ВЫБРАТЬ

Продажи.Период КАК Период,

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

Продажи.Контрагент КАК Контрагент,

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

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

ИЗ

РегистрНакопления.Продажи.Обороты(

&НачалоПериода,

&КонецПериода,

,

) КАК Продажи

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

Настройка ресурсов, группировок и вариантов отчета

На закладке «Ресурсы» отметьте числовые поля, которые должны суммироваться при группировке: количество, сумму, себестоимость. Для каждого ресурса укажите выражение агрегирования — обычно «Сумма(...)». Если ресурс не добавить, при сворачивании строк по группировке показатель исчезнет или выдаст ошибку компоновки.

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

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

Делайте минимум два-три готовых варианта отчета под типовые задачи пользователей. Опыт показывает: большинство сотрудников не осваивают конструктор настроек СКД, но охотно переключают готовые варианты и меняют только период и отбор.
ПЗ
Практическое замечание

Проверка результата и типичные ошибки

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

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

Типичные ошибки
01
Жесткие условия в тексте запроса — пользователь не может изменить отбор, отчет теряет универсальность
02
Не добавлены ресурсы на закладке «Ресурсы» — при группировке суммы исчезают или отчет не формируется
03
Соединение таблиц без учета дублей — итоговые суммы завышаются кратно числу совпадений
04
Параметры периода не связаны со стандартным периодом — пользователь меняет даты, а данные не обновляются
05
Все поля выведены в один вариант без группировок — отчет превращается в необозримую простыню строк

Ограничения и когда нужен разработчик

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

Отдельный риск — производительность. Запрос по виртуальной таблице оборотов за большой период без отборов на большой базе может выполняться минутами и блокировать работу других пользователей. Перед запуском тяжелого отчета в рабочей базе протестируйте его на копии и ограничьте период по умолчанию.

Часто задаваемые вопросы

Можно ли создать универсальный отчет без доступа к конфигуратору?

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

Чем универсальный отчет отличается от консоли отчетов СКД?

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

Почему при смене группировки меняется итоговая сумма?

Чаще всего причина в дублирующихся строках запроса из-за соединения таблиц «один ко многим» без агрегации либо в том, что часть полей не включена в ресурсы. Проверьте запрос на детальном уровне и убедитесь, что все суммируемые поля добавлены на закладку «Ресурсы» с функцией «Сумма».

Как дать пользователю отбор по периоду, если в запросе его нет?

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

Можно ли сохранить настройки отчета для других пользователей?

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

Итог

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

Универсальный отчет строится на СКД: запрос без жестких условий, корректно настроенные ресурсы, готовые варианты группировок и отборы в быстром доступе. Для простых задач хватит типового «Универсального отчета» из БСП, для сложных — собственного отчета в конфигураторе. Тестируйте на копии базы и сверяйте итоги при разных группировках.