Отчёт на СКД без Конфигуратора: работа в консоли компоновки данных
Содержание
Консоль компоновки данных — это внешняя обработка (файл .epf), которую открывают в режиме 1С:Предприятие через Файл → Открыть (Ctrl+O). Чтобы пользоваться ею полноценно, базу лучше запустить в толстом клиенте: редактор схемы компоновки в режиме исполнения работает только там. Дальше всё как в Конфигураторе: набор данных с запросом, поля, группировки, отборы, параметры — и кнопка «Сформировать».
Консоль нужна, когда отчёт надо собрать или проверить прямо в рабочей базе, без правки конфигурации и без обновления базы. Ею пользуются программисты, чтобы отладить схему перед переносом в отчёт, и опытные бухгалтеры, чтобы получить нестандартную выборку за пять минут. Инструмент один на всю платформу 8.3, от конфигурации он не зависит: одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и самописных базах.
Где взять консоль компоновки и как запустить её в 1С
В типовых конфигурациях консоли нет — это отдельный файл. Фирма 1С распространяет её в составе материалов поддержки ИТС вместе с консолью запросов. Есть и сторонние консоли с расширенными возможностями; принцип работы у них тот же.
Запуск по шагам
- Сохраните файл обработки на диск, например в
C:\1C\Tools\. - В списке баз выделите нужную базу и нажмите «Изменить». На последней странице мастера выберите основной режим запуска «Толстый клиент».
- Запустите базу под пользователем с полными правами.
- Откройте файл через
Файл → Открытьили перетащите его в окно программы. - Если появится предупреждение о защите от опасных действий, подтвердите открытие — только если файл получен из надёжного источника.
Внешняя обработка выполняет код с правами вашего пользователя. Консоль, скачанная с неизвестного форума, может изменить или удалить данные. Берите файл из проверенного источника.
Что нужно для запуска
- 🔑 Право на интерактивное открытие внешних отчётов и обработок. В конфигурациях на БСП оно выдаётся отдельной ролью или профилем групп доступа.
- 🖥 Толстый клиент для редактора схемы. В тонком клиенте и веб-клиенте форма откроется, но конструктор схемы не запустится.
- 📦 Платформа 8.3 той же разрядности и сборки, что и сервер, если база клиент-серверная.
Из чего состоит окно
У разных версий консоли форма выглядит немного по-разному, но блоки одни и те же:
| Блок | Для чего |
|---|---|
| Дерево отчётов | Несколько схем в одном файле, удобно держать набор своих выборок |
| Схема компоновки | Наборы данных, запросы, поля, вычисляемые поля, ресурсы, параметры |
| Настройки | Структура отчёта, выбранные поля, отбор, сортировка, оформление |
| Результат | Табличный документ после формирования |
| Макет компоновки | Итоговый текст запроса с подставленными параметрами — главный инструмент отладки |
Как создать схему компоновки и написать запрос
Схема — основа отчёта. Без неё консоль ничего не выведет.
- Добавьте в дерево новый отчёт и откройте редактирование схемы.
- На закладке «Наборы данных» нажмите «Добавить» и выберите «Набор данных — запрос».
- Откройте конструктор запроса и выберите таблицы. Для начала подойдёт что-то простое:
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОборотыв Бухгалтерии илиРегистрНакопления.ТоварыНаСкладах.Остаткив торговой базе. - Отметьте поля и нажмите «ОК». Колонки набора заполнятся автоматически.
- Перейдите на закладку «Ресурсы» и перенесите числовые поля, которые нужно суммировать по группировкам.
Пример запроса для остатков по счёту 41 в разрезе номенклатуры:
ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
ХозрасчетныйОстатки.КоличествоОстатокДт КАК Количество,
ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
&НаДату,
Счет В ИЕРАРХИИ (&Счет41),
,
) КАК ХозрасчетныйОстатки
Параметры &НаДату и &Счет41 сразу появятся на закладке «Параметры» схемы.
Три приёма, которые экономят время
- 🔁 Готовый запрос можно не писать с нуля. Откройте отчёт в Конфигураторе, скопируйте текст запроса из его набора данных и вставьте в консоль. Поля подтянутся сами.
- 🧩 Фигурные скобки
{}в запросе задают поля, доступные для отбора на уровне запроса. Компоновка подставит условие прямо в текст, и база отдаст меньше строк. - 🧮 Вычисляемые поля считайте на закладке «Вычисляемые поля», а не в запросе. Например, цена как
Сумма / Количествос проверкой деления на ноль черезВЫБОР.
Если в отчёте нужен остаток на начало и конец периода, берите виртуальную таблицу ОстаткиИОбороты и параметры &НачалоПериода, &КонецПериода. Компоновка распознаёт их и предложит период в пользовательских настройках.
Настройка отчёта: поля вывода, группировки и отборы
Схема описывает, что можно получить. Настройки решают, что именно увидит пользователь.
Структура
Откройте закладку настроек и добавьте группировку. Без неё отчёт выведет одну строку общих итогов — это частый повод думать, что консоль «не работает ».
- 📊 Группировка без полей — детальные записи, каждая строка из запроса.
- 🗂 Группировка по полю — например, по
Номенклатура. Строки сворачиваются, ресурсы суммируются. - 📈 Таблица — строки и колонки, для сводных отчётов в разрезе месяцев или складов.
- 🧱 Вложенные группировки — Склад → Номенклатура. Порядок задаёт иерархию.
Выбранные поля, отбор, сортировка
На закладке «Выбранные поля» отметьте колонки. Если список пуст, у группировки стоит «Авто» — она берёт поля из уровня выше.
Отбор задают по любому доступному полю: Номенклатура В группе, Сумма Больше 0. Сортировку ставьте явно, иначе порядок строк не гарантирован.
Условное оформление
Подсветка строк задаётся на закладке «Условное оформление». Пример: красным, если Количество Меньше 0. Так отрицательные остатки видно сразу, без фильтров.
Параметры и варианты отчёта
Параметр — это значение, которое подставляется в запрос: дата, счёт, организация. Компоновка берёт их из схемы, а значения можно задать в настройках.
Как задать параметр
- В схеме на закладке «Параметры» проверьте тип параметра. Для счёта — ссылка на план счетов
, для даты —
Датас составом «Дата и время». - При необходимости отметьте «Доступен список значений» — тогда в запросе можно писать
В (&Склады). - В настройках отчёта на закладке «Параметры» включите флажок использования и укажите значение.
- Чтобы параметр показывался над отчётом при каждом формировании, включите его в пользовательские настройки.
Параметр даты окончания периода в остатках часто ставят как «начало дня». Остатки тогда считаются без операций этого дня. Для КонецПериода используйте выражение КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) в параметре схемы или тип стандартного периода.
Варианты
В одной схеме можно держать несколько вариантов настроек: «Кратко по складам», «Подробно с партиями». Добавьте вариант на закладке «Варианты отчёта» схемы, у каждого будет своя структура и отбор. Схема и запрос остаются общими, меняется только представление данных.
Отладка запроса и анализ производительности
Главное, ради чего консоль ценят программисты, — макет компоновки. Это то, что платформа на самом деле отправляет в базу после применения всех настроек.
Как посмотреть итоговый запрос
- Сформируйте отчёт.
- Откройте закладку или окно с макетом компоновки (в разных консолях оно называется чуть иначе, ищите слово «макет»).
- Найдите набор данных и его текст запроса. Отборы из настроек уже подставлены в условия, неиспользуемые поля выброшены.
- Скопируйте текст в консоль запросов и выполните с теми же параметрами.
Так видно, почему отчёт тормозит: отбор не попал в виртуальную таблицу, остался ГДЕ после соединения, или выбирается поле, которое тянет лишнее соединение через точку.
Тот же разбор кодом
Если консоль недоступна, макет можно получить программно, например во внешней обработке:
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(Схема, Настройки);
// Итоговый текст запроса первого набора данных
Сообщить(Макет.НаборыДанных[0].Запрос);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет);
ТабДок = Новый ТабличныйДокумент;
Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Вывод.УстановитьДокумент(ТабДок);
Вывод.Вывести(Процессор);
ТабДок.Показать();
Что смотреть при медленном отчёте
| Симптом | Где искать | Что сделать |
|---|---|---|
| Отбор по организации, а читается весь регистр | Текст макета: условие стоит в ГДЕ, а не в параметрах виртуальной таблицы | Добавить поле в {} внутри параметров таблицы |
| Отчёт без отборов работает минутами | Количество строк в результате | Добавить группировку по полю вместо детальных записей |
| Поле через точку в каждой строке | Соединения в макете | Получить реквизит в запросе одним соединением |
| Медленно только у сервера | Замер производительности в Конфигураторе, технологический журнал | Смотреть план запроса на СУБД |
Сравнивайте время на одинаковых параметрах. Второй запуск почти всегда быстрее: данные уже в кэше СУБД.
Сохранение настроек и выгрузка результата
Консоль хранит свои отчёты в отдельном файле. Схема, варианты и настройки сохраняются вместе.
- 💾 Файл консоли — через команду сохранения в форме обработки. Файл переносится между базами одной конфигурации: открыл, сформировал.
- 📄 Схема в XML — схему компоновки можно сериализовать и вставить в макет отчёта в Конфигураторе. Если в вашей консоли нет такой команды, скопируйте запрос и настройте поля заново: это 10–15 минут.
- 📊 Результат в Excel — щёлкните по табличному документу, затем
Файл → Сохранить каки выберите тип.xlsx. Доступны также.mxl,.pdf,.ods,.html.
Если в Excel нужны «плоские» данные без шапки и группировок, сделайте одну детальную группировку и отключите вывод общих итогов в параметрах вывода. Таблицу потом удобно обрабатывать сводной таблицей.
Файлы консоли могут содержать запросы с реальными данными в параметрах — суммы, контрагентов, ФИО. Не пересылайте их наружу без проверки.
Ошибки при работе с консолью и что с ними делать
Если не помогло
- Скопируйте текст из макета компоновки в консоль запросов. Если запрос падает там же — ошибка в самом запросе, а не в настройках.
- Создайте пустой отчёт в консоли и добавьте наборы по одному. Так находится конкретный набор или связь, которая ломает результат.
- Проверьте связи наборов данных: при связи двух наборов без условий строки размножаются, суммы удваиваются.