Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Кастомизация полей при генерации генерации документов



Задача:
генерировать договор с данными доверенности менеджера (ответственный в сделке), хранится в свойстве пользователя
свойства в полях для шаблонов не видны,
я использовала 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']]);               
            }
         }
      }      
   }
});
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!