Как из пользовательских списков, которые привязаны к элементу CRM Компания вытащить информацию в создании сделки только для данной компании?

Для того чтобы из пользовательских списков, которые привязаны к элементу 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 Компания, при создании сделки. Удачи в разработке!