Итак, продолжаю кастомить генератор документов.
казалось бы нетривиальная задача на событии:
onDocumentTransformationComplete
получить сгенерированный файл.
Однако в параметре $data в обработчик событий приходит вот такой массив:
Скрытый текст |
---|
Код |
---|
onDocumentTransformationComplete
$documentId: 16.08.2020 08:45:15:
86
$data: 16.08.2020 08:45:15:
Array
(
[changeStampsEnabled] =>
[changeStampsDisabledReason] => В шаблоне нет печатей и подписей.
[downloadUrl] => Bitrix\Main\Engine\Response\DataType\ContentUri Object
(
[scheme:protected] => http
[host:protected] =>
[port:protected] => 80
[user:protected] =>
[pass:protected] =>
[path:protected] => /bitrix/services/main/ajax.php
[query:protected] => action=documentgenerator.api.document.getfile&id=86&ts=1597556708
[fragment:protected] =>
)
[publicUrl] =>
[title] => Коммерческое предложение 61
[number] => 61
[id] => 86
[createTime] => Bitrix\Main\Type\DateTime Object
(
[value:protected] => DateTime Object
(
[date] => 2020-08-16 08:45:08.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[updateTime] => Bitrix\Main\Type\DateTime Object
(
[value:protected] => DateTime Object
(
[date] => 2020-08-16 08:45:08.000000
[timezone_type] => 3
[timezone] => Europe/Moscow
)
)
[stampsEnabled] => 1
[isTransformationError] =>
[value] => 5389
[values] => Array
(
[stampsEnabled] => 1
[_creationMethod] => public
[QuoteDealId] => 5389
[QuoteCurrencyName] => тенге
[QuoteCurrencyRate] => 1152
[QuoteVatIncluding] => с НДС
[W4aAddFieldTitle1] => Примечание
[QuoteVatIncludingBottom] => в том числе НДС
[W4aTotalSumByCurrency] => 6 335,00 тенге
[W4aTotalVatSumByCurrency] => 0 тенге
[W4aTotalSumByCurrencyWord] => Шесть тысяч триста тридцать пять тенге 00 тиын
)
[templateId] => 2
[provider] => Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Deal
[pullTag] => TRANSFORMDOCUMENT86
[imageUrl] => Bitrix\Main\Engine\Response\DataType\ContentUri Object
(
[scheme:protected] => http
[host:protected] =>
[port:protected] => 80
[user:protected] =>
[pass:protected] =>
[path:protected] => /bitrix/services/main/ajax.php
[query:protected] => action=documentgenerator.api.document.getimage&id=86&ts=1597556708
[fragment:protected] =>
)
[pdfUrl] => Bitrix\Main\Engine\Response\DataType\ContentUri Object
(
[scheme:protected] => http
[host:protected] =>
[port:protected] => 80
[user:protected] =>
[pass:protected] =>
[path:protected] => /bitrix/services/main/ajax.php
[query:protected] => action=documentgenerator.api.document.getpdf&id=86&ts=1597556708
[fragment:protected] =>
)
[printUrl] => Bitrix\Main\Engine\Response\DataType\ContentUri Object
(
[scheme:protected] => http
[host:protected] =>
[port:protected] => 80
[user:protected] =>
[pass:protected] =>
[path:protected] => /bitrix/services/main/ajax.php
[query:protected] => action=documentgenerator.api.document.showpdf&id=86&print=y&ts=1597556708
[fragment:protected] =>
)
[emailDiskFile] => 20717
[pdfId] => 255
)
|
|
как получить файл PDF - понятно:
Код |
---|
$data = $event->getParameter('data');
$filePdfId = \Bitrix\DocumentGenerator\Model\FileTable::getBFileId($data['pdfId']);
|
ACHTUNG!!! Вопросы:1. А что прилетит в $data['pdfId'], если по каким-то причинам генерация потерпит неудачу?
2. Как получить ID-файла DOCX?