3.3.4.6. Метод PrintDocument
|
|
Федеральной налоговой службой для некоторых финансовых документов установлены стандартизованные форматы представления на бумаге. В системе Такском-Доклайнз и .NET SDK такие стандартизованные форматы используются при создании PDF файлов следующих документов:
•
|
счёт-фактура и корректировочный счёт-фактура;
|
•
|
акт о выполнении работ (оказании услуг);
|
•
|
товарная накладная (ТОРГ-12);
|
•
|
неформализованный документ в формате PDF, Microsoft Excel (*.xls/*.xlsx) или Microsoft Word (*.doc/*.docx).
|
Метод PrintDocument экземпляра класса TaxcomApi используется для получения данных для формирования PDF файла.
Если сотрудник не имеет прав доступ к указанному документу, то ему возвратится информация об ошибке 2120.
Данные для PDF генерируется асинхронно на сервере системы Такском-Доклайнз. Метод PrintDocument инициирует запрос для данных на сервере и помещает этот запрос в очередь. После того как данные для печатной формы готовы, следует использовать метод PrintDocument для получения этих данных с сервера системы Такском-Доклайнз.
Подготовка печатной формы документа обычно занимает от 10 секунд до нескольких минут, в зависимости от текущей нагрузки на сервер и длины очереди.
IPrintResult PrintDocument(string ID);
| |
ID
|
атрибут internal ID электронного документа в системе Такском-Доклайнз, который может быть получен с помощью метода GetDocflowsList, или идентификатор документооборота (docflow_id)
|
Метод возвращает объект следующего вида:
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IPrintResult
{
/// <summary>
/// Sign that data is ready on the server
/// </summary>
bool HasContent { get; }
/// <summary>
/// The data for preparing a E-document hard copy
/// </summary>
byte[] PrintFormContent { get; }
}
Поскольку метод работает асинхронно, для того, чтобы получить PDF документа, должен быть реализован следующий алгоритм:
1.
|
Вызов метода PrintDocument для запуска подготовки данных на сервере.
|
2.
|
Периодический вызов метода PrintDocument с интервалом 30 секунд для того же документа и проверка логического значения параметра HasContent. Цикл завершается, когда параметр HasContent примет значение true.
|
3.
|
Получение PDF из PrintFormContent.
|

Метод PrintDocument PrintDocument может вызывать следующие исключения:
•
|
WebException со стандартными кодами ответов HTTP 500, 403, 401, 400 (некорректный id), и 404 (документ не найден).
|
•
|
NotSupportedException – Такском-Доклайнз не поддерживает формирование PDF для данного типа документа.
|