HTTP API
Печать по шаблону поддерживает прямой запуск рендеринга и скачивания документа через HTTP API. И блок подробностей, и блок таблицы по сути запускают action templatePrint для текущего бизнес-ресурса.
Пояснения:
<resource_name>— имя ресурса, соответствующее текущей таблице данных.- Интерфейс возвращает поток двоичного файла, а не данные JSON.
- Вызывающая сторона должна обладать правами на запрос текущего ресурса и правами на использование соответствующей кнопки печати по шаблону.
- При вызове интерфейса в заголовке Authorization необходимо передать JWT-токен, выданный при входе пользователя, иначе доступ будет отклонён.
Параметры тела запроса
Блок таблицы
Блок таблицы использует тот же интерфейс и указывает режим печати списка через blockName: "table". Сервер выполняет запрос find к ресурсу и передаёт массив результатов в шаблон.
Печать выделенных записей или результатов текущей страницы
Подходит для случая, когда из блока таблицы нужно напечатать часть отмеченных записей или сохранить контекст текущей страницы. Распространённый подход:
- Установить
queryParams.pageиqueryParams.pageSizeравными текущему номеру страницы и числу записей на странице. - Собрать первичные ключи отмеченных записей в услов ие
filter.id.$in.
Что означает такой запрос:
blockNameравенtable— шаблон рендерится по данным списка.filter.id.$inзадаёт набор записей, которые нужно напечатать.pageиpageSizeсохраняют контекст текущей страницы, чтобы поведение совпадало с тем, что видит пользователь.appendsпозволяет при необходимости подгрузить связанные поля.
Печать всех записей, удовлетворяющих условиям
Подходит для случая, когда в блоке таблицы нажимается «Напечатать все записи». В этом случае постраничная выборка не используется — данные тянутся целиком, в соответствии с текущими условиями фильтрации.
Ключевая особенность — явная передача queryParams.page и queryParams.pageSize со значением null.
Что означает такой запрос:
page: nullиpageSize: nullотключают ограничение по страницам.filter: {}означает отсутствие дополнительных условий фильтрации; если в интерфейсе уже задана фильтрация, её можно так же передать сюда.- Сервер запрашивает все подходящие записи и пакетно рендерит шаблон.
Внимание: за один раз блок таблицы печатает не более 300 записей. При превышении лимита интерфейс возвращает ошибку
400.
Блок подробностей
Блок подробностей использует тот же action templatePrint, но обычно передаёт:
blockName: "details";queryParams.filterByTk— первичный ключ текущей записи;queryParams.appends— связанные поля, которые нужно подгрузить.
Сервер выполняет запрос findOne к ресурсу и передаёт объект-результат в шаблон.
Возвращаемый результат
После успешного вызова интерфейс возвращает поток файла. Типичные заголовки ответа:
Пояснения:
- При
convertedToPDF, равномtrue, расширение возвращаемого файла —.pdf. - Иначе возвращается файл оригинального типа шаблона, например
.docx,.xlsxили.pptx. - Фронтенд обычно использует имя файла из
Content-Disposition, чтобы запустить скачивание в браузере.

