Инструменты · Отчёты СКД
dcs_write
Создаёт, изменяет и удаляет узлы схемы компоновки данных — саму схему, наборы данных (запрос с автоматическими полями, объект, объединение), поля, параметры, вычисляемые поля, ресурсы, связи наборов, источники данных, вложенные схемы и варианты настроек. Один вызов — один узел; пачка — через коллекционный адрес.
Когда использовать
- Отчёт с нуля:
createсхемы — источник данных и вариантОсновнойдобавляются сами, затем набор из запроса сauto_fields: true. - Добавить ресурсы, вычисляемые поля или параметры — пачкой по коллекционному адресу.
- Поправить текст запроса набора или заголовок параметра —
updateтолько нужных ключей. - Выбранные поля, отборы, группировки варианта — не здесь, а
composition_settings_write.
Соседние инструменты домена «Отчёты СКД»
#help — контракт записиcomposition_settings_readRЧитает настройки компоновки — выбранные поля, отборы, сортировку, структуру группировок, условное оформление, параметры данных и вывода — у настроек по умолчанию схемы, у варианта, у вложенной схемы или у динамического списка на форме. Каждый элемент показан с индексом [i] — готовым адресом для правки.composition_settings_writeWнастройки варианта отчётаОперации
| operation | Что делает | Нужно передать |
|---|---|---|
create | Создаёт узел. Схема: макет-схема, основная схема отчёта, источник данных и вариант Основной. Набор Query: query_text, auto_fields: true создаёт поля из псевдонимов запроса вместе с типами. Коллекционный адрес с массивом — пачка. | project, fqn, definition |
update | Меняет переданные ключи узла; definition.name — переименование. Переименование варианта или вложенной схемы меняет адрес их настроек. | project, fqn, definition |
delete | Удаляет узел. | project, fqn |
Параметры
| Параметр и тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|
projectстрока | да | Идентификатор проекта рабочей области EDT — имя из ответа project_read (например, УТ2020). Для расширения — проект расширения. | — |
operationстрока | да | Операция инструмента — значения и их смысл в таблице «Операции».значения: create · update · delete | — |
fqnстрока | да | Адрес узла: Report.<Отчет>.Template.<Схема> (схема), .DataSet.<Набор>, .DataSet.<Набор>.Field.<Поле>, .Parameter.<Имя>, .CalculatedField.<Поле>, .TotalField.<Поле>, .DataSetLink.<номер>, .DataSource.<Имя>, .SettingsVariant.<Имя>, .NestedSchema.<Имя>. | — |
definitionобъект | массив | нет | Свойства узла без имени. Набор: type (Query, Object, Union), query_text, auto_fields, data_source, object_name. Поле: data_path, title, value_type. Параметр: title, value_type, expression. Ресурс: expression, groups. Связь: source, destination, выражения, link_condition. Массив — пачка, у каждого элемента name, до 100. Неизвестный ключ — отказ; контракт — dcs_read с гранью #help. | — |
dry_runбулево | нет | true — выполнить в транзакции и гарантированно откатить: ответ показывает изменения, схема не меняется. | — |
titleстрока | нет | Необязательная подпись вызова до 40 символов: клиент показывает её в шапке карточки вызова. На результат не влияет. | — |
Таблица собрана из схемы инструмента, которую получает агент при подключении.
Адреса
| Адрес | Что адресует |
|---|---|
Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных | схема |
….DataSet.<Набор> | набор данных |
….DataSet.<Набор>.Field | коллекционный адрес: пачка полей |
….TotalField | коллекционный адрес: пачка ресурсов |
….Parameter.Период | параметр |
Пример вызова и ответа
Если типы полей из запроса определить не удалось, поля создаются без типов, а Warnings об этом сообщает.
{
"project": "УТ2020",
"operation": "create",
"fqn": "Report.<Отчет>.Template.ОсновнаяСхемаКомпоновкиДанных.DataSet.Остатки",
"definition": {
"type": "Query",
"query_text": "ВЫБРАТЬ Остатки.Склад КАК Склад, Остатки.Номенклатура КАК Номенклатура, Остатки.КоличествоОстаток КАК Количество ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК Остатки",
"auto_fields": true
}
}Пример ответа в подготовке Устройство ответа — на странице Формат ответов.
Отказы и ошибки
rolled_back · узел не найден
Опечатка в имени набора — ответ называет причину, указывает на контракт и предлагает ближайшие имена.
### 🟠 update — Report.Продажи.Template.СКД.DataSet.Продажы
- **status:** 🟠 rolled_back
- **fqn:** `Report.Продажи.Template.СКД.DataSet.Продажы`
- **operation:** `update`
- **rollback_reason:** Набор не найден: Продажы; контракт: dcs_read Report.Продажи.Template.СКД.DataSet.Продажы#help
#### Did you mean
- Продажи
- Остаткиrolled_back · лишний ключ definition
Узел не принимает ключ — ответ перечисляет принимаемые.
rolled_back · дубль ресурса
Второй ресурс с тем же полем допустим только с groups — расчётом по группировкам.
failed · Unknown operation
Неизвестное значение operation. В ответе — fix_hint: supported: … со списком допустимых операций и секция Did you mean. Допустимо: create, update, delete.
failed · лицензия
Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.
Ограничения
- Пачка — до 100 узлов одной коллекции, атомарно.
- Макеты оформления схемы только читаются; печатные макеты —
spreadsheet_write.