Генератор документов в crm: создание "путевого листа" по данным сделки
Пример добавления своего шаблона документа и создания на его основе готового документа с данными, например, сделки. В примере template.docx - шаблон документа.
Внимание! Для использования примера настройте работу класса CRest и подключите файл crest.php в файлах, где используется данный класс. Подробнее.
$filePath = __DIR__ . '/template.docx'; // path to template local file $iDealID = 1;//deal ID $sDocName = 'Demo Packing Sheet UK'; $resNum = CRest::call( 'crm.documentgenerator.numerator.add', [ 'fields' => [ 'name' => 'Rest Numerator', 'template' => '{NUMBER}', ] ] ); if (!empty($resNum['result']['numerator']['id'])) { $resTemplate = CRest::call( 'crm.documentgenerator.template.add', [ 'fields' => [ 'name' => $sDocName, 'numeratorId' => $resNum['result']['numerator']['id'],// crm.documentgenerator.numerator.add 'region' => 'uk',//eu,de,ua,by,ru 'users' => [ 'UA'//User All ], 'entityTypeId' => ['2'],//2 is deal in CRest::call('crm.enum.ownertype'); 'file' => base64_encode(file_get_contents($filePath)) ] ] ); if (!empty($resTemplate['result']['template']['id'])) { $resDoc = CRest::call( 'crm.documentgenerator.document.add', [ 'templateId' => $resTemplate['result']['template']['id'], 'entityTypeId' => '2',//2 is deal in CRest::call('crm.enum.ownertype'); 'entityId' => $iDealID, ] ); } } if (!empty($resDoc['result'])) { echo json_encode(['message' => 'Docx creat']); } elseif (!empty($resDoc['error_description'])) { echo json_encode(['message' => 'Docx not created: ' . $resDoc['error_description']]); } else { echo json_encode(['message' => 'Docx not created']); }
© «Битрикс», 2001-2024, «1С-Битрикс», 2024