| Задача: при переводе в сделку в определенный этап сгенерировать pfd по шаблону id2 и поместить в свойство типа "файл" в сделке, чтобы в мобильном приложении его видеть |
$dealId = {{ID}};
if(CModule::includeModule('crm')&&CModule::includeModule('documentgenerator')&&CModule::includeModule('disk')){
$templateId = 2; //id шаблона документа для курьера
$template = \Bitrix\DocumentGenerator\Template::loadById($templateId);
$template->setSourceType(\Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Deal::class);
$document = \Bitrix\DocumentGenerator\Document::createByTemplate($template, $dealId);
$result = $document->getFile();
if($result->isSuccess()){
$fileId = $result->getData()["emailDiskFile"];
$file = Bitrix\Disk\File::getById($fileId);
$deal = new \CCrmDeal( false );
$arOptions = array("CURRENT_USER"=> 1); //из под кого обновляем
$arFieldsNew = ["UF_CRM_1669994255940"=>CFile::MakeFileArray($file->getFileId())];
$upRes = $deal->Update($dealId, $arFieldsNew, true, true, $arOptions);
}
}
|
Примечания
Вместо Lead может быть Deal, Company и т.п.
для смарт-процесса вместо Lead поставить Dynamic130 (где 130 - ENTITY_TYPE_ID смарт-процесса)
даже если по запросу списка провайдеров выводит \Dynamic130_2 или подобное, пишется сокращенный вариант
$template->setSourceType(\Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Lead::class); |
$fields = array(
'MyCompanyTitle' => array('VALUE' => 'ООО Наша компания'),
'MyCompanyRequisiteRqDirector' => array('VALUE' => 'Вася Мужичков'),
);
$document->setFields($fields);
//сохраняем файл
$result = $document->getFile(); |