{"id":15579268,"url":"https://github.com/andrey-tech/bitrix24-api-php","last_synced_at":"2025-04-05T18:09:36.900Z","repository":{"id":39904641,"uuid":"271179126","full_name":"andrey-tech/bitrix24-api-php","owner":"andrey-tech","description":"Обертка на PHP7+ для работы с REST API Битрикс24 с использованием механизма входящих вебхуков,  троттлингом запросов к API и логированием в файл.","archived":false,"fork":false,"pushed_at":"2024-08-05T06:46:18.000Z","size":405,"stargazers_count":99,"open_issues_count":0,"forks_count":31,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-29T17:08:01.891Z","etag":null,"topics":["api","api-wrapper","bitrix","bitrix24","logging","php","php7","throttling","webhook"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrey-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-10T04:32:24.000Z","updated_at":"2024-12-27T08:42:35.000Z","dependencies_parsed_at":"2024-12-02T01:18:52.617Z","dependency_job_id":null,"html_url":"https://github.com/andrey-tech/bitrix24-api-php","commit_stats":{"total_commits":25,"total_committers":4,"mean_commits":6.25,"dds":0.48,"last_synced_commit":"d43f5839509751b72e02e14f4aed5731f8bae0e4"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrey-tech%2Fbitrix24-api-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrey-tech%2Fbitrix24-api-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrey-tech%2Fbitrix24-api-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrey-tech%2Fbitrix24-api-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrey-tech","download_url":"https://codeload.github.com/andrey-tech/bitrix24-api-php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378149,"owners_count":20929297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-wrapper","bitrix","bitrix24","logging","php","php7","throttling","webhook"],"created_at":"2024-10-02T19:14:18.035Z","updated_at":"2025-04-05T18:09:36.866Z","avatar_url":"https://github.com/andrey-tech.png","language":"PHP","readme":"# Bitrix24 API PHP Wrapper\n\n![Bitrix24 logo](assets/bitrix24-logo.png)  \n\n[![Latest Stable Version](https://poser.pugx.org/andrey-tech/bitrix24-api-php/v)](https://packagist.org/packages/andrey-tech/bitrix24-api-php)\n[![Total Downloads](https://poser.pugx.org/andrey-tech/bitrix24-api-php/downloads)](https://packagist.org/packages/andrey-tech/bitrix24-api-php)\n[![GitHub stars](https://img.shields.io/github/stars/andrey-tech/bitrix24-api-php)](https://github.com/andrey-tech/bitrix24-api-php/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/andrey-tech/bitrix24-api-php)](https://github.com/andrey-tech/bitrix24-api-php/network)\n[![GitHub watchers](https://img.shields.io/github/watchers/andrey-tech/bitrix24-api-php)](https://github.com/andrey-tech/bitrix24-api-php/watchers)\n[![License](https://poser.pugx.org/andrey-tech/bitrix24-api-php/license)](https://packagist.org/packages/andrey-tech/bitrix24-api-php)\n\nОбертка на PHP7+ для работы с [REST API Битрикс24](https://dev.1c-bitrix.ru/rest_help/) с использованием механизма [входящих вебхуков](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=99\u0026LESSON_ID=8581), \nтроттлингом запросов и логированием в файл.\n\nРазработчики на JavaScript могут воспользоваться классом-оберткой [andrey-tech/bx24-wrapper-js](https://github.com/andrey-tech/bx24-wrapper-js).\n\n# Содержание\n\n\u003c!-- MarkdownTOC levels=\"1,2,3,4,5,6\" autoanchor=\"true\" autolink=\"true\" --\u003e\n\n- [Требования](#%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)\n- [Установка](#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)\n- [Класс `Bitrix24API`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-bitrix24api)\n    - [Базовые методы класса](#%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0)\n    - [Дополнительные параметры](#%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B)\n- [Методы для работы с сущностями Битрикс24](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D0%BC%D0%B8-%D0%91%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%8124)\n    - [Методы работы со сделками](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8)\n    - [Методы для работы с контактами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B0%D0%BC%D0%B8)\n    - [Методы для работы с компаниями](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8)\n    - [Методы для работы с каталогами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%D0%BC%D0%B8)\n    - [Методы для работы с товарами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0%D0%BC%D0%B8)\n    - [Методы работы с разделами товаров](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2)\n    - [Методы работы с товарными позициями](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%D0%BC%D0%B8)\n    - [Методы для работы с пользователями](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8)\n    - [Методы работы с задачами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0%D0%BC%D0%B8)\n    - [Методы для работы с делами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8)\n    - [Методы для работы с диском](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%BC)\n    - [Методы для работы с лидами](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BB%D0%B8%D0%B4%D0%B0%D0%BC%D0%B8)\n- [Вспомогательные классы](#%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B)\n    - [Класс `HTTP`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-http)\n        - [Дополнительные параметры](#%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-1)\n        - [Примеры](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B)\n    - [Класс `DebugLogger`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-debuglogger)\n        - [Методы класса](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0)\n        - [Дополнительные параметры](#%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-2)\n        - [Примеры](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-1)\n            - [Формат заголовков лога](#%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2-%D0%BB%D0%BE%D0%B3%D0%B0)\n- [Автор](#%D0%90%D0%B2%D1%82%D0%BE%D1%80)\n- [Лицензия](#%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)\n\n\u003c!-- /MarkdownTOC --\u003e\n\n\u003ca id=\"%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F\"\u003e\u003c/a\u003e\n## Требования\n\n- PHP \u003e= 7.0;\n- класс [`HTTP`](https://github.com/andrey-tech/http-client-php) \u003e= 3.0 - НТТР(S) клиент с троттлингом запросов, поддержкой маркера BOM в теле сообщения формата JSON и выводом отладочной информации о запросах и ответах в STDOUT;\n- класс [`DebugLogger`](https://github.com/andrey-tech/debug-logger-php) \u003e= 2.0 - логгер, сохраняющий отладочную информацию в файл вместе с данными об объеме используемой оперативной памяти и прошедшем времени;\n- произвольный автозагрузчик классов, реализующий стандарт [PSR-4](https://www.php-fig.org/psr/psr-4/), необходимый в том случае, если не используется Composer.\n\n\n\u003ca id=\"%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0\"\u003e\u003c/a\u003e\n## Установка\n\nУстановка через composer:\n```\n$ composer require andrey-tech/bitrix24-api-php:\"^1.6\"\n```\n\nили добавить\n\n```\n\"andrey-tech/bitrix24-api-php\": \"^1.6\"\n```\n\nв секцию require файла composer.json.\n\n\u003ca id=\"%D0%9A%D0%BB%D0%B0%D1%81%D1%81-bitrix24api\"\u003e\u003c/a\u003e\n## Класс `Bitrix24API`\n\nДля работы с REST API Битрикс24 используется класс `\\App\\Bitrix24\\Bitrix24API`.  \nПри возникновении ошибок выбрасывается исключение класса `\\App\\Bitrix24\\Bitrix24APIException`.  \nВ настоящее время в классе реализованы методы для работы со следующими сущностями Битрикс24:\n\n- [Сделки](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8)\n- [Контакты](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B0%D0%BC%D0%B8)\n- [Компании](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8)\n- [Каталоги товаров](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%D0%BC%D0%B8)\n- [Товары](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0%D0%BC%D0%B8)\n- [Разделы товаров](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2)\n- [Товарные позиции](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%D0%BC%D0%B8)\n- [Задачи](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0%D0%BC%D0%B8)\n- [Дела](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8)\n- [Пользователи](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8)\n- [Диск](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%BC)\n- [Лиды](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BB%D0%B8%D0%B4%D0%B0%D0%BC%D0%B8)\n\n\u003ca id=\"%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0\"\u003e\u003c/a\u003e\n### Базовые методы класса\n\nБазовые методы находятся в классе `\\App\\Bitrix24\\Bitrix24API`:\n\n- `__construct(string $webhookURL)` Конструктор класса.\n- `request(string $function, array $params = []) :?array` Отправляет запрос в API.\n- `getList(string $function, array $params = []) :\\Generator` Загружает все сущности заданного типа.\n- `fetchList(string $function, array $params = []) :\\Generator` Загружает все сущности [быстрым методом](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php).\n- `batchRequest(array $commands, $halt = true) :array` Отправляет пакет запросов в API. \n- `buildCommands(string $function, array $items) :array` Создает массив команд для пакетного запроса.\n- `buildCommand(string $function, array $params) :string` Возвращает команду для пакетного запроса.\n- `getLastResponse() :?array`  Возвращает последний ответ от API.\n- `setLogger($logger)` Устанавливает объект класса, выполняющего логирование отладочной информации в файл.\n\nПараметры методов:\n\n+ `$webhookURL` - URL входящего вебхука;\n+ `$function` - имя метода (функции) запроса;\n+ `$params` - параметры запроса;\n+ `$commands` - пакет команд;\n+ `$items` - массив полей запросов;\n+ `$halt` - прерывать последовательность запросов в случае ошибки;\n+ `$logger` - объект класса, реализующего интерфейс `\\App\\DebugLogger\\DebugLoggerInterface`.\n\n\u003ca id=\"%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B\"\u003e\u003c/a\u003e\n### Дополнительные параметры\n\nДополнительные параметры настройки доступны через публичные статические и нестатические свойства класса `\\App\\Bitrix24\\Bitrix24API`:\n\nНестатическое свойство  | По умолчанию       | Описание\n----------------------- | ------------------ | --------\n`$batchSize`            | 50                 | Устанавливает количество команд в одном пакете запросов (batch)\n`$logger`               | null               | Хранит объект класса `\\App\\DebugLogger\\DebugLogger`, выполняющего логирование запросов и ответов к API в файл. Если null, то логирование не выполняется.\n`$http`                 | `\\App\\HTTP\\HTTP`   | Хранит объект класса `\\App\\HTTP\\HTTP`, отправляющего запросы к API\n\nСтатическое свойство    | По умолчанию         | Описание\n----------------------- | -------------------- | --------\n`$WITH_CONTACTS`        | 'CONTACTS'           | Имя поля для массива возвращаемых связанных сущностей типа контакт\n`$WITH_COMPANIES`       | 'COMPANIES'          | Имя поля для массива возвращаемых связанных сущностей типа компания\n`$WITH_PRODUCTS`        | 'PRODUCTS'           | Имя поля для массива возвращаемых связанных сущностей типа товар\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D1%8F%D0%BC%D0%B8-%D0%91%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%8124\"\u003e\u003c/a\u003e\n## Методы для работы с сущностями Битрикс24\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81%D0%BE-%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы работы со сделками\n\nМетоды для работы со сделками находятся в трейте `\\App\\Bitrix24\\Deal`:\n\n- `getDeal($dealId, array $with = []) :array` Возвращает сделку по ее ID.\n- `addDeal(array $fields = [], array $params = []) :int` Добавляет сделку и возвращает ее ID.  \n- `updateDeal($dealId, array $fields = [], array $params = []) :int` Обновляет сделку и возвращает ее ID.\n- `deleteDeal($dealId) :int`  Удаляет сделку и возвращает ее ID.\n- `getDealList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n    Загружает все сделки с возможностью фильтрации, сортировки и выборки полей.\n- `fetchDealList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n     Загружает все сделки с возможностью фильтрации, сортировки и выборки полей.  \n     Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.    \n- `addDeals(array $deals = [], array $params = []) :array`  \n   Пакетно добавляет сделки со связанными товарными позициями, возвращает массив ID сделок.\n- `updateDeals(array $deals = [], array $params = []) :array`  \n    Пакетно обновляет сделки со связанными товарными позициями, возвращает массив ID сделок.\n- `deleteDeals(array $dealIds = []) :array` Пакетно удаляет сделки, возвращает массив ID сделок.\n- `setDealFile($dealId, $userFieldId, string $fileName, string $fileContent, bool $isBase64FileData = true) :int`  \n    Устанавливает файл в НЕ множественное пользовательское поле типа файл (файл нельзя удалить) и возвращает ID сделки.\n- `setDealFiles($dealId, $userFieldId, array $files = [], bool $isBase64FileData = true) :int`  \n    Устанавливает файлы во множественное пользовательское поле типа файл (файлы можно удалить) и возвращает ID сделки.\n- `getDealContactItems($dealId) :array` Возвращает массив параметров контактов, связанных со сделкой.\n- `setDealContactItems($dealId, array $contacts) :array` Устанавливает контакты, связанные со сделкой.\n- `setDealProductRows($dealId, array $products) :array` Устанавливает товарные позиции, связанные со сделкой.\n- `getDealProductRows($dealId) :array` Возвращает массив параметров товарных позиций, связанных со сделкой.\n- `getDealFields() :array` Возвращает описание полей сделки, в том числе пользовательских.\n\nПараметры методов:\n\n+ `$dealId` - ID сделки;\n+ `$dealIds` - массив ID сделок;\n+ `$with` - имена связанных сущностей, возвращаемых вместе со сделкой:\n    * `\\App\\Bitrix24\\Bitrix24API::$WITH_CONTACTS` - контакты (возвращаются в виде массива в поле с именем, заданным публичным статическим свойством `Bitrix24API::$WITH_CONTACTS`);\n    * `\\App\\Bitrix24\\Bitrix24API::$WITH_PRODUCTS` - товарные позиции (возвращаются в виде массива в поле с именем, заданным публичным статическим свойством `Bitrix24API::$PRODUCTS`);\n- `$fields` - набор полей сделки;\n- `$params` - набор параметров сделки;\n- `$filter` - параметры фильтрации;\n- `$order` - параметры сортировки;\n- `$select` - параметры выборки полей;\n- `$userFieldId` ID НЕ множественного пользовательского поля в сделке ('UF_CRM_XXXXXXXXXX');\n- `$files` - массив параметров файлов ([ [  \u003c Имя файла \u003e, \u003c RAW данные файла \u003e ], ... ]) (пустой массив для удаления всех файлов);\n- `$isBase64FileData` - RAW данные файла закодированы в BASE64?;\n- `$contacts` - массив параметров контактов;\n- `$products` - массив параметров товарных позиций.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Добавляем новую сделку\n    $dealId = $bx24-\u003eaddDeal([\n        'TITLE'      =\u003e 'Новая сделка №1',\n        'COMPANY_ID' =\u003e 6,\n        'CONTACT_ID' =\u003e 312\n    ]);\n    print_r($dealId);\n\n    // Устанавливаем набор связанных контактов\n    $bx24-\u003esetDealContactItems($dealId, [\n        [ 'CONTACT_ID' =\u003e 313 ],\n        [ 'CONTACT_ID' =\u003e 454 ]\n    ]);\n\n    // Устанавливаем набор связанных товарных позиций\n    $bx24-\u003esetDealProductRows($dealId, [\n        [ 'PRODUCT_ID' =\u003e 1689, 'PRICE' =\u003e 1500.00, 'QUANTITY' =\u003e 2 ],\n        [ 'PRODUCT_ID' =\u003e 1860, 'PRICE' =\u003e 500.00, 'QUANTITY' =\u003e 15 ]\n    ]);\n\n    // Обновляем существующую сделку\n    $bx24-\u003eupdateDeal($dealId, [\n        'TITLE' =\u003e 'Новая сделка №12'\n    ]);\n\n\n    // При необходимости, изменяем значение по умолчанию 'PRODUCTS' на '_PRODUCTS' для имени поля\n    // со списком товарных позиций, возвращаемых вместе со сделкой\n    Bitrix24API::$WITH_PRODUCTS = '_PRODUCTS';\n\n    // Загружаем сделку по ID вместе со связанными товарами и контактами одним запросом\n    $deal = $bx24-\u003egetDeal($dealId, [ Bitrix24API::$WITH_PRODUCTS, Bitrix24API::$WITH_CONTACTS ]);\n    print_r($deal);\n\n    // Удаляем существующую сделку\n    $bx24-\u003edeleteDeal($dealId);\n\n    // Загружаем все сделки используя быстрый метод при работе с большими объемами данных\n    $generator = $bx24-\u003efetchDealList();\n    foreach ($generator as $deals) {\n        foreach($deals as $deal) {\n            print_r($deal);\n        }\n    }\n\n    // Пакетно добавляем сделки вместе с товарными позициями\n    $dealIds = $bx24-\u003eaddDeals([\n        [\n            'TITLE' =\u003e 'Новая сделка №1121',\n            'COMPANY_ID' =\u003e 6,\n            'CONTACT_ID' =\u003e 312,\n            'PRODUCTS' =\u003e [\n                [ \"PRODUCT_ID\" =\u003e 27, \"PRICE\" =\u003e 100.00, \"QUANTITY\" =\u003e 11 ],\n            ]\n\n        ],\n        [\n            'TITLE' =\u003e 'Новая сделка №1122',\n            'COMPANY_ID' =\u003e 6,\n            'PRODUCTS' =\u003e [\n                [ \"PRODUCT_ID\" =\u003e 28, \"PRICE\" =\u003e 200.00, \"QUANTITY\" =\u003e 22 ],\n                [ \"PRODUCT_ID\" =\u003e 27, \"PRICE\" =\u003e 200.00, \"QUANTITY\" =\u003e 11 ],\n            ]\n        ]\n    ]);\n    print_r($dealIds);\n\n    // Пакетно удаляем сделки\n    $bx24-\u003edeleteDeals($dealIds);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с контактами\n\nМетоды для работы с контактами находятся в трейте `\\App\\Bitrix24\\Contact`:\n\n- `getContact($contactId, array $with = []) :array` Возвращает контакт по его ID.\n- `addContact(array $fields = [], array $params = []) :int` Добавляет контакт и возвращает его ID.\n- `updateContact($contactId, array $fields = [], array $params = []) :int` Обновляет контакт и возвращает его ID.\n- `deleteContact($contactId) :int` Удаляет контакт и возвращает его ID.\n- `getContactList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n    Загружает все контакты с возможностью фильтрации, сортировки и выборки полей.\n- `fetchContactList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n    Загружает все контакты с возможностью фильтрации, сортировки и выборки полей.  \n    Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.    \n- `getContactsByPhone(int|string $phone, $select = []) :array` Возвращает контакты по номеру телефона.\n- `addContacts(array $contacts = [], array $params = []) :array` Пакетно добавляет контакты.\n- `updateContacts(array $contacts = [], array $params = []) :array` Пакетно обновляет контакты.\n- `deleteContacts(array $contactIds = []) :array` Пакетно удаляет контакты.\n- `getContactCompanyItems($contactId) :array` Возвращает компании, связанные с контактом по ID.\n- `setContactCompanyItems($contactId, array $companies) :array` Устанавливает компании, связанные с контактом по ID.\n- `getContactFields() :array` Возвращает описание полей контакта.\n\nПараметры методов:\n\n+ `$contaxctId` - ID контакта;\n+ `$contactIds` - массив ID сделок;\n+ `$phone` - номер телефона;\n+ `$with` - имена связанных сущностей, возвращаемых вместе с контактом:\n    * `\\App\\Bitrix24\\Bitrix24API::$WITH_COMPANIES` - компании (возвращаются в виде массива в поле с именем, заданным публичным статическим свойством `Bitrix24API::$WITH_COMPANIES`);\n- `$fields` - набор полей сделки;\n- `$params` - набор параметров сделки;\n- `$filter` - параметры фильтрации;\n- `$order` - параметры сортировки;\n- `$select` - параметры выборки полей;\n- `$contacts` - массив параметров контактов;\n- `$companies` - массив параметров компаний.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Добавляем новый контакт\n    $contactId = $bx24-\u003eaddContact([\n        'NAME'        =\u003e 'Иван',\n        'COMPANY_ID'  =\u003e 332,\n        'SECOND_NAME' =\u003e 'Васильевич',\n        'LAST_NAME'   =\u003e 'Петров'\n    ]);\n    print_r($contactId);\n\n    // Устанавливаем набор связанных компаний\n    $bx24-\u003esetContactCompanyItems($contactId, [\n        [ 'COMPANY_ID' =\u003e 8483 ],\n        [ 'CONPANY_ID' =\u003e 4094 ]\n    ]);\n\n    // Обновляем существующий контакт\n    $bx24-\u003eupdateContact($contactId, [\n        'NAME' =\u003e 'Фёдор'\n    ]);\n\n    // Загружаем контакт по ID вместе со связанными компаниями\n    $contact = $bx24-\u003egetContact($contactId, [ Bitrix24API::$WITH_COMPANIES ]);\n    print_r($contact);\n\n    // Удаляем существующий контакт\n    $bx24-\u003edeleteContact($contactId);\n\n    // Загружаем все контакты используя быстрый метод при работе с большими объемами данных\n    $generator = $bx24-\u003efetchContactList();\n    foreach ($generator as $contacts) {\n        foreach($contacts as $contact) {\n            print_r($contact);\n        }\n    }\n\n    // Пакетно добавляем контакты\n    $contactIds = $bx24-\u003eaddContacts([\n        [\n            'NAME'        =\u003e 'Владимир',\n            'COMPANY_ID'  =\u003e 3322,\n            'SECOND_NAME' =\u003e 'Вадимович',\n            'LAST_NAME'   =\u003e 'Владимиров'\n        ],\n        [\n            'NAME'        =\u003e 'Андрей',\n            'COMPANY_ID'  =\u003e 1332,\n            'SECOND_NAME' =\u003e 'Васильевич',\n            'LAST_NAME'   =\u003e 'Иванов'\n        ]\n    ]);\n    print_r($contactIds);\n\n    // Пакетно удаляем контакты\n    $bx24-\u003edeleteContacts($contactIds);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с компаниями\n\nМетоды для работы с компаниями находятся в трейте `\\App\\Bitrix24\\Company`:\n\n- `getCompany($companyId, array $with = [])` Возвращает компанию по ID.\n- `addCompany(array $fields = [], array $params = []) :int` Добавляет компанию и возвращает ее ID.\n- `updateCompany($companyId, array $fields = [], array $params = []) :int` Обновляет компанию и возвращает ее ID.\n- `deleteCompany($companyId) :int` Удаляет компанию и возвращает ее ID.\n- `getCompanyList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n    Загружает все компании с возможностью фильтрации, сортировки и выборки полей.\n- `fetchCompanyList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n    Загружает все компании с возможностью фильтрации, сортировки и выборки полей.  \n    Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.    \n- `addCompanies(array $companies = [], array $params = []) :array` Пакетно добавляет компании.\n- `updateCompanies(array $companies = [], array $params = []) :array` Пакетно обновляет компании.\n- `deleteCompanies(array $companyIds = []) :array` Пакетно удаляет компании.\n- `getCompanyContactItems($companyId) :array` Возвращает контакты, связанные с компанией.\n- `setCompanyContactItems($companyId, array $contacts) :array` Устанавливает контакты, связанные с компанией.\n\nПараметры методов:\n\n- `$companyId` - ID компании;\n- `$companyIds` - массив ID компаний;\n+ `$with` - имена связанных сущностей, возвращаемых вместе с компанией:\n    * `\\App\\Bitrix24\\Bitrix24API::$WITH_CONTACTS` - контакты (возвращаются в виде массива в поле с именем, заданным публичным статическим свойством `Bitrix24API::$WITH_CONTACTS`);\n+ `$filter` - параметры фильтрации;\n+ `$order` - параметры сортировки;\n+ `$select` - параметры выборки полей;\n- `$contacts` - массив параметров контактов;\n- `$companies` - массив параметров компаний.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Добавляем новую компанию\n    $companyId = $bx24-\u003eaddCompany([\n        'TITLE' =\u003e 'OOO Рога и Копыта'\n    ]);\n    print_r($companyId);\n\n    // Устанавливаем набор связанных контактов\n    $bx24-\u003esetCompanyContactItems($companyId, [\n        [ 'CONTACT_ID' =\u003e 4838 ],\n        [ 'CONTACT_ID' =\u003e 8583 ]\n    ]);\n\n    // Обновляем существующую компанию\n    $bx24-\u003eupdateCompany($companyId, [\n        'TITLE' =\u003e 'ИП Рога и Копыта'\n    ]);\n\n    // Загружаем компанию по ID вместе со связанными контактами\n    $company = $bx24-\u003egetCompany($companyId, [ Bitrix24API::$WITH_CONTACTS ]);\n    print_r($company);\n\n    // Удаляем существующую компанию\n    $bx24-\u003edeleteCompany($companyId);\n\n    // Загружаем все компании используя быстрый метод при работе с большими объемами данных\n    $generator = $bx24-\u003efetchCompanyList();\n    foreach ($generator as $companies) {\n        foreach($companies as $company) {\n            print_r($company);\n        }\n    }\n\n    // Пакетно добавляем компании\n    $companyIds = $bx24-\u003eaddCompanies([\n        [ 'TITLE' =\u003e 'ПАО Абракадабра' ],\n        [ 'TITLE' =\u003e 'ЗАО Моя компания' ]\n    ]);\n    print_r($companyIds);\n\n    // Пакетно удаляем компании\n    $bx24-\u003edeleteCompanies($companyIds);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с каталогами\n\nМетоды для работы с товарными каталогами находятся в трейте `\\App\\Bitrix24\\Catalog`:\n\n- `getCatalogList(array $filter = [], array $select = [], array $order = []) :\\Generator`   \n    Загружает все каталоги с возможностью фильтрации, сортировки и выборки полей.\n- `fetchCatalogList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n    Загружает все каталоги с возможностью фильтрации, сортировки и выборки полей.  \n    Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.    \n- `getCatalogFields() :array` Возвращает описание полей каталога товаров.\n\nПараметры методов:\n\n+ `$filter` - параметры фильтрации;\n+ `$order` - параметры сортировки;\n+ `$select` - параметры выборки полей.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Загружаем все товарные каталоги используя быстрый метод при работе с большими объемами данных\n    $generator = $bx24-\u003efetchCatalogList();\n    foreach ($generator as $catalogs) {\n        foreach($catalogs as $catalog) {\n            print_r($catalog);\n        }\n    }\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с товарами\n\nМетоды для работы с товарами находятся в трейте `\\App\\Bitrix24\\Product`:\n\n- `getProduct($productId) :array` Возвращает товар по ID.\n- `addProduct(array $fields = []) :int` Добавляет товар и возвращает его ID.\n- `updateProduct($productId, array $fields = []) :int` Обовляет товар и возвращает его ID.\n- `deleteProduct($productId) :int` Удаляет товар и возвращает его ID.\n-  `getProductList(array $filter = [], array $select = [ '*', 'PROPERTY_*' ], array $order = []) :\\Generator`  \n    Загружает все товары с возможностью фильтрации, сортировки и выборки полей.\n-  `fetchProductList(array $filter = [], array $select = [ '*', 'PROPERTY_*' ], array $order = []) :\\Generator`  \n    Загружает все товары с возможностью фильтрации, сортировки и выборки полей.  \n    Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.\n- `addProducts(array $products = []) :array` Пакетно добавляет товары.\n- `updateProducts(array $products = []) :array` Пакетно обновляет товары.\n- `deleteProducts(array $productIds = []) :array` Пакетно удаляет товары.\n- `getProductFields() :array` Возвращает описание полей товара, в том числе пользовательских.\n\nПараметры методов:\n\n+ `$productId` - ID товара.\n+ `$productIds` - массив ID товаров.\n+ `$fields` - набор полей товара.\n+ `$filter` - параметры фильтрации;\n+ `$select` - параметры выборки полей;\n+ `$order` - параметры сортировки.\n+ `$products` - массив наборов полей товара.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Получаем товар по его ID\n    $product = $bx24-\u003egetProduct(2396);\n    print_r($product);\n\n    // Обновляем товар\n    $bx24-\u003eupdateProduct(2396, [\n        \"PRICE\" =\u003e 4900\n    ]);\n\n    // Удаляем товар\n    $bx24-\u003edeleteProduct(2396);\n\n    // Загружаем все товары c фильтрацией по полю SECTION_ID\n    $generator = $bx24-\u003efetchProductList([ 'SECTION_ID' =\u003e 13 ]);\n    foreach ($generator as $users) {\n        foreach($users as $user) {\n            print_r($user);\n        }\n    }\n       \n    // Пакетно обновляем товары\n    $bx24-\u003eupdateProducts([\n        [   \n            \"ID\"          =\u003e 27,\n            \"NAME\"        =\u003e \"Тестовый товар 11\",\n            \"CURRENCY_ID\" =\u003e \"RUB\",\n            \"PRICE\"       =\u003e 4900,\n            \"SORT\"        =\u003e 500,\n            \"SECTION_ID\"  =\u003e 13\n        ],\n        [ \n            \"ID\"          =\u003e 28,\n            \"NAME\"        =\u003e \"Тестовый товар 12\",\n            \"CURRENCY_ID\" =\u003e \"RUB\",\n            \"PRICE\"       =\u003e 900,\n            \"SORT\"        =\u003e 100,\n            \"SECTION_ID\"  =\u003e 13\n        ],\n        [\n            \"ID\"          =\u003e 29,\n            \"NAME\"        =\u003e \"Тестовый товар 13\",\n            \"CURRENCY_ID\" =\u003e \"RUB\",\n            \"PRICE\"       =\u003e 2900,\n            \"SORT\"        =\u003e 300,\n            \"SECTION_ID\"  =\u003e 13\n        ]\n    ]);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2\"\u003e\u003c/a\u003e\n### Методы работы с разделами товаров\n\nМетоды для работы с разделами товаров находятся в трейте `\\App\\Bitrix24\\ProductSection`:\n\n- `getProductSection($productSectionId) :array` Возвращает раздел товаров по ID.\n- `addProductSection(array $fields = []) :int` Добавляет раздел товаров и возвращает его ID.\n- `updateProductSection($productSectionId, array $fields = []): int` Обновляет раздел товаров и возвращает его ID.\n- `deleteProductSection($productSectionId) :int` Удаляет раздел товаров и возвращает его ID.\n- `getProductSectionList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n   Загружает все разделы товаров с возможностью фильтрации, сортировки и выборки полей.\n- `fetchProductSectionList(array $filter = [], array $select = [], array $order = []) :\\Generator`  \n   Загружает все разделы товаров с возможностью фильтрации, сортировки и выборки полей.\n   Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.\n- `addProductSections(array $productSections = []) :array` Пакетно добавляет разделы товаров.\n- `updateProductSections(array $productSections = []) :array` Пакетно обновляет разделы товаров.\n- `deleteProducts(array $productSectionIds = []) :array` Пакетно удаляет разделы товаров.\n- `getProductSectionFields() :array` Возвращает описание полей раздела товара.\n\nПараметры методов:\n\n+ `$productSectionId` - ID раздела товаров;\n+ `$productSectionIds` - массив ID разделов товаров;\n+ `$fields` - набор полей раздела товаров;\n+ `$filter` - параметры фильтрации;\n+ `$select` - параметры выборки полей;\n+ `$order` - параметры сортировки.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Получаем раздел товаров по его ID\n    $productSection = $bx24-\u003egetProductSection(16);\n    print_r($productSection);\n\n    // Обновляем раздел товаров\n    $bx24-\u003eupdateProductSection(16, [\n        'NAME' =\u003e 'Раздел товаров 1'\n    ]);\n\n    // Удаляем раздел товаров\n    $bx24-\u003edeleteProductSection(16);\n\n    // Загружаем все разделы товаров c фильтрацией по полю CATALOG_ID\n    $generator = $bx24-\u003efetchProductSectionList([ 'CATALOG_ID' =\u003e 2 ]);\n    foreach ($generator as $productSections) {\n        foreach($productSections as $productSection) {\n            print_r($productSection);\n        }\n    }\n      \n    // Пакетно добавляем разделы товаров\n    $productSectionIds = $bx24-\u003eaddProductSections([\n        [   \n            \"NAME\"       =\u003e \"Раздел товаров 3\",\n            'CATALOG_ID' =\u003e 2\n        ],\n        [   \n            \"NAME\"       =\u003e \"Раздел товаров 4\",\n            'CATALOG_ID' =\u003e 2\n        ]\n    ]);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы работы с товарными позициями\n\nМетоды для работы с товарными позициями находятся в трейте `\\App\\Bitrix24\\ProductRow`:\n\n- `getProductRowFields() :array` Возвращает описание полей товарных позиций.\n\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с пользователями\n\nМетоды для работы с пользователями находятся в трейте `\\App\\Bitrix24\\User`:\n\n- `getUser($userId) ?:array` Возвращает пользователя по ID.\n- `getUsers(array $filter = [], string $order = 'ASC', string $sort = '', bool $adminMode = false) :\\Generator`  \n    Загружает всех пользователей с возможностью фильтрации, сортировки и выборки полей.\n- `getUserFields() :array` Возвращает описание полей пользователя.\n\nПараметры методов:\n\n+ `$userId` - ID пользователя;\n+ `$filter` - параметры фильтрации;\n+ `$order` - направление сортировки (ASC|DESC);\n+ `$sort` - поле, по которому сортируются результаты;\n+ `$select` - параметры выборки полей;\n+ `$adminMode` - включает режим администратора для получения данных о любых пользователях.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Получаем пользователя по ID\n    $user = $bx24-\u003egetUser(34782);\n    print_r($user);\n\n    // Получаем всех пользователей типа сотрудник с сортировкой по имени\n    $generator = $bx24-\u003egetUsers(\n        [ 'USER_TYPE' =\u003e 'employee' ],\n        $order = 'ASC',\n        $sort = 'NAME' \n    );\n    foreach ($generator as $users) {\n        foreach($users as $user) {\n            print_r($user);\n        }\n    }\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы работы с задачами\n\nМетоды для работы с задачами находятся в трейте `\\App\\Bitrix24\\Task`:\n\n- `getTask($taskId, array $select = []) :?array` Возвращает задачу по ID.\n- `getTaskList(array $filter = [], array $select = [], array $order = []): Generator` Возвращает все задачи.\n- `addTask(array $fields = []) :int` Добавляет новую задачу.\n- `addTasks(array $tasks = []) :array` Пакетно добавляет задачи.\n- `getTaskFields() :array` Возвращает описание полей задачи.\n\nПараметры методов:\n\n+ `$taskId` - ID задачи;\n+ `$filter` - параметры фильтрации;\n+ `$select` - параметры выборки полей;\n+ `$order` - параметры сортировки;\n+ `$fields` - набор полей задачи;\n+ `$tasks` - массив наборов полей задач.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Получаем задачу по ID\n    $task = $bx24-\u003egetTask(4325);\n    print_r($task);\n\n    // Получаем все задачи \n    $generator = $bx24-\u003egetTaskList();\n    foreach ($generator as $result) {\n        print_r($result);\n    }\n\n    // Создаем новую задачу\n    $taskId = $bx24-\u003eaddTask([\n        'TITLE'           =\u003e 'Новая задача №123', // Название задачи\n        'DESCRIPTION'     =\u003e 'Описание задачи', // Описание задачи\n        'RESPONSIBLE_ID'  =\u003e 43242, // ID ответственного пользователя\n        'UF_CRM_TASK'     =\u003e [ 'D_' . 38492 ], // Привязка задачи к сделке ('D_' - сущность сделка, 38492 - ID сделки)\n        'START_DATE_PLAN' =\u003e '09.08.2005', // Плановая дата начала.\n        'END_DATE_PLAN'   =\u003e '09.09.2005', // Плановая дата завершения\n        'DEADLINE'        =\u003e '2005-09-09T18:31:42+03:30' // Крайний срок\n    ]);\n    print_r($taskId);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с делами\n\nМетоды для работы с делами (активностями) находятся в трейте `\\App\\Bitrix24\\Activity`:\n\n- `getActivity($activityId) :?array` Возвращает дело по ID.\n- `addActivity(array $fields = []) :int` Создает новое дело и возвращает его ID.\n- `addActivities(array $activities = []) :array` Пакетно создает дела.\n- `getActivityFields() :array` Возвращает описание полей дела.\n\nПараметры методов:\n\n+ `$activityId` - ID дела;\n+ `$fields` - набор полей дела;\n+ `$activities` - массив наборов полей дел.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Добавляем новое дело типа письмо\n    $activityId = $bx24-\u003eaddActivity([\n        'SUBJECT'          =\u003e 'Заголовок письма', // Email subject\n        'DESCRIPTION'      =\u003e 'Описание активности', // Email body\n        'DESCRIPTION_TYPE' =\u003e 2, // Тип тела email: 1- Plain text, 2 - bbCode, 3 - HTML (crm.enum.contenttype)\n        'COMPLETED'        =\u003e 'N', // Флаг немедленной отправки: Y|N\n        'DIRECTION'        =\u003e 2, // Направление: 1 - входящее, 2 - исходящее (crm.enum.activitydirection)\n        'OWNER_TYPE_ID'    =\u003e 2, // Тип сущности: 2 - Сделка, 3 - контакт, 4 - Компания,... (crm.enum.ownertype)\n        'OWNER_ID'         =\u003e 39293, // ID сущности (сделки)\n        'TYPE_ID'          =\u003e 4, // Тип активности: 4 - Письмо (crm.enum.activitytype)\n        'RESPONSIBLE_ID'   =\u003e 4852, // ID ответственного пользователя\n        'START_TIME'       =\u003e '2005-08-09T18:31:42+03:30', // Время начала\n        'END_TIME'         =\u003e '2005-09-10T18:31:42+03:30', // Время окончания\n        'COMMUNICATIONS' =\u003e [ // Параметры получателей письма\n            [\n                'VALUE'          =\u003e 'test@example.com', // Email компании\n                'ENTITY_ID'      =\u003e 58938, // ID компании\n                'ENTITY_TYPE_ID' =\u003e 4 // Тип сущности: 4 - Компания ('crm.enum.ownertype');\n            ]\n        ],\n        'SETTINGS' =\u003e [\n            'MESSAGE_FROM' =\u003e 'from@example.com'\n        ]\n    ]);\n    print_r($activityId);\n\n    // Получаем дело по ID\n    $activity = $bx24-\u003egetActivity($activityId);\n    print_r($activity);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%BC\"\u003e\u003c/a\u003e\n### Методы для работы с диском\n\nМетоды для работы с Диском находятся в трейте `\\App\\Bitrix24\\Disk`:\n\n-  `getDiskStorageList(array $filter = []) :\\Generator`  \n    Загружает список доступных хранилищ с возможностью фильтрации.\n- `getDiskStorageChildren($storageId, array $filter = []) :array`  \n    Возвращает список файлов и папок, которые находятся непосредственно в корне хранилища с возможностью фильтрации.\n- `uploadfileDiskFolder($folderId, string $fileContent, array $data, bool $isBase64FileData = true) :array`\n    Загружает новый файл в указанную папку на Диск.\n\nПараметры методов:\n\n+ `$filter` - параметры фильтрации;\n+ `$storageId` - ID хранилища;\n+ `$filter` - параметры фильтрации;\n+ `$folderId` - ID папки;\n+ `$fileContent` - RAW данные файла;\n+ `$data` - набор параметров, описывающих файл (обязательное поле NAME - имя нового файла);\n+ `$isBase64FileData` - RAW данные файла закодированы в BASE64?\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Загружаем список доступных хранилищ\n    $generator = $bx24-\u003egetDiskStorageList();\n    foreach ($generator as $storages) {\n        foreach ($storages as $storage) {\n            print_r($storage);\n        }\n    }\n\n    // Загружаем список файлов и папок, которые находятся непосредственно в корне хранилища\n    $files = $bx24-\u003egetDiskStorageChildren($storageId = 2);\n    foreach ($files as $file) {\n        print_r($file);\n    }\n\n    // Загружаем файл в указанную папку на Диск\n    $bx24-\u003euploadfileDiskFolder(\n        $filderId = 4709,\n        $rawFile = file_get_contents('./schet.pdf'),\n        [ 'NAME' =\u003e 'schet.pdf' ],\n        $isBase64FileData = false\n    );\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D0%BB%D0%B8%D0%B4%D0%B0%D0%BC%D0%B8\"\u003e\u003c/a\u003e\n### Методы для работы с лидами\n\nМетоды для работы с лидами находятся в трейте `\\App\\Bitrix24\\Lead`:\n\n- `getLeadFields() :array` Возвращает описание полей лида, в том числе пользовательских.\n- `getLead($leadId, array $with = []) :array` Возвращает лид по его ID.\n- `addLead(array $fields = [], array $params = []) :int` Добавляет лид и возвращает его ID.\n- `updateLead($leadId, array $fields = [], array $params = []) :int` Обновляет лид и возвращает его ID.\n- `deleteLead($leadId) :int` Удаляет лид по его ID.\n- `getLeadList(array $filter = [], array $select = [], array $order = []): Generator`  \n    Загружает все лиды с возможностью фильтрации, сортировки и выборки полей.\n- `fetchLeadList(array $filter = [], array $select = [], array $order = []): Generator`  \n    Загружает все лиды с возможностью фильтрации, сортировки и выборки полей.  \n    Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных.\n- `getLeadProductRows($leadId) :array` Возвращает массив параметров товарных позиций, связанных с лидом.\n- `setLeadProductRows($leadId, array $products) :array` Устанавливает товарные позиции, связанные с лидом.\n\nПараметры методов:\n\n+ `$leadId` - ID лида;\n+ `$with` - имена связанных сущностей, возвращаемых вместе с лидом:\n    * `\\App\\Bitrix24\\Bitrix24API::$WITH_PRODUCTS` - товарные позиции (возвращаются в виде массива в поле с именем, заданным публичным статическим свойством `Bitrix24API::$PRODUCTS`);\n- `$fields` - набор полей лида;\n- `$params` - набор параметров лида;\n- `$filter` - параметры фильтрации;\n- `$order` - параметры сортировки;\n- `$select` - параметры выборки полей;\n- `$products` - массив параметров товарных позиций.\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\n\ntry {\n\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Добавляем новый лид\n    $leadId = $bx24-\u003eaddLead([\n        'TITLE'      =\u003e 'Новый лид №1'\n    ]);\n    print_r($leadId);\n\n    // Устанавливаем набор связанных товарных позиций\n    $bx24-\u003esetLeadProductRows($leadId, [\n        [ 'PRODUCT_ID' =\u003e 1689, 'PRICE' =\u003e 1500.00, 'QUANTITY' =\u003e 2 ],\n        [ 'PRODUCT_ID' =\u003e 1860, 'PRICE' =\u003e 500.00, 'QUANTITY' =\u003e 15 ]\n    ]);\n\n    // Обновляем существующий лид\n    $bx24-\u003eupdateLead($leadId [\n        'TITLE' =\u003e 'Новый лид №12'\n    ]);\n\n    // При необходимости, изменяем значение по умолчанию 'PRODUCTS' на '_PRODUCTS' для имени поля\n    // со списком товарных позиций, возвращаемых вместе с лидом\n    Bitrix24API::$WITH_PRODUCTS = '_PRODUCTS';\n\n    // Загружаем лид по ID вместе со связанными товарными позициями\n    $lead = $bx24-\u003egetLead($leadId, [ Bitrix24API::$WITH_PRODUCTS ]);\n    print_r($lead);\n\n    // Удаляем существующий лид\n    $bx24-\u003edeleteLead($leadId);\n\n    // Загружаем все лиды используя быстрый метод при работе с большими объемами данных\n    $generator = $bx24-\u003efetchLeadList();\n    foreach ($generator as $leads) {\n        foreach($leads as $lead) {\n            print_r($lead);\n        }\n    }\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}    \n```    \n\n\u003ca id=\"%D0%92%D1%81%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B\"\u003e\u003c/a\u003e\n## Вспомогательные классы\n\n\u003ca id=\"%D0%9A%D0%BB%D0%B0%D1%81%D1%81-http\"\u003e\u003c/a\u003e\n### Класс `HTTP`\n\nКласс [`\\App\\HTTP\\НТТР`](https://github.com/andrey-tech/http-client-php) обеспечивает:\n\n- формирование POST запросов к API Битрикс 24 по протоколу HTTPS;\n- троттлинг запросов к API на требуемом уровне - [не более 2-х запросов в секунду](https://dev.1c-bitrix.ru/rest_help/rest_sum/index.php);\n- вывод отладочной информации о запросах к API в STDOUT.\n\nПри возникновении ошибок выбрасывается исключение класса `\\App\\HTTP\\HTTPException`.\n\n\u003ca id=\"%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-1\"\u003e\u003c/a\u003e\n#### Дополнительные параметры\n\nДополнительные параметры устанавливаются через публичные свойства объекта класса `\\App\\HTTP\\HTTP`:\n\nСвойство                | По умолчанию            | Описание\n----------------------- | ----------------------- | --------\n`$debugLevel`           | `\\App\\HTTP\\HTTP::DEBUG_NONE` | Устанавливает уровень вывода отладочной информации о запросах в STDOUT (битовая маска, составляемая из значений DEBUG_NONE, DEBUG_URL, DEBUG_HEADERS, DEBUG_CONTENT)\n`$throttle`             | 0                       | Максимальное число HTTP запросов в секунду (0 - троттлинг отключен)\n`$addBOM`               | false                   | Добавлять [маркер ВОМ](https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2) UTF-8 (EFBBBF) к запросам в формате JSON\n`$useCookies`           | false                   | Использовать cookies в запросах\n`$cookieFile`           | 'temp/cookies.txt'      | Путь к файлу для хранения cookies\n`$verifySSLCertificate` | true                    | Включить проверку SSL/TLS-сертификата сервера\n`$SSLCertificateFile`   | 'cacert.pem'            | Устанавливает файл SSL/TLS-сертификатов X.509 корневых удостоверяющих центров (CA) в формате РЕМ (установка в null означает использовать файл, указанный в параметре [curl.cainfo](https://www.php.net/manual/ru/curl.configuration.php) файла php.ini)\n`$userAgent`            | 'HTTP-client/3.x.x'     | Устанавливает НТТР заголовок UserAgent в запросах\n`$curlConnectTimeout`   | 60                      | Устанавливает таймаут соединения, секунды\n`$curlTimeout`          | 60                      | Устанавливает таймаут обмена данными, секунды\n`$successStatusCodes`   | [ 200 ]                 | Коды статуса НТТР, соответствующие успешному выполнению запроса\n\n\n\u003ca id=\"%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B\"\u003e\u003c/a\u003e\n#### Примеры\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\nuse App\\HTTP\\HTTP;\n\ntry {\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Устанавливаем максимальный уровень вывода отладочных сообщений в STDOUT\n    $bx24-\u003ehttp-\u003edebugLevel = HTTP::DEBUG_URL |  HTTP::DEBUG_HEADERS | HTTP::DEBUG_CONTENT;\n\n    // ИЛИ  \n    // убираем вывод отладочных сообщений в случае необходимости.\n    // Раскомментируем строчку нижи И закоментируем рабочую строчку выше\n    // $bx24-\u003ehttp-\u003edebugLevel = HTTP::DEBUG_NONE;\n\n    // Устанавливаем троттлинг запросов на уровне не более 1 запроса в 2 секунды\n    $bx24-\u003ehttp-\u003ethrottle = 0.5;\n\n    // Устанавливаем таймаут обмена данными в 30 секунд\n    $bx24-\u003ehttp-\u003ecurlTimeout = 30;\n\n    // Получаем компанию по ID\n    $results = $bx24-\u003egetCompany(20);\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\nПримеры отладочных сообщений:\n```\n[1] ===\u003e POST https://www.example.com/rest/1/u7ngxagzrhpuj31a/crm.company.get.json\nPOST rest/1/u7ngxagzrhpuj31a/crm.company.get.json HTTP/1.1\nHost: www.example.com\nUser-Agent: HTTP-client/2.x.x\nAccept: */*\nContent-Length: 5\nContent-Type: application/x-www-form-urlencoded\n\nid=20\n\n[1] \u003c=== RESPONSE 0.5348s (200)\nHTTP/1.1 200 OK\nServer: nginx/1.16.1\nDate: Mon, 15 Jun 2020 13:11:33 GMT\nContent-Type: application/json; charset=utf-8\nTransfer-Encoding: chunked\nConnection: keep-alive\nP3P: policyref=\"/bitrix/p3p.xml\", CP=\"NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA\"\nX-Powered-CMS: Bitrix Site Manager (bc2cad9153cb418bb2dfd5602c3c3754)\nSet-Cookie: PHPSESSID=uSBxTO1tiaVfYPd7I7BhvjPLc2H2RhuD; path=/; secure; HttpOnly\nExpires: Thu, 19 Nov 1981 08:52:00 GMT\nCache-Control: no-store, no-cache, must-revalidate\nPragma: no-cache\nSet-Cookie: qmb=.; path=/\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Headers: origin, content-type, accept\nX-Content-Type-Options: nosniff\nX-Bitrix-Rest-Time: 0.0098488331\nX-Bitrix-Rest-User-Time: 0.0042990000\nX-Bitrix-Rest-System-Time: 0.0000030000\nSet-Cookie: BITRIX_SM_SALE_UID=4; expires=Thu, 10-Jun-2021 13:11:33 GMT; Max-Age=31104000; path=/\nX-Frame-Options: SAMEORIGIN\nX-Content-Type-Options: nosniff\nStrict-Transport-Security: max-age=31536000; includeSubdomains\nX-Bitrix-Times: 0.104/0.104/0.000\nX-Bitrix-TCP: 32250/6750/20/14480\nX-Bitrix-RI: 3b51dd618cb995cfc06d2016cc4c0c94\nX-Bitrix-LB: lb-ru-04\n\n{\"result\":{\"ID\":\"20\",\"COMPANY_TYPE\":\"CUSTOMER\",\"LOGO\":null,\"LEAD_ID\":null,\"HAS_PHONE\":\"N\",\"HAS_EMAIL\":\"Y\"}}\n```\n\n\u003ca id=\"%D0%9A%D0%BB%D0%B0%D1%81%D1%81-debuglogger\"\u003e\u003c/a\u003e\n### Класс `DebugLogger`\n\nКласс [`\\App\\DebugLogger\\DebugLogger`](https://github.com/andrey-tech/debug-logger-php) обеспечивает логирование запросов и ответов к API Битрикс24 в файл.  \nПри возникновении ошибок выбрасывается исключение класса `\\App\\DebugLogger\\DebugLoggerException`. \n\n\u003ca id=\"%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0\"\u003e\u003c/a\u003e\n#### Методы класса\n\n- `static instance(string $logFileName = 'debug.log') :self`  \n    Возвращает единственный объект данного класса **для заданного лог-файла** `$logFileName`.\n    + `$logFileName` - имя лог-файла.\n- `save(mixed $info, object $object = null, string $header = null) :void` Сохраняет подлежащую логированию информацию в файл.\n    + `$info` - строка, массив или объект для логирования;\n    + `$object` - ссылка на объект класса в котором выполняется логирование;\n    + `$header` - строка заголовка для сохраняемой в лог файл информации.\n\n\u003ca id=\"%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-2\"\u003e\u003c/a\u003e\n#### Дополнительные параметры\n\nДополнительные параметры устанавливаются через публичные свойства класса `\\App\\DebugLogger\\DebugLogger`:\n\nНестатическое свойство  | По умолчанию  | Описание\n----------------------- | ------------- | --------\n`$isActive`             | false         | Включает или выключает логирование для конкретного файла, задаваемого параметром `$logFileName` метода `instance()`\n\nСтатическое свойство    | По умолчанию  | Описание\n----------------------- | ------------- | --------\n`$logFileDir`           | `temp/`       | Устанавливает каталог, в котором сохраняются лог-файлы\n`mkdirMode`             | 0755          | Устанавливает режим доступа для создаваемых каталогов для хранения лог файлов в виде восьмеричного числа\n`$uniqIdLength`         | 7             | Длина уникального буквенно-цифрового [a-z0-9]+ идентификатора объекта класса `DebugLogger` для сохранения в лог файле,  позволяющего находить записи, созданные одним и тем же процессом\n\n\n\u003ca id=\"%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-1\"\u003e\u003c/a\u003e\n#### Примеры\n\n```php\nuse App\\Bitrix24\\Bitrix24API;\nuse App\\Bitrix24\\Bitrix24APIException;\nuse App\\DebugLogger\\DebugLogger;\n\ntry {\n    $webhookURL = 'https://www.example.com/rest/1/u7ngxagzrhpuj31a/';\n    $bx24 = new Bitrix24API($webhookURL);\n\n    // Устанавливаем каталог для сохранения лог файлов\n    DebugLogger::$logFileDir = 'logs/';\n\n    // Создаем объект класса логгера\n    $logFileName = 'debug_bitrix24api.log';\n    $logger = DebugLogger::instance($logFileName);\n\n    // Включаем логирование\n    $logger-\u003eisActive = true;\n\n    // Устанавливаем логгер\n    $bx24-\u003esetLogger($logger);\n\n    // Загружаем все компании\n    $bx24-\u003efetchCompanyList();\n\n} catch (Bitrix24APIException $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n} catch (Exception $e) {\n    printf('Ошибка (%d): %s' . PHP_EOL, $e-\u003egetCode(), $e-\u003egetMessage());\n}\n```\n\nПример результатов логирования:\n\n```\n*** 92qshr5 [2020-06-14 13:32:44.993285 +00:00 Δ0.012308 s, 0.70/2.00 MiB] ********************\n* Class: App\\Bitrix24\\Bitrix24API\nЗАПРОС: crm.company.list.json\n{\n    \"order\": {\n        \"ID\": \"ASC\"\n    },\n    \"filter\": {\n        \"\u003eID\": 0\n    },\n    \"select\": [],\n    \"start\": -1\n}\n\n\n*** 92qshr5 [2020-06-14 13:32:46.900518 +00:00 Δ1.907233 s, 1.14/2.00 MiB] ********************\nОТВЕТ: crm.company.list.json\n{\n    \"result\": [\n        {\n            \"ID\": \"2\",\n            \"COMPANY_TYPE\": \"PARTNER\",\n            \"TITLE\": \"ООО\",\n            \"LOGO\": {\n                \"id\": 112,\n                \"showUrl\": \"\\/bitrix\\/components\\/bitrix\\/crm.company.show\\/show_file.php?ownerId=2\",\n                \"downloadUrl\": \"\\/bitrix\\/components\\/bitrix\\/crm.company.show\\/show_file.php?auth=\u0026ownerId=2\"\n            }\n        }\n    }\n}\n\n*** 92qshr5 [2020-06-14 13:32:46.902085 +00:00 Δ0.001567 s, 1.30/2.00 MiB] ********************\n* Class: App\\Bitrix24\\Bitrix24API\nПо запросу (fetchList) crm.company.list получено сущностей: 50, всего получено: 50\n```\n\n\u003ca id=\"%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2-%D0%BB%D0%BE%D0%B3%D0%B0\"\u003e\u003c/a\u003e\n##### Формат заголовков лога\n\n```\n*** 92qshr5 [2020-06-14 13:32:46.902085 +00:00 Δ0.001567 s, 1.30/2.00 MiB] ********************\n* Class: App\\Bitrix24\\Bitrix24API\n```\n\n- `92qshr5` - уникальный буквенно-цифровой [a-z0-9]+ идентификатор объекта класса `DebugLogger`, позволяющий находить в лог файле записи, созданные одним и тем же процессом;\n- `2020-06-14 13:32:46.902085` - дата и время сохранения информации с точностью до микросекунд;\n- `Δ0.001567 s` - время, прошедшее с момента предыдущего сохранения информации в секундах и микросекундах;\n- `1.30/2.00 MiB` - данные об используемой оперативной памяти в единицах количества информации с [двоичными приставками](https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8):\n    + `1.30` - максимальный объем памяти, который был выделен PHP-скрипту системой;\n    + `2.00` - реальный объем памяти, выделенный PHP-скрипту системой;\n- 'Class: App\\Bitrix24\\Bitrix24API' - полное имя класса из которого сделано сохранение в лог файл.\n\n\u003ca id=\"%D0%90%D0%B2%D1%82%D0%BE%D1%80\"\u003e\u003c/a\u003e\n## Автор\n\n© 2019-2022 andrey-tech\n\n\u003ca id=\"%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F\"\u003e\u003c/a\u003e\n## Лицензия\n\nДанная библиотека распространяется на условиях лицензии [MIT](./LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrey-tech%2Fbitrix24-api-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrey-tech%2Fbitrix24-api-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrey-tech%2Fbitrix24-api-php/lists"}