Для того чтобы из пользовательских списков, которые привязаны к элементу CRM Компания, вытащить информацию при создании сделки только для данной компании, вам потребуется использовать определенные методы и функции в Битрикс24.
Во-первых, вам понадобится получить информацию о выбранной компании в момент создания сделки. Для этого можно воспользоваться глобальной переменной $GLOBALS['APPLICATION'], которая предоставляет доступ к объекту текущего приложения. Вы можете использовать метод GetCurPageParam(), чтобы получить текущий URL страницы с переданными параметрами, и метод GetPostList(), чтобы получить список переменных, переданных через POST-запрос. Таким образом, вы сможете получить значение поля компании из формы создания сделки.
Пример кода для получения значения поля компании:
$companyID = 0; // Получаем страницу с переданными параметрами $currentPage = $GLOBALS['APPLICATION']->GetCurPageParam(); // Получаем список переменных POST-запроса $postList = $GLOBALS['APPLICATION']->GetPostList()->toArray(); // Проверяем, есть ли переданная переменная компании if (isset($postList['COMPANY_ID'])) { $companyID = intval($postList['COMPANY_ID']); }
Здесь мы проверяем, существует ли переменная COMPANY_ID в списке POST-запроса, и если да, то преобразуем ее в целое число и сохраняем в переменную $companyID.
Далее, после получения значения компании, вы можете использовать методы CRM API для получения информации о ее пользовательских списках. Для этого нужно воспользоваться классом CCrmFieldMulti, который предоставляет методы для работы с множественными полями CRM.
Пример кода для получения информации о пользовательских списках компании:
if ($companyID > 0) { $entityID = 'COMPANY_' . $companyID; $multiFields = CCrmFieldMulti::GetList( array('ID' => 'asc'), array('ENTITY_ID' => $entityID) ); while($field = $multiFields->Fetch()){ $type = $field['TYPE_ID']; $value = $field['VALUE']; // Ваш код для обработки информации о пользовательских списках компании // например, передать ее в форму создания сделки } }
В данном примере мы создаем переменную $entityID, которая имеет формат "COMPANY_<ID компании>". Затем мы используем метод CCrmFieldMulti::GetList() для получения списка множественных полей для данной компании. При обходе полученных полей, вы можете получить их тип (TYPE_ID) и значение (VALUE), и использовать их для дальнейшей обработки.
Например, вы можете передать полученные значения пользовательских списков в форму создания сделки, добавив их как дополнительные поля.
Надеюсь, что эти подробные пошаговые инструкции помогут вам использовать пользовательские списки, привязанные к элементу CRM Компания, при создании сделки. Удачи в разработке!