Отчёт на СКД без Конфигуратора: работа в консоли компоновки данных

· 9 мин

Содержание

Консоль компоновки данных — это внешняя обработка (файл .epf), которую открывают в режиме 1С:Предприятие через Файл → Открыть (Ctrl+O). Чтобы пользоваться ею полноценно, базу лучше запустить в толстом клиенте: редактор схемы компоновки в режиме исполнения работает только там. Дальше всё как в Конфигураторе: набор данных с запросом, поля, группировки, отборы, параметры — и кнопка «Сформировать».

Консоль нужна, когда отчёт надо собрать или проверить прямо в рабочей базе, без правки конфигурации и без обновления базы. Ею пользуются программисты, чтобы отладить схему перед переносом в отчёт, и опытные бухгалтеры, чтобы получить нестандартную выборку за пять минут. Инструмент один на всю платформу 8.3, от конфигурации он не зависит: одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и самописных базах.

Где взять консоль компоновки и как запустить её в 1С

В типовых конфигурациях консоли нет — это отдельный файл. Фирма 1С распространяет её в составе материалов поддержки ИТС вместе с консолью запросов. Есть и сторонние консоли с расширенными возможностями; принцип работы у них тот же.

Запуск по шагам

  1. Сохраните файл обработки на диск, например в C:\1C\Tools\.
  2. В списке баз выделите нужную базу и нажмите «Изменить». На последней странице мастера выберите основной режим запуска «Толстый клиент».
  3. Запустите базу под пользователем с полными правами.
  4. Откройте файл через Файл → Открыть или перетащите его в окно программы.
  5. Если появится предупреждение о защите от опасных действий, подтвердите открытие — только если файл получен из надёжного источника.

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

Что нужно для запуска

  • 🔑 Право на интерактивное открытие внешних отчётов и обработок. В конфигурациях на БСП оно выдаётся отдельной ролью или профилем групп доступа.
  • 🖥 Толстый клиент для редактора схемы. В тонком клиенте и веб-клиенте форма откроется, но конструктор схемы не запустится.
  • 📦 Платформа 8.3 той же разрядности и сборки, что и сервер, если база клиент-серверная.

Из чего состоит окно

У разных версий консоли форма выглядит немного по-разному, но блоки одни и те же:

БлокДля чего
Дерево отчётовНесколько схем в одном файле, удобно держать набор своих выборок
Схема компоновкиНаборы данных, запросы, поля, вычисляемые поля, ресурсы, параметры
НастройкиСтруктура отчёта, выбранные поля, отбор, сортировка, оформление
РезультатТабличный документ после формирования
Макет компоновкиИтоговый текст запроса с подставленными параметрами — главный инструмент отладки

Как создать схему компоновки и написать запрос

Схема — основа отчёта. Без неё консоль ничего не выведет.

  1. Добавьте в дерево новый отчёт и откройте редактирование схемы.
  2. На закладке «Наборы данных» нажмите «Добавить» и выберите «Набор данных — запрос».
  3. Откройте конструктор запроса и выберите таблицы. Для начала подойдёт что-то простое: РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты в Бухгалтерии или РегистрНакопления.ТоварыНаСкладах.Остатки в торговой базе.
  4. Отметьте поля и нажмите «ОК». Колонки набора заполнятся автоматически.
  5. Перейдите на закладку «Ресурсы» и перенесите числовые поля, которые нужно суммировать по группировкам.

Пример запроса для остатков по счёту 41 в разрезе номенклатуры:

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
    ХозрасчетныйОстатки.КоличествоОстатокДт КАК Количество,
    ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
        &НаДату,
        Счет В ИЕРАРХИИ (&Счет41),
        ,
    ) КАК ХозрасчетныйОстатки

Параметры &НаДату и &Счет41 сразу появятся на закладке «Параметры» схемы.

Три приёма, которые экономят время

  • 🔁 Готовый запрос можно не писать с нуля. Откройте отчёт в Конфигураторе, скопируйте текст запроса из его набора данных и вставьте в консоль. Поля подтянутся сами.
  • 🧩 Фигурные скобки {} в запросе задают поля, доступные для отбора на уровне запроса. Компоновка подставит условие прямо в текст, и база отдаст меньше строк.
  • 🧮 Вычисляемые поля считайте на закладке «Вычисляемые поля», а не в запросе. Например, цена как Сумма / Количество с проверкой деления на ноль через ВЫБОР.

Если в отчёте нужен остаток на начало и конец периода, берите виртуальную таблицу ОстаткиИОбороты и параметры &НачалоПериода, &КонецПериода. Компоновка распознаёт их и предложит период в пользовательских настройках.

Настройка отчёта: поля вывода, группировки и отборы

Схема описывает, что можно получить. Настройки решают, что именно увидит пользователь.

Структура

Откройте закладку настроек и добавьте группировку. Без неё отчёт выведет одну строку общих итогов — это частый повод думать, что консоль «не работает ».

  • 📊 Группировка без полей — детальные записи, каждая строка из запроса.
  • 🗂 Группировка по полю — например, по Номенклатура. Строки сворачиваются, ресурсы суммируются.
  • 📈 Таблица — строки и колонки, для сводных отчётов в разрезе месяцев или складов.
  • 🧱 Вложенные группировки — Склад → Номенклатура. Порядок задаёт иерархию.

Выбранные поля, отбор, сортировка

На закладке «Выбранные поля» отметьте колонки. Если список пуст, у группировки стоит «Авто» — она берёт поля из уровня выше.

Отбор задают по любому доступному полю: Номенклатура В группе, Сумма Больше 0. Сортировку ставьте явно, иначе порядок строк не гарантирован.

Условное оформление

Подсветка строк задаётся на закладке «Условное оформление». Пример: красным, если Количество Меньше 0. Так отрицательные остатки видно сразу, без фильтров.

Параметры и варианты отчёта

Параметр — это значение, которое подставляется в запрос: дата, счёт, организация. Компоновка берёт их из схемы, а значения можно задать в настройках.

Как задать параметр

  1. В схеме на закладке «Параметры» проверьте тип параметра. Для счёта — ссылка на план счетов , для даты — Дата с составом «Дата и время».
  2. При необходимости отметьте «Доступен список значений» — тогда в запросе можно писать В (&Склады).
  3. В настройках отчёта на закладке «Параметры» включите флажок использования и укажите значение.
  4. Чтобы параметр показывался над отчётом при каждом формировании, включите его в пользовательские настройки.

Параметр даты окончания периода в остатках часто ставят как «начало дня». Остатки тогда считаются без операций этого дня. Для КонецПериода используйте выражение КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) в параметре схемы или тип стандартного периода.

Варианты

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

Отладка запроса и анализ производительности

Главное, ради чего консоль ценят программисты, — макет компоновки. Это то, что платформа на самом деле отправляет в базу после применения всех настроек.

Как посмотреть итоговый запрос

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

Так видно, почему отчёт тормозит: отбор не попал в виртуальную таблицу, остался ГДЕ после соединения, или выбирается поле, которое тянет лишнее соединение через точку.

Тот же разбор кодом

Если консоль недоступна, макет можно получить программно, например во внешней обработке:

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

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

// Итоговый текст запроса первого набора данных
Сообщить(Макет.НаборыДанных[0].Запрос);

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

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

Что смотреть при медленном отчёте

СимптомГде искатьЧто сделать
Отбор по организации, а читается весь регистрТекст макета: условие стоит в ГДЕ, а не в параметрах виртуальной таблицыДобавить поле в {} внутри параметров таблицы
Отчёт без отборов работает минутамиКоличество строк в результатеДобавить группировку по полю вместо детальных записей
Поле через точку в каждой строкеСоединения в макетеПолучить реквизит в запросе одним соединением
Медленно только у сервераЗамер производительности в Конфигураторе, технологический журналСмотреть план запроса на СУБД

Сравнивайте время на одинаковых параметрах. Второй запуск почти всегда быстрее: данные уже в кэше СУБД.

Сохранение настроек и выгрузка результата

Консоль хранит свои отчёты в отдельном файле. Схема, варианты и настройки сохраняются вместе.

  • 💾 Файл консоли — через команду сохранения в форме обработки. Файл переносится между базами одной конфигурации: открыл, сформировал.
  • 📄 Схема в XML — схему компоновки можно сериализовать и вставить в макет отчёта в Конфигураторе. Если в вашей консоли нет такой команды, скопируйте запрос и настройте поля заново: это 10–15 минут.
  • 📊 Результат в Excel — щёлкните по табличному документу, затем Файл → Сохранить как и выберите тип .xlsx. Доступны также .mxl, .pdf, .ods, .html.

Если в Excel нужны «плоские» данные без шапки и группировок, сделайте одну детальную группировку и отключите вывод общих итогов в параметрах вывода. Таблицу потом удобно обрабатывать сводной таблицей.

Файлы консоли могут содержать запросы с реальными данными в параметрах — суммы, контрагентов, ФИО. Не пересылайте их наружу без проверки.

Перед тем как переносить отчёт из консоли в конфигурацию
Выполнено: 0 / 6

Ошибки при работе с консолью и что с ними делать

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

Если не помогло

  • Скопируйте текст из макета компоновки в консоль запросов. Если запрос падает там же — ошибка в самом запросе, а не в настройках.
  • Создайте пустой отчёт в консоли и добавьте наборы по одному. Так находится конкретный набор или связь, которая ломает результат.
  • Проверьте связи наборов данных: при связи двух наборов без условий строки размножаются, суммы удваиваются.

Частые вопросы о консоли компоновки данных

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