Своя консоль отчётов на СКД: от пустого файла до готовой формы
Содержание
Консоль отчётов в 1С 8.3 создают двумя способами. Быстрый — открыть готовую обработку-консоль компоновки данных и собирать отчёты прямо в режиме «Предприятие». Надёжный — сделать в Конфигураторе собственный внешний отчёт (Файл → Новый → Внешний отчет) на схеме компоновки данных (СКД): его можно сохранить в файл .erf, передать коллегам и запускать без доработки конфигурации.
Ниже — второй путь, потому что он даёт полный контроль: свой запрос, параметры, формулы, варианты и форму. Всё описано для платформы 8.3 с интерфейсом «Такси» и не зависит от конфигурации: шаги одинаковы для Бухгалтерии, ЗУП и УТ, меняется только запрос.
Готовая консоль или свой отчёт: что выбрать
Перед созданием консоли отчётов решите, что вам нужно на выходе. От этого зависит, тратить ли время на Конфигуратор.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Готовая обработка-консоль СКД | Разовая выборка, проверка запроса, поиск расхождений | Схема живёт внутри файла настроек, пользователю неудобно |
| Универсальный отчёт типовой конфигурации | Нужна таблица по одному объекту без запросов | Нельзя соединить несколько таблиц и написать свою формулу |
| Свой внешний отчёт на СКД | Отчёт будут открывать регулярно, нужны свои колонки и расчёты | Нужен доступ к Конфигуратору и базовое знание языка запросов |
Что понадобится для своего варианта:
- 🔑 доступ к Конфигуратору любой базы на нужной платформе (рабочая база не обязательна — подойдёт копия);
- 📄 понимание, из каких таблиц берутся данные: документ, регистр накопления, регистр бухгалтерии ;
- 👤 у тех, кто будет запускать отчёт, — право на интерактивное открытие внешних отчётов и обработок.
Разрабатывайте на копии базы. Внешний отчёт данные не меняет, но ошибочный запрос без отборов к большому регистру может надолго нагрузить сервер.
Шаг 1. Создаём внешний отчёт и схему компоновки данных
Внешний отчёт — отдельный файл, его не нужно встраивать в конфигурацию и обновлять вместе с ней.
- Запустите базу в режиме
Конфигуратор. - Выберите
Файл → Новый, в списке —Внешний отчет. - В поле «Имя» задайте латиницу или кириллицу без пробелов, например
КонсольПродаж. В «Синоним» — то, что увидит пользователь: «Консоль продаж». - Нажмите кнопку
Открыть схему компоновки данных. Платформа предложит создать макет — оставьте имяОсновнаяСхемаКомпоновкиДанныхи нажмите «Готово». - Откроется конструктор схемы. Сохраните файл (
Ctrl+S) с расширением.erfв рабочую папку.
Конструктор схемы — это окно с вкладками. Для консоли отчётов нужны шесть из них:
| Вкладка | Что в ней делают |
|---|---|
| Наборы данных | Пишут запрос или подключают внешний источник |
| Вычисляемые поля | Добавляют колонки, которых нет в запросе |
| Ресурсы | Задают, какие поля суммировать в итогах |
| Параметры | Настраивают период, организацию, пороговые значения |
| Настройки | Собирают структуру отчёта и его варианты |
| Связи наборов данных | Соединяют несколько наборов между собой |
Шаг 2. Набор данных и запрос
На вкладке «Наборы данных» нажмите зелёный плюс и выберите Добавить набор данных - запрос. Справа появится поле текста запроса и кнопка Конструктор запроса.
Пример для Бухгалтерии 3.0 — продажи по контрагентам и номенклатуре:
ВЫБРАТЬ
РеализацияТовары.Ссылка.Контрагент КАК Контрагент,
РеализацияТовары.Номенклатура КАК Номенклатура,
РеализацияТовары.Количество КАК Количество,
РеализацияТовары.Сумма КАК Сумма
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ГДЕ
РеализацияТовары.Ссылка.Проведен
И РеализацияТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
После нажатия «ОК» в конструкторе запроса поля автоматически появятся в таблице набора. Проверьте колонку «Заголовок» — её текст пользователь увидит в шапке отчёта.
Чем запрос в СКД отличается от обычного
- ✅ Не нужно писать условия на каждый возможный отбор. Пользователь отберёт по контрагенту или номенклатуре сам, через настройки, и СКД добавит условие в запрос.
- ✅ Не нужно писать
ИТОГИ ПО. Итоги строит компоновка по ресурсам. - ✅ Можно обращаться к реквизитам через точку прямо в настройках: поле
Контрагент.ИННдоступно в отчёте, даже если в запросе его нет. - ⚠️ Параметры с
&из запроса автоматически попадут на вкладку «Параметры». Их нужно настроить, иначе отчёт выдаст пустой результат или ошибку.
Несколько источников
Если данные лежат в двух местах (например, продажи и оплаты), сделайте два набора-запроса и соедините их на вкладке «Связи наборов данных»: источник, приёмник, выражение связи (Контрагент = Контрагент). Второй вариант — набор «Объединение», когда строки двух запросов нужно просто сложить в одну таблицу.
Шаг 3. Параметры отчёта: период и пороговые значения
Самая частая доработка консоли — удобный выбор периода. Вместо двух отдельных дат дайте пользователю один стандартный период.
- На вкладке «Параметры» нажмите плюс и создайте параметр
Период. Тип —СтандартныйПериод. - У параметра
НачалоПериодав колонке «Выражение» напишите&Период.ДатаНачала. - У параметра
КонецПериода—&Период.ДатаОкончания. - У обоих параметров-дат поставьте флажок «Ограничение доступности». Так пользователь увидит только «Период».
Стандартный период сам ставит конец дня у даты окончания. Если оставить голую дату КонецПериода, документы последнего дня с временем позже 00:00:00 в отчёт не попадут.
Числовой параметр делают так же. Например, МинСумма типа «Число» — и в запросе условие И РеализацияТовары.Сумма >= &МинСумма. Значение по умолчанию задайте в колонке «Значение», чтобы отчёт формировался сразу, без заполнения.
Чтобы параметр был виден прямо на форме отчёта, на вкладке «Настройки» откройте закладку «Параметры», щёлкните по параметру правой кнопкой, выберите «Свойства элемента пользовательских настроек» и установите режим редактирования «Быстрый доступ».
Шаг 4. Ресурсы и вычисляемые поля
Без ресурсов отчёт выведет детальные строки, но итогов по группировкам не будет.
Ресурсы — что суммировать
На вкладке «Ресурсы» нажмите >>: платформа добавит все числовые поля с функцией Сумма. Оставьте только нужные. Функции агрегирования в выражении ресурса: Сумма, Количество, Минимум, Максимум, Среднее.
Цену нельзя суммировать — её считают из итогов. Ресурс «Цена» с выражением:
Выбор
Когда Сумма(Количество) = 0 Тогда 0
Иначе Сумма(Сумма) / Сумма(Количество)
Конец
Так в итоговой строке покажется средневзвешенная цена, а не сумма цен всех строк.
Вычисляемые поля — новые колонки
На вкладке «Вычисляемые поля» задаются колонки, которых нет в запросе. Колонка «Путь к данным» — имя поля, «Выражение» — формула на языке выражений СКД.
Пример: доля строки в общих продажах. Поле Доля, а ресурс для него с выражением:
Выбор
Когда ВычислитьВыражение("Сумма(Сумма)", "ОбщийИтог") = 0 Тогда 0
Иначе Сумма(Сумма) * 100 / ВычислитьВыражение("Сумма(Сумма)", "ОбщийИтог")
Конец
Проверка: при общих продажах 500 000 руб. и продажах контрагента 75 000 руб. доля будет 15.
Ещё полезные функции языка выражений:
- 🔹
ЕстьNULL(Поле, 0)— подставить ноль вместо пустоты после левого соединения; - 🔹
Представление(Поле)— текст вместо ссылки; - 🔹
Формат(Поле, "ЧДЦ=2")— две цифры после запятой; - 🔹
Выбор Когда … Тогда … Иначе … Конец— условная колонка, например «крупный/мелкий клиент».
Деление в выражении всегда оборачивайте в проверку на ноль. Иначе отчёт упадёт на первой группировке, где знаменатель пустой.
Шаг 5. Настройки и варианты консоли отчётов
Вкладка «Настройки» определяет, как выглядит отчёт. Быстрее всего начать с мастера: кнопка с волшебной палочкой Открыть конструктор настроек.
- Выберите тип:
Список,Таблица(кросс-таблица) илиДиаграмма. - Отметьте поля, которые выводить.
- Задайте группировки: например, сначала
Контрагент, внутри —Номенклатура. - Укажите сортировку:
Суммапо убыванию.
После мастера в дереве структуры появятся группировки. Ниже дерева — закладки для выделенного элемента:
| Закладка | Что настраивают |
|---|---|
| Выбранные поля | Колонки и их порядок |
| Отбор | Условия по полям (Контрагент в списке, Сумма больше…) |
| Сортировка | Порядок строк |
| Условное оформление | Цвет и шрифт по условию |
| Другие настройки | Заголовок отчёта, вывод итогов, расположение полей группировок |
| Параметры | Значения параметров данных |
Варианты — несколько отчётов в одном файле
Вверху вкладки «Настройки» есть список вариантов. Нажмите плюс — появится новый вариант со своей структурой. Удобная схема для консоли продаж:
- 📊 «По контрагентам» — список с группировкой по контрагенту;
- 📦 «По товарам» — группировка по номенклатуре;
- 🧮 «Матрица» — таблица, строки — контрагенты, колонки — номенклатура;
- 📈 «Диаграмма» — топ покупателей по сумме.
Запрос при этом один, вариант меняет только представление. Пользователь переключает их кнопкой выбора варианта на форме отчёта.
Шаг 6. Условное оформление
Условное оформление выделяет важные строки без ручной раскраски в Excel. Настраивается на закладке «Условное оформление» нужного варианта.
- Добавьте строку оформления.
- В колонке «Оформление» задайте, например, красный цвет текста.
- В колонке «Условие» —
Сумма Меньше 0(возвраты). - В колонке «Оформляемые поля» оставьте пусто, чтобы красилась вся строка, или укажите только
Сумма.
Пример набора правил для консоли продаж:
| Условие | Оформление | Зачем |
|---|---|---|
| Сумма < 0 | Красный текст | Видны возвраты |
| Доля ≥ 20 | Жирный шрифт | Ключевые клиенты |
| Количество = 0 | Серый текст | Услуги и корректировки |
Там же, в оформлении, можно задать формат числа (ЧДЦ=2, ЧН=-) и текст для пустых значений. Это проще, чем писать Формат в каждом вычисляемом поле.
Шаг 7. Форма отчёта и программная доработка
Если формы нет, платформа покажет стандартную: кнопка «Сформировать», настройки, поле результата. Для большинства консолей этого достаточно.
Своя форма нужна, когда параметры должны быть сверху, а не в окне настроек, или нужна кнопка с дополнительным действием. В окне внешнего отчёта у поля «Основная форма» нажмите кнопку открытия — конструктор форм создаст форму с реквизитом Отчет, элементом результата (табличный документ) и компоновщиком настроек.
Программное формирование результата
Когда параметры надо подставить кодом (например, текущую организацию пользователя), перехватите формирование в модуле объекта отчёта. Откройте модуль объекта (меню «Действия» в окне внешнего отчёта) и добавьте обработчик:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДокументРезультат.Очистить();
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("МинСумма", 1000);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(Процессор);
КонецПроцедуры
Код выполняется на сервере. Расшифровка по двойному щелчку продолжит работать, потому что ДанныеРасшифровки передаются в компоновщик и процессор.
Если подставлять кодом нечего, не пишите этот обработчик вовсе. Стандартное формирование делает то же самое и меньше ломается при обновлениях платформы.
Как запустить готовый отчёт
- 📂 Разово: в режиме «Предприятие» откройте главное меню (кнопка с тремя полосками) →
Файл → Открытьи выберите.erf. Платформа может спросить подтверждение на открытие внешнего файла. - 📌 Постоянно: в типовых конфигурациях подключите файл через
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Для этого в модуле объекта нужна функция регистрацииСведенияОВнешнейОбработке()— без неё файл откроется только разово.
Если отчёт не работает
Частые вопросы
Можно ли сделать консоль отчётов без Конфигуратора?
Работает ли внешний отчёт после обновления конфигурации?
Как дать отчёт пользователю без права открывать внешние файлы?
Можно ли вывести результат в Excel?
Файл → Сохранить как в формате .xlsx.