Задача: при переводе в сделку в определенный этап сгенерировать 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(); |