Задача: генерировать договор с данными доверенности менеджера (ответственный в сделке), хранится в свойстве пользователя |
я использовала 2 поля из пользователя, которые в моем случае нигде не используются и их подменяю нужными значениями, но они видны в полях для шаблонов
\Bitrix\Main\EventManager::getInstance()->addEventHandler('documentgenerator', 'onBeforeProcessDocument', function(\Bitrix\Main\Event $event){ //{AssignedPersonalGender} заменяем на доверенность ООО //{AssignedPersonalCountry} заменяем на доверенность ИП $document = $event->getParameter('document'); $template = $document->getTemplate(); if($template && $template->MODULE_ID == 'crm'){ $provider = $document->getProvider(); $ownerType = $provider->getCrmOwnerType(); if($ownerType == 2){ $dealId = $provider->getSource(); $arFilter = array( "ID"=>$dealId, //выбираем определенную сделку по ID "CHECK_PERMISSIONS"=>"N" //не проверять права доступа текущего пользователя ); $arSelect = array( "ID", "ASSIGNED_BY_ID" ); $res = CCrmDeal::GetList(Array(), $arFilter, $arSelect); if($row = $res->Fetch()){ $userId = $row["ASSIGNED_BY_ID"]; // ID пользователя $userBy = "id"; $userOrder = "desc"; $userFilter = array( 'ID' => $userId, ); $userParams = array( 'SELECT' => array( "UF_USR_1636023611005", //доверенность 1 ООО "UF_USR_1636023629101", ////доверенность 2 ИП "UF_USR_1636023649756" // доверенность ООО 2 ), 'NAV_PARAMS' => array( 'nTopCount' => 1 ), 'FIELDS' => array( 'ID', ), ); $rsUser = CUser::GetList( $userBy, $userOrder, $userFilter, $userParams ); if ($arUser = $rsUser->Fetch()){ $document->setValues(['AssignedPersonalGender' => $arUser['UF_USR_1636023649756']]); $document->setValues(['AssignedPersonalCountry' => $arUser['UF_USR_1636023629101']]); } } } } }); |