.. _Integration_PrintformsApi_PostingPrintTask: Постановка задачи на печать ########################### | Запрос: ``POST /print`` | HTTP-заголовки: .. code-block:: Authorization: Bearer access_token Content-Type: application/json Accept: text/plain Тело запроса: .. code-block:: JSON { "ClientRequestId": "string", // клиентский идентификатор запроса "ContentType": "string", // идентификатор типа содержимого, для которого нужно сгенерировать ПФ "PrintformTypes": [ // идентификаторы типов ПФ, которые нужно сгенерировать "string" ], "Files": [ // исходные файлы для генерации ПФ ] } Описание запроса **************** Запрос позволяет поставить задачу на печать документа. В результате будет сгенерирована одна или несколько печатных форм. В поле ``ClientRequestId`` передается идентификатор запроса, сформированный на стороне внешней системы. По нему можно будет получить результаты генерации ПФ. Если ``ClientRequestId`` не будет передан, API сгенерирует его самостоятельно и вернет в ответе на запрос. В таком случае идентификатор должен быть сохранен внешней системой. В поле ``ContentType`` передается идентификатор типа содержимого, для которого нужно сгенерировать ПФ. Перечень типов можно получить, выполнив отдельный :ref:`запрос `. Тип можно не указывать. В этом случае API попробует определить тип самостоятельно на основе первого переданного файла в коллекции ``Files``: * сначала тип определяется по расширению файла; * если у файла расширение ``.XML``, то анализируется наличие и значение атрибута ``Файл/@ИдФайл``. В поле ``PrintformTypes`` задаются идентификаторы типов ПФ, которые должны быть сгенерированы. Перечень типов можно получить, выполнив отдельный :ref:`запрос `. Исходные файлы для генерации печатной формы =========================================== Для генерации ПФ по документу требуется один или несколько файлов. Например, для генерации ПФ для принятого УПД требуется титул продавца и титул покупателя, т. е. два отдельных файла. Коллекция исходных файлов для генерации печатной формы передается в поле ``Files``. Структура элемента коллекции: .. code-block:: JSON { "FileName": "string", // имя файла "Content": "base64", // данные файла в виде массива байт в Base64 "Signatures": [ // подписи под файлом { "Certificate": { // сведения о сертификате подписанта "FirstName": "string", // имя владельца сертификата "Surname": "string", // фамилия владельца сертификата "LastName": "string", // отчество владельца сертификата "OrganizationName": "string", // наименование организации, в которой работает владелец сертификата "SerialNumber": "string", // серийный номер сертификата "ValidFrom": "YYYY-MM-DDThh:mm:ss.fffZ", // дата и время, с которого действует сертификат "ValidTo": "YYYY-MM-DDThh:mm:ss.fffZ" // дата и время, по которое действует сертификат }, "SigningTime": "YYYY-MM-DDThh:mm:ss.fffZ", // дата и время, когда подпись была сформирована "SignatureTimeStampTime": "YYYY-MM-DDThh:mm:ss.fffZ" // дата и время, когда подпись была заверена TSP-сервером } ] } В поле ``FileName`` передается имя файла с расширением. В поле ``Content`` передаются данные файла виде массива байт в Base64. В поле ``Signatures`` передается коллекция подписей под файлом. Элементы коллекции будут использованы для генерации штампов с информацией о подписантах на печатной форме. Коллекция подписей может быть пустой, в этом случае штампы не генерируются. Каждый элемент коллекции содержит сведения о сертификате подписанта и дополнительные атрибуты CAdES-подписи: * дату и время, когда подпись была сформирована; * дату и время, когда подпись была заверена TSP-сервером. Дополнительные атрибуты передаются только в случае их наличия. Ответ на запрос *************** В случае успешного выполнения возвращается идентификатор запроса. | Если идентификатор запроса был передан в ``ClientRequestId``, то возвращается переданное значение. | Если идентификатор запроса не был передан в ``ClientRequestId``, то возвращается значение, сгенерированное при обработке запроса в API. По идентификатору запроса можно будет получить результаты генерации ПФ либо сообщение об ошибке, если генерация завершится с ошибкой.