Рецепты
Печатная форма
Цель — подготовить макет печатной формы документа. Создать макет табличного документа, заполнить шапку и строку таблицы одной атомарной пачкой ячеек, разметить области для кода печати и проверить результат сеткой, как в редакторе макета.
Предпосылки
- Документ-владелец — в примерах
Document.РеализацияТоваровУслуг, имя макета —<Макет>. В типовой конфигурации на поддержке добавляйте макет к заимствованному документу в расширении (Расширение с перехватом метода). - Действует ключ или бесплатный доступ.
- Адреса ячеек —
RnCmс единицы, как в EDT:R1C1— первая строка, первая колонка.
Шаги
1. Снапшот и макет
{ "operation": "create", "label": "до печатной формы" }{
"project": "УТ2020",
"operation": "create",
"fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>",
"definition": { "template_type": "SpreadsheetDocument" }
}Табличный документ — вид макета по умолчанию, ключ template_type можно не указывать.
2. Шапка и строка таблицы одной пачкой
{
"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. Области для кода печати
{
"project": "УТ2020",
"operation": "create",
"fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>.Area.Заголовок",
"definition": { "bbox": "R1C1:R3C6" }
}То же для строки таблицы — область Строка с bbox: "R4C1:R4C6". Код печати получает их через ПолучитьОбласть("Заголовок") и ПолучитьОбласть("Строка").
4. Посмотреть результат
{ "project": "УТ2020", "fqn": "Document.РеализацияТоваровУслуг.Template.<Макет>#layout" }Грань #layout возвращает сетку строк и колонок, как в редакторе макета. Без грани ответ перечисляет области, объединения и параметры; адрес ….Cell.R4C5 — карточка одной ячейки с содержимым и оформлением.
Проверка
spreadsheet_readс адресом….Param— все параметры макета: и занимающие ячейку целиком, и встроенные в шаблоны.- Код печати в модуле менеджера —
code_writeс операциейcreate_method; модуль проверяется на синтаксис до записи и откатывается при ошибке. validateсfqn: "Документ.РеализацияТоваровУслуг"— ошибок нет.
Откат
{ "operation": "restore", "snapshot_id": "<идентификатор снапшота из шага 1>" }Удалить только область — spreadsheet_write с операцией delete и адресом ….Area.<Имя>.