[POST] …/v1/docprintform/prepare
Подготавливает печатную форму документа по RTF-шаблону.
При version=1 возвращает подготовленный RTF-файл в виде строки base64, при version=2 возвращает URL файла.
Версии не пересекаются.
Поддерживаемые документы:
| doc_type_id | Документ |
|---|---|
| 1 | DocPurchase - поступление от контрагента |
| 2 | DocReturnToPartner - возврат поставщику |
| 3 | DocMovement - перемещение |
| 5 | DocPayment - платеж |
| 6 | DocInout - ввод/вывод остатков |
| 9 | DocWholesale - оптовая продажа |
| 11 | DocWholesaleReturn - возврат от покупателя |
| 12 | DocOrderFromPartner - заказ поставщику |
| 13 | DocOrderToPartner - заказ покупателя |
| 14 | DocOrderMovement - заказ на перемещение |
| 18 | DocInventory - инвентаризация |
| 19 | DocSetPrice - установка цен |
| 20 | DocCommercialOffer - коммерческое предложение |
| 22 | DocOrderDelivery - заказ доставки |
| 23 | DocInvoice - счет-фактура |
| 24 | DocProduction - производство |
| 25 | DocTechMap - техкарта |
| 26 | DocPartnerBalance - акт сверки взаиморасчётов |
Входные параметры
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| print_form_type_id | Int64 | Обязательный | Id связи печатной формы с типом документа |
| data | Object | Обязательный | Объект с данными для подготовки печатной формы. Состав объекта зависит от типа документа, указанного в print_form_type_id |
| version | Int | Необязательный | Версия формата ответа: 1 или 2. По умолчанию 1 |
Поле data для обычного документа
Используется для всех поддерживаемых документов, кроме DocPartnerBalance.
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| document_id | Int64 | Обязательный | Id документа, для которого нужно подготовить печатную форму |
Пример запроса для обычного документа
{
"print_form_type_id": 1,
"version": 2,
"data": {
"document_id": 123
}
}
Поле data для акта сверки взаиморасчётов
Используется, если печатная форма привязана к DocPartnerBalance.
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| partner_id | Int64 | Обязательный | Id контрагента, по которому формируется акт сверки |
| firm_id | Int64 | Обязательный | Id предприятия, по которому формируется акт сверки |
| currency_id | Int64 | Обязательный | Id валюты акта сверки |
| start_date | Int64 | Обязательный | Дата начала периода в UnixTime |
| end_date | Int64 | Обязательный | Дата окончания периода в UnixTime |
Пример запроса для акта сверки взаиморасчётов
{
"print_form_type_id": 1,
"version": 2,
"data": {
"partner_id": 10,
"firm_id": 1,
"currency_id": 1,
"start_date": 1711929600,
"end_date": 1714521599
}
}
Выходные параметры
При version=1 метод возвращает строку base64.
При version=2 метод сохраняет подготовленный файл через CommonFile и возвращает объект с URL файла.
Формат ответа при version=1
| Название | Тип данных | Описание |
|---|---|---|
| result | String | Подготовленный RTF-файл в формате base64 |
Пример ответа при version=1
{
"ok": true,
"result": "e1xydGYx..."
}
Формат ответа при version=2
| Название | Тип данных | Описание |
|---|---|---|
| result.file_name | String | Имя подготовленного файла |
| result.data | String | URL файла |
| result.version | Int | Версия формата (2) |
Пример ответа при version=2
{
"ok": true,
"result": {
"file_name": "printform_123.rtf",
"data": "https://cdn.example/....rtf",
"version": 2
}
}
Допустимые значения version: 1 и 2.
Если передано иное значение, возвращается ошибка 1002 (version).
Переменные и таблицы
Обычные переменные имеют вид <CompanyName>, <PartnerName>, <DocCode>.
Табличная часть определяется строкой RTF-таблицы, содержащей переменные номенклатуры, например <ItemName>, <ItemQuantity>, <ItemCost>, <ItemTotal>, <ItemImage>. Эта строка используется как шаблон и копируется по количеству операций документа.
Для DocPartnerBalance табличная часть определяется строкой с переменными <RowDocType>, <RowDocCode>, <RowDocDate>, <RowDebit>, <RowCredit>, <RowSaldoBegin>, <RowSaldoEnd>.
Изображения
Для изображений используется переменная <ItemImage>. Если URL изображения пустой или состоит только из пробелов, вместо переменной вставляется пустая строка.
Если URL заполнен, вместо переменной вставляется RTF-поле INCLUDEPICTURE:
{\field{\*\fldinst INCLUDEPICTURE "https://site.com/logo.png" \d}{\fldrslt }}
После открытия документа в Word изображение можно обновить стандартным обновлением полей, например выделить документ и нажать F9.
Переменные в шаблоне должны быть записаны цельным текстом, без разрыва форматированием.