Документация для разработчиков
Темная тема

Генератор документов в 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']);
}


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
7
v.trakhtenberg@tca.by
Сообщение не промодерировано, возможны ошибки и неточности.
Поскольку это документация, для изучения и все такое - неплохо бы в коде комментарии.. Ну и сам template.docx приложить, для сопоставления полей и тестирования.
А так спасибо :)
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх