Кастомизация поля в компании


Задача:
выводить информацию, полученную из БД на другом сервере, в карточке компании
поставила модуль https://marketplace.1c-bitrix.ru/solutions/d2mg.ufhtml/
который поддерживает html поле

создаем пользовательское свойство через админку UF_COMPANY_MAIN_INFO с данным типом
\Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'onGetUserFieldValues', function(\Bitrix\Main\Event $event){
   $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS);
   $entityId = $event->getParameter('entityId'); 
   if($entityId === 'CRM_COMPANY'){      
      $userFields = $event->getParameter('userFields');
      $companyId = $event->getParameter('value');
      if(isset($userFields["UF_COMPANY_MAIN_INFO"]) && CModule::IncludeModule('crm')){          
         $arSelect = ["ID"];
         foreach ($userFields as $key => $value) {
            $arSelect[] = $key;
         }
         $arFilter = array("ID"=>intval($companyId),"CHECK_PERMISSIONS"=>"N");      
         $rsCompany = CCrmCompany::GetList(Array(),$arFilter,$arSelect);
         if($arComp = $rsCompany->Fetch()){            
            unset($arComp["ID"]);
            $values = [];
            foreach ($arComp as $key => $value) {
               $values[$key] = $value;
            }             
         }
         $info = MyClass::FillCompanyMainInfo($companyId,$values["UF_PA"]); //тут логика получения информации
         $values["UF_COMPANY_MAIN_INFO"] = $info;         
         $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, [
            'values' => $values,
         ]);
      }      
   }
   return $result;
});
создаем 2 файла
  • /local/templates/.default/components/bitrix/system.field.edit/customhtml/template.php
  • /local/templates/.default/components/bitrix/system.field.view/customhtml/template.php
с одинаковым содержимым
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?=html_entity_decode($arResult["VALUE"][0])??""?>