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

Рецепты

Печатная форма

Цель — подготовить макет печатной формы документа. Создать макет табличного документа, заполнить шапку и строку таблицы одной атомарной пачкой ячеек, разметить области для кода печати и проверить результат сеткой, как в редакторе макета.

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

Предпосылки

  • Документ-владелец — в примерах Document.РеализацияТоваровУслуг, имя макета — <Макет>. В типовой конфигурации на поддержке добавляйте макет к заимствованному документу в расширении (Расширение с перехватом метода).
  • Действует ключ или бесплатный доступ.
  • Адреса ячеек — RnCm с единицы, как в EDT: R1C1 — первая строка, первая колонка.

Шаги

1. Снапшот и макет

snapshot_write
{ "operation": "create", "label": "до печатной формы" }
metadata_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>",
  "definition": { "template_type": "SpreadsheetDocument" }
}

Табличный документ — вид макета по умолчанию, ключ template_type можно не указывать.

2. Шапка и строка таблицы одной пачкой

spreadsheet_write
{
  "project": "УТ2020",
  "operation": "update",
  "fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>.Cell",
  "definition": [
    { "cell": "R1C1", "fill": "Шаблон", "text": "Расходная накладная № [Номер] от [Дата]", "merge": "R1C1:R1C6", "font": "Arial,12,bold" },
    { "cell": "R3C1", "text": "Номенклатура", "font": "Arial,9,bold" },
    { "cell": "R3C5", "text": "Количество", "font": "Arial,9,bold", "horizontalAlignment": "Право" },
    { "cell": "R3C1:R3C6", "backColor": "#EEEEEE" },
    { "cell": "R4C1", "fill": "Параметр", "parameter": "Номенклатура" },
    { "cell": "R4C5", "fill": "Параметр", "parameter": "Количество", "horizontalAlignment": "Право" }
  ]
}
  • fill задаёт вид заполнения: Текст с text, Параметр с parameter, Шаблон — текст со встроенными параметрами [Имя]. Несовпадение вида и содержимого — отказ всей пачки.
  • merge объединяет ячейки от адресной ячейки; null снимает объединение.
  • Диапазон R3C1:R3C6 применяет одну дельту ко всем шести ячейкам.
  • В пачке до 100 элементов и 1000 ячеек; при ошибке в любом элементе не меняется ничего.

3. Области для кода печати

spreadsheet_write
{
  "project": "УТ2020",
  "operation": "create",
  "fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>.Area.Заголовок",
  "definition": { "bbox": "R1C1:R3C6" }
}

То же для строки таблицы — область Строка с bbox: "R4C1:R4C6". Код печати получает их через ПолучитьОбласть("Заголовок") и ПолучитьОбласть("Строка").

4. Посмотреть результат

spreadsheet_read
{ "project": "УТ2020", "fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>#layout" }

Грань #layout возвращает сетку строк и колонок, как в редакторе макета. Без грани ответ перечисляет области, объединения и параметры; адрес ….Cell.R4C5 — карточка одной ячейки с содержимым и оформлением.

Проверка

  • spreadsheet_read с адресом ….Param — все параметры макета: и занимающие ячейку целиком, и встроенные в шаблоны.
  • Код печати в модуле менеджера — code_write с операцией create_method; модуль проверяется на синтаксис до записи и откатывается при ошибке.
  • validate с fqn: "Документ.РеализацияТоваровУслуг" — ошибок нет.

Откат

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

Удалить только область — spreadsheet_write с операцией delete и адресом ….Area.<Имя>.

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

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

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