Кабинет
На этой странице

Рецепты

Отчёт СКД с нуля

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

обновлено 30.09.2026плагин 0.2.0 · EDT 2025.2Предложить правку или письмом

Предпосылки

  • Действует ключ или бесплатный доступ.
  • Отчёт создаётся в конфигурации, открытой для изменения, или в расширении. Имя отчёта в примерах — <Отчет>, подставьте своё.
  • Запрос в примере читает остатки регистра ТоварыНаСкладах. Если в вашей конфигурации поля называются иначе, шаг 2 это покажет.

Шаги

1. Снапшот и объект отчёта

snapshot_write
{ "operation": "create", "label": "до отчёта по остаткам" }
metadata_write
{ "project": "УТ2020", "operation": "create", "fqn": "Report.<Отчет>" }

Ответ: 🟢 committed. Какие ещё свойства отчёта можно задать в definition — metadata_read с адресом Report.<Отчет>#help.

2. Проверить запрос до записи

query_read
{
  "project": "УТ2020",
  "query": "ВЫБРАТЬ Остатки.Склад КАК Склад, Остатки.Номенклатура КАК Номенклатура, Остатки.КоличествоОстаток КАК Количество ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК Остатки"
}

С параметром project проверка идёт не только по синтаксису: таблицы и поля сверяются с конфигурацией, как в конструкторе запроса EDT. Несуществующее поле — ошибка с позицией. Валидный запрос дополнительно проходит ревью по стандартам ИТС: советы приходят в секции Recommendations и не меняют зелёный кружок.

3. Схема компоновки

dcs_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных",
  "definition": {}
}

Создаётся макет-схема, она становится основной схемой отчёта; источник данных и вариант настроек Основной добавляются автоматически.

4. Набор данных из запроса

dcs_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных.DataSet.Остатки",
  "definition": {
    "type": "Query",
    "query_text": "ВЫБРАТЬ Остатки.Склад КАК Склад, Остатки.Номенклатура КАК Номенклатура, Остатки.КоличествоОстаток КАК Количество ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК Остатки",
    "auto_fields": true
  }
}

auto_fields: true создаёт поля набора из псевдонимов запроса вместе с их типами. Если типы определить не удалось, поля всё равно создаются, а в Warnings об этом сказано.

5. Ресурс

dcs_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных.TotalField",
  "definition": [ { "name": "Количество", "expression": "Сумма(Количество)" } ]
}

Коллекционный адрес TotalField и массив — пакетная запись; так же в одном вызове создаются несколько ресурсов.

6. Настройки варианта: поля, группировка, заголовок

composition_settings_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных.SettingsVariant.Основной.Settings.Selection",
  "definition": { "field": "Номенклатура" }
}

Повторите для поля Количество. Группировка по складу:

composition_settings_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных.SettingsVariant.Основной.Settings.Structure",
  "definition": { "field": "Склад" }
}

Заголовок отчёта:

composition_settings_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных.SettingsVariant.Основной.Settings.OutputParameter.Заголовок",
  "definition": { "value": "Остатки товаров по складам", "use": true }
}

Контракт каждой секции настроек — composition_settings_read с адресом секции и гранью #help, например …Settings.Filter#help.

Проверка

  • dcs_read с адресом Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных — обзор схемы: набор, поля, ресурс, вариант.
  • composition_settings_read с адресом …SettingsVariant.Основной.Settings — выбранные поля, группировка и параметры вывода с индексами [i] для правок.
  • validate с fqn: "Отчет.<Отчет>" — ошибок нет.
  • Данные в базе: runtime_read выполняет тот же запрос в живой базе и возвращает первые строки — пустой отчёт сразу отличим от пустого регистра. Инструмент выключен по умолчанию, его включение описано на странице runtime_read.

Откат

snapshot_action
{ "operation": "restore", "snapshot_id": "<идентификатор снапшота из шага 1>" }

Удалить только настройку — composition_settings_write с операцией delete и адресом элемента с индексом, например …Settings.Structure[0].

Нашли ошибку — предложите правку.обновлено 30.09.2026

Например: metadata_write, «порт занят», коллекционный адрес.

↑ ↓ выборEnter открыть/ или Ctrl K — открыть поиск