Своя консоль отчётов на СКД: от пустого файла до готовой формы

· 9 мин

Содержание

Консоль отчётов в 1С 8.3 создают двумя способами. Быстрый — открыть готовую обработку-консоль компоновки данных и собирать отчёты прямо в режиме «Предприятие». Надёжный — сделать в Конфигураторе собственный внешний отчёт (Файл → Новый → Внешний отчет) на схеме компоновки данных (СКД): его можно сохранить в файл .erf, передать коллегам и запускать без доработки конфигурации.

Ниже — второй путь, потому что он даёт полный контроль: свой запрос, параметры, формулы, варианты и форму. Всё описано для платформы 8.3 с интерфейсом «Такси» и не зависит от конфигурации: шаги одинаковы для Бухгалтерии, ЗУП и УТ, меняется только запрос.

Готовая консоль или свой отчёт: что выбрать

Перед созданием консоли отчётов решите, что вам нужно на выходе. От этого зависит, тратить ли время на Конфигуратор.

ВариантКогда подходитОграничения
Готовая обработка-консоль СКДРазовая выборка, проверка запроса, поиск расхожденийСхема живёт внутри файла настроек, пользователю неудобно
Универсальный отчёт типовой конфигурацииНужна таблица по одному объекту без запросовНельзя соединить несколько таблиц и написать свою формулу
Свой внешний отчёт на СКДОтчёт будут открывать регулярно, нужны свои колонки и расчётыНужен доступ к Конфигуратору и базовое знание языка запросов

Что понадобится для своего варианта:

  • 🔑 доступ к Конфигуратору любой базы на нужной платформе (рабочая база не обязательна — подойдёт копия);
  • 📄 понимание, из каких таблиц берутся данные: документ, регистр накопления, регистр бухгалтерии ;
  • 👤 у тех, кто будет запускать отчёт, — право на интерактивное открытие внешних отчётов и обработок.

Разрабатывайте на копии базы. Внешний отчёт данные не меняет, но ошибочный запрос без отборов к большому регистру может надолго нагрузить сервер.

Шаг 1. Создаём внешний отчёт и схему компоновки данных

Внешний отчёт — отдельный файл, его не нужно встраивать в конфигурацию и обновлять вместе с ней.

  1. Запустите базу в режиме Конфигуратор.
  2. Выберите Файл → Новый, в списке — Внешний отчет.
  3. В поле «Имя» задайте латиницу или кириллицу без пробелов, например КонсольПродаж. В «Синоним» — то, что увидит пользователь: «Консоль продаж».
  4. Нажмите кнопку Открыть схему компоновки данных. Платформа предложит создать макет — оставьте имя ОсновнаяСхемаКомпоновкиДанных и нажмите «Готово».
  5. Откроется конструктор схемы. Сохраните файл (Ctrl+S) с расширением .erf в рабочую папку.

Конструктор схемы — это окно с вкладками. Для консоли отчётов нужны шесть из них:

ВкладкаЧто в ней делают
Наборы данныхПишут запрос или подключают внешний источник
Вычисляемые поляДобавляют колонки, которых нет в запросе
РесурсыЗадают, какие поля суммировать в итогах
ПараметрыНастраивают период, организацию, пороговые значения
НастройкиСобирают структуру отчёта и его варианты
Связи наборов данныхСоединяют несколько наборов между собой

Шаг 2. Набор данных и запрос

На вкладке «Наборы данных» нажмите зелёный плюс и выберите Добавить набор данных - запрос. Справа появится поле текста запроса и кнопка Конструктор запроса.

Пример для Бухгалтерии 3.0 — продажи по контрагентам и номенклатуре:

ВЫБРАТЬ
    РеализацияТовары.Ссылка.Контрагент КАК Контрагент,
    РеализацияТовары.Номенклатура КАК Номенклатура,
    РеализацияТовары.Количество КАК Количество,
    РеализацияТовары.Сумма КАК Сумма
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ГДЕ
    РеализацияТовары.Ссылка.Проведен
    И РеализацияТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

После нажатия «ОК» в конструкторе запроса поля автоматически появятся в таблице набора. Проверьте колонку «Заголовок» — её текст пользователь увидит в шапке отчёта.

Чем запрос в СКД отличается от обычного

  • ✅ Не нужно писать условия на каждый возможный отбор. Пользователь отберёт по контрагенту или номенклатуре сам, через настройки, и СКД добавит условие в запрос.
  • ✅ Не нужно писать ИТОГИ ПО. Итоги строит компоновка по ресурсам.
  • ✅ Можно обращаться к реквизитам через точку прямо в настройках: поле Контрагент.ИНН доступно в отчёте, даже если в запросе его нет.
  • ⚠️ Параметры с & из запроса автоматически попадут на вкладку «Параметры». Их нужно настроить, иначе отчёт выдаст пустой результат или ошибку.

Несколько источников

Если данные лежат в двух местах (например, продажи и оплаты), сделайте два набора-запроса и соедините их на вкладке «Связи наборов данных»: источник, приёмник, выражение связи (Контрагент = Контрагент). Второй вариант — набор «Объединение», когда строки двух запросов нужно просто сложить в одну таблицу.

Шаг 3. Параметры отчёта: период и пороговые значения

Самая частая доработка консоли — удобный выбор периода. Вместо двух отдельных дат дайте пользователю один стандартный период.

  1. На вкладке «Параметры» нажмите плюс и создайте параметр Период. Тип — СтандартныйПериод.
  2. У параметра НачалоПериода в колонке «Выражение» напишите &Период.ДатаНачала.
  3. У параметра КонецПериода — &Период.ДатаОкончания.
  4. У обоих параметров-дат поставьте флажок «Ограничение доступности». Так пользователь увидит только «Период».

Стандартный период сам ставит конец дня у даты окончания. Если оставить голую дату КонецПериода, документы последнего дня с временем позже 00:00:00 в отчёт не попадут.

Числовой параметр делают так же. Например, МинСумма типа «Число» — и в запросе условие И РеализацияТовары.Сумма >= &МинСумма. Значение по умолчанию задайте в колонке «Значение», чтобы отчёт формировался сразу, без заполнения.

Чтобы параметр был виден прямо на форме отчёта, на вкладке «Настройки» откройте закладку «Параметры», щёлкните по параметру правой кнопкой, выберите «Свойства элемента пользовательских настроек» и установите режим редактирования «Быстрый доступ».

Шаг 4. Ресурсы и вычисляемые поля

Без ресурсов отчёт выведет детальные строки, но итогов по группировкам не будет.

Ресурсы — что суммировать

На вкладке «Ресурсы» нажмите >>: платформа добавит все числовые поля с функцией Сумма. Оставьте только нужные. Функции агрегирования в выражении ресурса: Сумма, Количество, Минимум, Максимум, Среднее.

Цену нельзя суммировать — её считают из итогов. Ресурс «Цена» с выражением:

Выбор
    Когда Сумма(Количество) = 0 Тогда 0
    Иначе Сумма(Сумма) / Сумма(Количество)
Конец

Так в итоговой строке покажется средневзвешенная цена, а не сумма цен всех строк.

Вычисляемые поля — новые колонки

На вкладке «Вычисляемые поля» задаются колонки, которых нет в запросе. Колонка «Путь к данным» — имя поля, «Выражение» — формула на языке выражений СКД.

Пример: доля строки в общих продажах. Поле Доля, а ресурс для него с выражением:

Выбор
    Когда ВычислитьВыражение("Сумма(Сумма)", "ОбщийИтог") = 0 Тогда 0
    Иначе Сумма(Сумма) * 100 / ВычислитьВыражение("Сумма(Сумма)", "ОбщийИтог")
Конец

Проверка: при общих продажах 500 000 руб. и продажах контрагента 75 000 руб. доля будет 15.

Ещё полезные функции языка выражений:

  • 🔹 ЕстьNULL(Поле, 0) — подставить ноль вместо пустоты после левого соединения;
  • 🔹 Представление(Поле) — текст вместо ссылки;
  • 🔹 Формат(Поле, "ЧДЦ=2") — две цифры после запятой;
  • 🔹 Выбор Когда … Тогда … Иначе … Конец — условная колонка, например «крупный/мелкий клиент».

Деление в выражении всегда оборачивайте в проверку на ноль. Иначе отчёт упадёт на первой группировке, где знаменатель пустой.

Шаг 5. Настройки и варианты консоли отчётов

Вкладка «Настройки» определяет, как выглядит отчёт. Быстрее всего начать с мастера: кнопка с волшебной палочкой Открыть конструктор настроек.

  1. Выберите тип: Список, Таблица (кросс-таблица) или Диаграмма.
  2. Отметьте поля, которые выводить.
  3. Задайте группировки: например, сначала Контрагент, внутри — Номенклатура.
  4. Укажите сортировку: Сумма по убыванию.

После мастера в дереве структуры появятся группировки. Ниже дерева — закладки для выделенного элемента:

ЗакладкаЧто настраивают
Выбранные поляКолонки и их порядок
ОтборУсловия по полям (Контрагент в списке, Сумма больше…)
СортировкаПорядок строк
Условное оформлениеЦвет и шрифт по условию
Другие настройкиЗаголовок отчёта, вывод итогов, расположение полей группировок
ПараметрыЗначения параметров данных

Варианты — несколько отчётов в одном файле

Вверху вкладки «Настройки» есть список вариантов. Нажмите плюс — появится новый вариант со своей структурой. Удобная схема для консоли продаж:

  • 📊 «По контрагентам» — список с группировкой по контрагенту;
  • 📦 «По товарам» — группировка по номенклатуре;
  • 🧮 «Матрица» — таблица, строки — контрагенты, колонки — номенклатура;
  • 📈 «Диаграмма» — топ покупателей по сумме.

Запрос при этом один, вариант меняет только представление. Пользователь переключает их кнопкой выбора варианта на форме отчёта.

Шаг 6. Условное оформление

Условное оформление выделяет важные строки без ручной раскраски в Excel. Настраивается на закладке «Условное оформление» нужного варианта.

  1. Добавьте строку оформления.
  2. В колонке «Оформление» задайте, например, красный цвет текста.
  3. В колонке «Условие» — Сумма Меньше 0 (возвраты).
  4. В колонке «Оформляемые поля» оставьте пусто, чтобы красилась вся строка, или укажите только Сумма.

Пример набора правил для консоли продаж:

УсловиеОформлениеЗачем
Сумма < 0Красный текстВидны возвраты
Доля ≥ 20Жирный шрифтКлючевые клиенты
Количество = 0Серый текстУслуги и корректировки

Там же, в оформлении, можно задать формат числа (ЧДЦ=2, ЧН=-) и текст для пустых значений. Это проще, чем писать Формат в каждом вычисляемом поле.

Шаг 7. Форма отчёта и программная доработка

Если формы нет, платформа покажет стандартную: кнопка «Сформировать», настройки, поле результата. Для большинства консолей этого достаточно.

Своя форма нужна, когда параметры должны быть сверху, а не в окне настроек, или нужна кнопка с дополнительным действием. В окне внешнего отчёта у поля «Основная форма» нажмите кнопку открытия — конструктор форм создаст форму с реквизитом Отчет, элементом результата (табличный документ) и компоновщиком настроек.

Программное формирование результата

Когда параметры надо подставить кодом (например, текущую организацию пользователя), перехватите формирование в модуле объекта отчёта. Откройте модуль объекта (меню «Действия» в окне внешнего отчёта) и добавьте обработчик:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    ДокументРезультат.Очистить();

    Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("МинСумма", 1000);

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);

    Процессор = Новый ПроцессорКомпоновкиДанных;
    Процессор.Инициализировать(Макет, , ДанныеРасшифровки, Истина);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(Процессор);

КонецПроцедуры

Код выполняется на сервере. Расшифровка по двойному щелчку продолжит работать, потому что ДанныеРасшифровки передаются в компоновщик и процессор.

Если подставлять кодом нечего, не пишите этот обработчик вовсе. Стандартное формирование делает то же самое и меньше ломается при обновлениях платформы.

Как запустить готовый отчёт

  • 📂 Разово: в режиме «Предприятие» откройте главное меню (кнопка с тремя полосками) → Файл → Открыть и выберите .erf. Платформа может спросить подтверждение на открытие внешнего файла.
  • 📌 Постоянно: в типовых конфигурациях подключите файл через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Для этого в модуле объекта нужна функция регистрации СведенияОВнешнейОбработке() — без неё файл откроется только разово.

Если отчёт не работает

Диагностика: выберите симптом

Частые вопросы

Можно ли сделать консоль отчётов без Конфигуратора?
Да, через готовую обработку-консоль системы компоновки данных: схему собирают прямо в режиме «Предприятие». Но сохранить результат как отдельный отчёт с формой удобнее в Конфигураторе.
Работает ли внешний отчёт после обновления конфигурации?
Обычно да. Отчёт ломается, только если в обновлении переименовали таблицы или реквизиты из запроса. Тогда исправляют текст запроса.
Как дать отчёт пользователю без права открывать внешние файлы?
Зарегистрируйте его в справочнике дополнительных отчётов и обработок и настройте размещение в разделе. Тогда отчёт запускается из меню раздела, как встроенный.
Можно ли вывести результат в Excel?
Да. Результат СКД — табличный документ, его сохраняют через главное меню → Файл → Сохранить как в формате .xlsx.
Чем консоль отчётов отличается от консоли запросов?
Консоль запросов показывает сырую таблицу результата запроса. Консоль отчётов на СКД добавляет группировки, итоги, отборы, оформление и варианты поверх того же запроса.