Документация для разработчиков

batch

Выполнение пакета запросов.

В некоторых случаях возникает необходимость отправить несколько запросов подряд. Для оптимизации процесса можно использовать пакетное выполнение запросов.

Параметры:

Параметр Описание
halt Определяет прерывать ли последовательность запросов в случае ошибки.
cmd Массив запросов стандартного вида (следует помнить про квотирование данных запросов; получается, что данные для подзапросов должны пройти двойное квотирование).

Примечание: Количество запросов в пакете ограничено 50.

Массив запросов может быть как с числовыми ключами, так и ассоциативным. В параметрах каждого последующего запроса можно использовать данные предыдущих запросов в таком виде:

$result[идентификатор_запроса][поле_ответа]

где идентификатором запроса служит его ключ в массиве запросов.

Пример

https://my.bitrix24.ru/rest/batch.xml?auth=d161f25928c3184678924ec127edd29a&halt=0&cmd[get_user]=user.current%3F&cmd[get_department]=department.get%3FID%3D%2524result%255Bget_user%255D%255BUF_DEPARTMENT%255D

Ответ XML

<response>
	<result>
		<result>
			<get_user>
				<ID>1</ID>
				<LOGIN>admin</LOGIN>
				<ACTIVE>1</ACTIVE>
				<EMAIL>sigurd@example.com</EMAIL>
				<NAME>Одмин</NAME>
				<LAST_NAME/>
				<SECOND_NAME/>
				<PERSONAL_GENDER/>
				<PERSONAL_PROFESSION/>
				<PERSONAL_WWW/>
				<PERSONAL_BIRTHDAY>1955-04-10T00:00:00+03:00</PERSONAL_BIRTHDAY>
				<PERSONAL_PHOTO>/upload/main/80c/44169_C5_PrimalWaterE500CC.jpg</PERSONAL_PHOTO>
				<PERSONAL_ICQ/>
				<PERSONAL_PHONE/>
				<PERSONAL_FAX/>
				<PERSONAL_MOBILE/>
				<PERSONAL_PAGER/>
				<PERSONAL_STREET/>
				<PERSONAL_CITY/>
				<PERSONAL_STATE/>
				<PERSONAL_ZIP/>
				<PERSONAL_COUNTRY>0</PERSONAL_COUNTRY>
				<WORK_COMPANY/>
				<WORK_POSITION/>
				<UF_DEPARTMENT>
				<item>128</item>
				</UF_DEPARTMENT>
				<UF_INTERESTS/>
				<UF_SKILLS/>
				<UF_WEB_SITES/>
				<UF_XING/>
				<UF_LINKEDIN/>
				<UF_FACEBOOK/>
				<UF_TWITTER/>
				<UF_SKYPE/>
				<UF_DISTRICT/>
				<UF_PHONE_INNER/>
			</get_user>
			<get_department>
				<item>
					<ID>128</ID>
					<NAME>ИТ-отдел</NAME>
					<SORT>500</SORT>
					<PARENT>114</PARENT>
					<UF_HEAD>255</UF_HEAD>
				</item>
			</get_department>
		</result>
		<result_error/>
		<result_total>
			<get_department>1</get_department>
		</result_total>
		<result_next/>
	</result>
</response>

Смотри так же



Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
1
Алексей Кадников
Получаем за один запрос контакт по номеру телефона и связанную с ним компанию
Код
$data = call($_SESSION["query_data"]["domain"], "batch", array(
    "auth" => $_SESSION["query_data"]["access_token"],
    "halt" => 0,
    "cmd" => array(
        "find_contact" => 'crm.duplicate.findbycomm?'
            .http_build_query(array(
                "entity_type" => "CONTACT",
                "type" => "PHONE",
                "values" => array("+79625011243")
            )),
        "get_contact" => 'crm.contact.get?'
            .http_build_query(array(
                "id" => '$result[find_contact][CONTACT][0]',
            )),
        "get_company" => 'crm.company.get?'
            .http_build_query(array(
                "id" => '$result[get_contact][COMPANY_ID]',
                "select" => array("*"),//, "COMMUNICATIONS"),
            ))
    ),
))
******************
Пример кода несколько исправлен разработчиком по соображениям производительности.
© «Битрикс», 2001-2017, «1C-Битрикс», 2017