[{"data":1,"prerenderedAt":4669},["ShallowReactive",2],{"navigation":3,"-docs-getting-started":459,"-docs-getting-started-description":4658},[4],{"title":5,"path":6,"stem":7,"children":8,"page":47},"Docs","\u002Fdocs","docs",[9,78,351],{"title":10,"path":11,"stem":12,"children":13,"restApiVersion":15,"category":15,"description":15,"badge":15},"Начало работы","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,17,48,63],{"title":10,"path":11,"stem":12,"restApiVersion":15,"category":15,"description":16,"badge":15},null,"Краткое руководство по работе с SDK для REST API Bitrix24",{"title":18,"path":19,"stem":20,"children":21,"page":47},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",[22,27,32,37,42],{"title":23,"path":24,"stem":25,"restApiVersion":15,"category":15,"description":26,"badge":15},"Vue","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fvue","docs\u002F1.getting-started\u002F2.installation\u002F1.vue","Руководство по установке Bitrix24 JS SDK в приложениях Vue.",{"title":28,"path":29,"stem":30,"restApiVersion":15,"category":15,"description":31,"badge":15},"Nuxt","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnuxt","docs\u002F1.getting-started\u002F2.installation\u002F2.nuxt","Руководство по установке Bitrix24 JS SDK в приложениях Nuxt.",{"title":33,"path":34,"stem":35,"restApiVersion":15,"category":15,"description":36,"badge":15},"React","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Freact","docs\u002F1.getting-started\u002F2.installation\u002F3.react","Руководство по установке Bitrix24 JS SDK в приложениях React.",{"title":38,"path":39,"stem":40,"restApiVersion":15,"category":15,"description":41,"badge":15},"Node.js","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnodejs","docs\u002F1.getting-started\u002F2.installation\u002F4.nodejs","Руководство по установке Bitrix24 JS SDK в приложениях Node.js.",{"title":43,"path":44,"stem":45,"restApiVersion":15,"category":15,"description":46,"badge":15},"UMD","\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fumd","docs\u002F1.getting-started\u002F2.installation\u002F5.umd","Руководство по использованию UMD-версии Bitrix24 JS SDK в ваших приложениях.",false,{"title":49,"restApiVersion":15,"category":15,"description":15,"badge":15,"shadow":47,"path":50,"stem":51,"children":52,"page":47},"Migration","\u002Fdocs\u002Fgetting-started\u002Fmigration","docs\u002F1.getting-started\u002F3.migration",[53,58],{"title":54,"path":55,"stem":56,"restApiVersion":15,"category":15,"description":57,"badge":15},"v0 → v1","\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv1","docs\u002F1.getting-started\u002F3.migration\u002F1.v1","Подробное руководство по миграции приложения с Bitrix24 JS SDK v0 на Bitrix24 JS SDK v1.",{"title":59,"path":60,"stem":61,"restApiVersion":15,"category":15,"description":62,"badge":15},"v2 → v3","\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv3","docs\u002F1.getting-started\u002F3.migration\u002F2.v3","Как уйти с устаревшей REST-поверхности, которая удаляется в Bitrix24 JS SDK 3.0.0.",{"title":64,"restApiVersion":15,"category":15,"description":15,"badge":15,"path":65,"stem":66,"children":67,"page":47},"AI-инструменты","\u002Fdocs\u002Fgetting-started\u002Fai","docs\u002F1.getting-started\u002F7.ai",[68,73],{"title":69,"path":70,"stem":71,"restApiVersion":15,"category":15,"description":72,"badge":15},"Навыки","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fskills","docs\u002F1.getting-started\u002F7.ai\u002F1.skills","Узкоспециализированные skill-файлы для AI-агентов разработчика, работающих с @bitrix24\u002Fb24jssdk.",{"title":74,"path":75,"stem":76,"restApiVersion":15,"category":15,"description":77,"badge":15},"LLMs.txt","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fllms-txt","docs\u002F1.getting-started\u002F7.ai\u002F2.llms-txt","Как сделать, чтобы AI-инструменты вроде Cursor, Windsurf, GitHub Copilot, ChatGPT и Claude понимали методы, инструменты и лучшие практики Bitrix24 JS SDK.",{"title":79,"path":80,"stem":81,"children":82,"restApiVersion":15,"category":15,"description":15,"badge":15},"Работа с REST API","\u002Fdocs\u002Fworking-with-the-rest-api","docs\u002F2.working-with-the-rest-api\u002F0.index",[83,86,93,98,103,107,112,116,121,126,130,135,140,145,150,155,160,165,170,175,179,184,189,194,200,205,210,215,220,225,230,235,240,245,251,256,261,267,272,277,282,287,293,299,305,310,315,320,326,331,336,341,346],{"title":84,"path":80,"stem":81,"restApiVersion":15,"category":15,"description":85,"badge":15},"Введение","Обзор возможностей SDK для работы с REST API Bitrix24",{"title":87,"path":88,"stem":89,"restApiVersion":90,"category":91,"description":92,"badge":15},"Call","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-rest-api-ver2","docs\u002F2.working-with-the-rest-api\u002F1.call-rest-api-ver2","rest-api-ver2","actions","Метод для вызовов REST API Bitrix24 версии 2.",{"title":87,"path":94,"stem":95,"restApiVersion":96,"category":91,"description":97,"badge":15},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-rest-api-ver3","docs\u002F2.working-with-the-rest-api\u002F1.call-rest-api-ver3","rest-api-ver3","Метод для вызовов REST API Bitrix24 версии 3.",{"title":99,"path":100,"stem":101,"restApiVersion":90,"category":91,"description":102,"badge":15},"CallList","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-list-rest-api-ver2","docs\u002F2.working-with-the-rest-api\u002F2.call-list-rest-api-ver2","Метод для быстрого получения всех данных из list-методов REST API Bitrix24 версии 2.",{"title":99,"path":104,"stem":105,"restApiVersion":96,"category":91,"description":106,"badge":15},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-list-rest-api-ver3","docs\u002F2.working-with-the-rest-api\u002F2.call-list-rest-api-ver3","Метод для быстрого получения всех данных из list-методов REST API Bitrix24 версии 3.",{"title":108,"path":109,"stem":110,"restApiVersion":90,"category":91,"description":111,"badge":15},"FetchList","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffetch-list-rest-api-ver2","docs\u002F2.working-with-the-rest-api\u002F2.fetch-list-rest-api-ver2","Возвращает AsyncGenerator, позволяющий обрабатывать данные из list-методов REST API Bitrix24 версии 2 по мере поступления, не загружая весь массив в память сразу. Особенно полезно при работе с очень большими объёмами данных.",{"title":108,"path":113,"stem":114,"restApiVersion":96,"category":91,"description":115,"badge":15},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffetch-list-rest-api-ver3","docs\u002F2.working-with-the-rest-api\u002F2.fetch-list-rest-api-ver3","Возвращает AsyncGenerator, позволяющий обрабатывать данные из list-методов REST API Bitrix24 версии 3 по мере поступления, не загружая весь массив в память сразу. Особенно полезно при работе с очень большими объёмами данных.",{"title":117,"path":118,"stem":119,"restApiVersion":15,"category":117,"description":120,"badge":15},"B24Hook","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhook","docs\u002F2.working-with-the-rest-api\u002F20.hook","Серверная точка входа для работы с REST API Bitrix24 через входящий вебхук (постоянный токен).",{"title":122,"path":123,"stem":124,"restApiVersion":90,"category":91,"description":125,"badge":15},"Batch","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-rest-api-ver2","docs\u002F2.working-with-the-rest-api\u002F3.batch-rest-api-ver2","Метод для выполнения пакетных запросов к REST API Bitrix24 версии 2. Позволяет выполнить до 50 команд в одном API-вызове.",{"title":122,"path":127,"stem":128,"restApiVersion":96,"category":91,"description":129,"badge":15},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-rest-api-ver3","docs\u002F2.working-with-the-rest-api\u002F3.batch-rest-api-ver3","Метод для выполнения пакетных запросов к REST API Bitrix24 версии 3. Позволяет выполнить до 50 команд в одном API-вызове.",{"title":84,"path":131,"stem":132,"restApiVersion":15,"category":133,"description":134,"badge":15},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe","docs\u002F2.working-with-the-rest-api\u002F30.frame","B24Frame","Предназначен для управления приложениями Bitrix24, работающими внутри placement-iframe. Наследуется от AbstractB24 и предоставляет менеджеры для аутентификации, обмена сообщениями с родительским окном, слайдеров, диалогов, placement и опций.",{"title":136,"path":137,"stem":138,"restApiVersion":15,"category":133,"description":139,"badge":15},"Инициализация","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-initialize-b24-frame","docs\u002F2.working-with-the-rest-api\u002F30.frame-initialize-b24-frame","Функция предназначена для инициализации B24Frame",{"title":141,"path":142,"stem":143,"restApiVersion":15,"category":133,"description":144,"badge":15},"Авторизация","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-auth","docs\u002F2.working-with-the-rest-api\u002F31.frame-auth","Предназначен для управления аутентификацией в приложениях Bitrix24. Обрабатывает данные аутентификации, полученные от родительского окна, и предоставляет методы для их обновления и получения.",{"title":146,"path":147,"stem":148,"restApiVersion":15,"category":133,"description":149,"badge":15},"Диалог","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-dialog","docs\u002F2.working-with-the-rest-api\u002F31.frame-dialog","Оборачивает системные диалоги BX24 (выбор пользователя, выбор прав доступа, выбор CRM-сущности), чтобы их можно было открывать изнутри iframe приложения Bitrix24.",{"title":151,"path":152,"stem":153,"restApiVersion":15,"category":133,"description":154,"badge":15},"Опции","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-options","docs\u002F2.working-with-the-rest-api\u002F31.frame-options","Используется для управления настройками приложения и пользователя в приложении Bitrix24. Позволяет инициализировать данные, получать и устанавливать опции через сообщения родительскому окну.",{"title":156,"path":157,"stem":158,"restApiVersion":15,"category":133,"description":159,"badge":15},"Родительское окно","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-parent","docs\u002F2.working-with-the-rest-api\u002F31.frame-parent","Предоставляет методы для управления родительским окном приложения в Bitrix24, включая изменение размера окна, управление прокруткой, инициацию звонков и открытие мессенджера.",{"title":161,"path":162,"stem":163,"restApiVersion":15,"category":133,"description":164,"badge":15},"Placement","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-placement","docs\u002F2.working-with-the-rest-api\u002F31.frame-placement","Используется для управления placement виджетов в приложении Bitrix24.",{"title":166,"path":167,"stem":168,"restApiVersion":15,"category":133,"description":169,"badge":15},"Слайдер","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe-slider","docs\u002F2.working-with-the-rest-api\u002F31.frame-slider","Предоставляет методы для работы со слайдерами в приложении Bitrix24. Позволяет открывать и закрывать слайдеры, а также управлять их содержимым.",{"title":171,"path":172,"stem":173,"restApiVersion":90,"category":91,"description":174,"badge":15},"BatchByChunk","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-by-chunk-rest-api-ver2","docs\u002F2.working-with-the-rest-api\u002F4.batch-by-chunk-rest-api-ver2","Метод для выполнения пакетных запросов с автоматическим разбиением на чанки для любого числа команд. Автоматически делит большие наборы команд на батчи по 50 и выполняет их последовательно. Используйте только массивы кортежей или массивы объектов.",{"title":171,"path":176,"stem":177,"restApiVersion":96,"category":91,"description":178,"badge":15},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-by-chunk-rest-api-ver3","docs\u002F2.working-with-the-rest-api\u002F4.batch-by-chunk-rest-api-ver3","Метод для выполнения пакетных запросов к REST API Bitrix24 версии 3 с автоматическим разбиением на чанки для любого числа команд. Автоматически делит большие наборы команд на батчи по 50 и выполняет их последовательно. Используйте только массивы кортежей или массивы объектов.",{"title":180,"path":181,"stem":182,"restApiVersion":15,"category":180,"description":183,"badge":15},"B24OAuth","\u002Fdocs\u002Fworking-with-the-rest-api\u002Foauth","docs\u002F2.working-with-the-rest-api\u002F40.oauth","Серверная точка входа для работы с REST API Bitrix24 по access token OAuth 2.0 (с автоматическим обновлением).",{"title":185,"path":186,"stem":187,"restApiVersion":15,"category":15,"description":188,"badge":15},"Выбор метода","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fchoosing-the-right-method","docs\u002F2.working-with-the-rest-api\u002F5.choosing-the-right-method","Руководство по выбору между Call, CallList, FetchList, Batch и BatchByChunk в REST API v2 и v3.",{"title":190,"path":191,"stem":192,"restApiVersion":15,"category":15,"description":193,"badge":15},"Фильтрация","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffiltering","docs\u002F2.working-with-the-rest-api\u002F5.filtering","Справочник по построению параметров фильтра в Bitrix24 REST API v2 (префиксные операторы) и v3 (массив троек), включая формат дат и правило отбрасывания order.",{"title":195,"path":196,"stem":197,"restApiVersion":15,"category":198,"description":199,"badge":15},"B24HelperManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper","docs\u002F2.working-with-the-rest-api\u002F50.helper","Helper","Агрегирующий менеджер, который загружает данные профиля, приложения, оплаты, лицензии, валют и опций одним батч-запросом REST, а также подключает Pull-клиент.",{"title":201,"path":202,"stem":203,"restApiVersion":15,"category":198,"description":204,"badge":15},"useB24Helper","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-use-b24-helper","docs\u002F2.working-with-the-rest-api\u002F51.helper-use-b24-helper","Основанный на замыкании composable, который владеет единственным экземпляром B24HelperManager и предоставляет хелперы жизненного цикла (init \u002F destroy \u002F связка с Pull-клиентом).",{"title":206,"path":207,"stem":208,"restApiVersion":15,"category":198,"description":209,"badge":15},"ProfileManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-profile-manager","docs\u002F2.working-with-the-rest-api\u002F52.helper-profile-manager","Разобранный ответ REST-метода `profile`: id, имя, фамилия, пол, фото, часовой пояс, флаг администратора.",{"title":211,"path":212,"stem":213,"restApiVersion":15,"category":198,"description":214,"badge":15},"AppManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-app-manager","docs\u002F2.working-with-the-rest-api\u002F53.helper-app-manager","Разобранный ответ REST-метода `app.info`: id приложения, код, версия, статус, флаг установки.",{"title":216,"path":217,"stem":218,"restApiVersion":15,"category":198,"description":219,"badge":15},"PaymentManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-payment-manager","docs\u002F2.working-with-the-rest-api\u002F54.helper-payment-manager","Статус оплаты приложения Bitrix24 — извлекается из `app.info`.",{"title":221,"path":222,"stem":223,"restApiVersion":15,"category":198,"description":224,"badge":15},"LicenseManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-license-manager","docs\u002F2.working-with-the-rest-api\u002F55.helper-license-manager","Информация о лицензии Bitrix24 из `app.info` — и автоматическая перенастройка менеджера ограничений под соответствующий тарифный план.",{"title":226,"path":227,"stem":228,"restApiVersion":15,"category":198,"description":229,"badge":15},"CurrencyManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-currency-manager","docs\u002F2.working-with-the-rest-api\u002F56.helper-currency-manager","Каталог валют, кэшируемый в памяти — базовая валюта, форматтеры для каждой валюты и форматтер числа в строку.",{"title":231,"path":232,"stem":233,"restApiVersion":15,"category":198,"description":234,"badge":15},"OptionsManager","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fhelper-options-manager","docs\u002F2.working-with-the-rest-api\u002F57.helper-options-manager","Типизированный доступ к `app.option.get` \u002F `user.option.get`, плюс save(), который батчит `*.option.set` с необязательным Pull-уведомлением.",{"title":236,"path":237,"stem":238,"restApiVersion":15,"category":15,"description":239,"badge":15},"Ошибки","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ferrors","docs\u002F2.working-with-the-rest-api\u002F6.errors","Справочник кодов SdkError и AjaxError, выбрасываемых SDK, плюс коды ошибок REST Bitrix24, которые через них проявляются.",{"title":241,"path":242,"stem":243,"restApiVersion":15,"category":241,"description":244,"badge":15},"Pull","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fpull","docs\u002F2.working-with-the-rest-api\u002F60.pull","Поток сообщений в реальном времени от Bitrix24 к вашему приложению — WebSocket как основной канал, long-polling как запасной. Только для фрейма.",{"title":246,"path":247,"stem":248,"restApiVersion":15,"category":249,"description":250,"badge":15},"Logger","\u002Fdocs\u002Fworking-with-the-rest-api\u002Flogger","docs\u002F2.working-with-the-rest-api\u002F66.logger","logger","Логгер, вдохновлённый PHP Monolog, предоставляет структурированную систему логирования с поддержкой каналов, обработчиков, процессоров и форматтеров. Реализация следует принципам PSR-3 и паттерну цепочки ответственности.",{"title":252,"path":253,"stem":254,"restApiVersion":15,"category":249,"description":255,"badge":15},"Telegram","\u002Fdocs\u002Fworking-with-the-rest-api\u002Flogger-telegram","docs\u002F2.working-with-the-rest-api\u002F66.logger-telegram","Отправка логов в Telegram",{"title":257,"path":258,"stem":259,"restApiVersion":15,"category":15,"description":260,"badge":15},"Обнаружение v3-методов","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fdiscovering-v3-methods","docs\u002F2.working-with-the-rest-api\u002F7.discovering-v3-methods","Используйте rest.documentation.openapi, чтобы получить собственный машиночитаемый список всех доступных методов REST API v3 портала — источник истины, на который SDK опирается вместо захардкоженного allowlist. Особенно полезно для AI-агентов и кодогенерации.",{"title":262,"path":263,"stem":264,"restApiVersion":15,"category":265,"description":266,"badge":15},"AjaxResult","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcore-ajax-result","docs\u002F2.working-with-the-rest-api\u002F70.core-ajax-result","Core","Специализированный Result, возвращаемый каждым REST-хелпером. Предоставляет `isMore() \u002F getNext() \u002F getTotal() \u002F getStatus()` для постраничных ответов и неизменяемые данные.",{"title":268,"path":269,"stem":270,"restApiVersion":15,"category":265,"description":271,"badge":15},"Http","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcore-http","docs\u002F2.working-with-the-rest-api\u002F70.core-http","Низкоуровневый интерфейс транспорта, возвращаемый `b24.getHttpClient(version)`. Прямой доступ к axios-клиентам, параметрам ограничений, статистике и сбросу.",{"title":273,"path":274,"stem":275,"restApiVersion":15,"category":265,"description":276,"badge":15},"B24LangList","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcore-lang-list","docs\u002F2.working-with-the-rest-api\u002F70.core-lang-list","Enum языков интерфейса облачного Bitrix24 плюс карта локалей BCP-47.",{"title":278,"path":279,"stem":280,"restApiVersion":15,"category":265,"description":281,"badge":15},"RequestIdGenerator","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcore-request-id-generator","docs\u002F2.working-with-the-rest-api\u002F70.core-request-id-generator","Реализация `IRequestIdGenerator` по умолчанию. Генерирует request id в формате UUID v7 и предоставляет имена HTTP-заголовка \u002F query-параметра, используемые SDK.",{"title":283,"path":284,"stem":285,"restApiVersion":15,"category":265,"description":286,"badge":15},"Result","\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcore-result","docs\u002F2.working-with-the-rest-api\u002F70.core-result","Обобщённый результат операции с флагом успеха, данными и картой ошибок. Аналог \\\\Bitrix\\\\Main\\\\Result из Bitrix Framework.",{"title":288,"path":289,"stem":290,"restApiVersion":15,"category":291,"description":292,"badge":15},"Лимитеры","\u002Fdocs\u002Fworking-with-the-rest-api\u002Flimiters","docs\u002F2.working-with-the-rest-api\u002F77.limiters","limiters","Система ограничений предоставляет комплексный механизм управления частотой запросов, временем выполнения операций и адаптивными задержками.",{"title":294,"path":295,"stem":296,"restApiVersion":15,"category":297,"description":298,"badge":15},"Логирование и редактирование","\u002Fdocs\u002Fworking-with-the-rest-api\u002Flogging","docs\u002F2.working-with-the-rest-api\u002F78.logging","logging","Что SDK редактирует автоматически до того, как информация о запросе попадёт в логгер или AjaxError, что он не редактирует, и как подключить кастомный логгер через setLogger(...) без повторного появления утечек учётных данных.",{"title":300,"path":301,"stem":302,"restApiVersion":15,"category":303,"description":304,"badge":15},"Browser","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-browser","docs\u002F2.working-with-the-rest-api\u002F80.tools-browser","tools","Дешёвый детектор user-agent \u002F платформы \u002F возможностей. Полезен для runtime-ветвлений во фронтенд-коде.",{"title":306,"path":307,"stem":308,"restApiVersion":15,"category":303,"description":309,"badge":15},"Text","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-text","docs\u002F2.working-with-the-rest-api\u002F80.tools-text","Утилиты для текста и дат — UUID v4 \u002F v7, кодирование \u002F декодирование HTML-сущностей, преобразования типов, хелперы регистра, `toDateTime` \u002F `toB24Format` на Luxon, форматирование чисел и конструктор query-строки.",{"title":311,"path":312,"stem":313,"restApiVersion":15,"category":303,"description":314,"badge":15},"Type","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-type","docs\u002F2.working-with-the-rest-api\u002F80.tools-type","Runtime type guards — строки, числа, обычные объекты, массивы, DOM-узлы, Blob, FormData, формы JSON-RPC сообщений.",{"title":316,"path":317,"stem":318,"restApiVersion":15,"category":303,"description":319,"badge":15},"useFormatter","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-use-formatters","docs\u002F2.working-with-the-rest-api\u002F80.tools-use-formatters","Composable, возвращающий общие экземпляры `FormatterNumbers` и `FormatterIban`, преднастроенные спецификациями стран.",{"title":321,"path":322,"stem":323,"restApiVersion":15,"category":324,"description":325,"badge":15},"IResult","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftypes-iresult","docs\u002F2.working-with-the-rest-api\u002F90.types-iresult","Types","Обобщённый интерфейс результата операции. Реализуется `Result\u003CT>` и (транзитивно) `AjaxResult\u003CT>`.",{"title":327,"path":328,"stem":329,"restApiVersion":15,"category":324,"description":330,"badge":15},"TypeB24","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftypes-type-b24","docs\u002F2.working-with-the-rest-api\u002F90.types-type-b24","Публичный контракт, реализуемый каждым классом-точкой входа (B24Frame, B24Hook, B24OAuth). Единый источник истины для поверхности SDK.",{"title":332,"path":333,"stem":334,"restApiVersion":15,"category":265,"description":335,"badge":15},"Телеметрия","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftelemetry","docs\u002F2.working-with-the-rest-api\u002F95.telemetry","Query-параметры request id, версии SDK и типа SDK, добавляемые к каждому REST-вызову Bitrix24.",{"title":337,"path":338,"stem":339,"restApiVersion":15,"category":265,"description":340,"badge":15},"Коды ошибок","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ferror-codes","docs\u002F2.working-with-the-rest-api\u002F96.error-codes","Каталог кодов ошибок, которые распознаёт SDK — разделённых на «hard» (выбрасываются) и «soft» (возвращаются как AjaxError внутри AjaxResult).",{"title":342,"path":343,"stem":344,"restApiVersion":15,"category":303,"description":345,"badge":15},"HealthCheck","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-health-check","docs\u002F2.working-with-the-rest-api\u002Ftools-health-check","Метод для проверки доступности REST API Bitrix24. Выполняет простой запрос к REST API для проверки работоспособности сервиса.",{"title":347,"path":348,"stem":349,"restApiVersion":15,"category":303,"description":350,"badge":15},"Ping","\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-ping","docs\u002F2.working-with-the-rest-api\u002Ftools-ping","Метод для измерения скорости ответа REST API Bitrix24. Выполняет тестовый запрос и возвращает время ответа в миллисекундах.",{"title":352,"path":353,"stem":354,"children":355,"restApiVersion":15,"category":15,"description":15,"badge":15},"Примеры","\u002Fdocs\u002Fexamples","docs\u002F99.examples\u002F0.index",[356,358,364,369,374,379,384,389,394,399,404,409,414,419,424,429,434,439,444,449,454],{"title":84,"path":353,"stem":354,"restApiVersion":15,"category":15,"description":357,"badge":15},"Рецепты, сочетающие SDK с реалистичными сценариями — аналитика CRM, массовые рассылки, AI-ассистенты, установка по OAuth и не только. Каждый рецепт — отдельный файл, удобный для копирования.",{"title":359,"path":360,"stem":361,"restApiVersion":15,"category":362,"description":363,"badge":15},"Аналитика CRM","\u002Fdocs\u002Fexamples\u002Fcrm-analytics","docs\u002F99.examples\u002F1.crm-analytics","examples","Стримит все сделки через actions.v2.fetchList.make, группирует по стадиям, печатает отчёт по воронке (количество, конверсия %, средний чек, win rate).",{"title":365,"path":366,"stem":367,"restApiVersion":15,"category":362,"description":368,"badge":15},"Сделки → CSV","\u002Fdocs\u002Fexamples\u002Fdashboard-deals-csv","docs\u002F99.examples\u002F1.dashboard-deals-csv","Стримит каждую сделку CRM, подходящую под фильтр по дате, в CSV-файл через вебхук и FetchListV2.",{"title":370,"path":371,"stem":372,"restApiVersion":15,"category":15,"description":373,"badge":15},"Список сущностей","\u002Fdocs\u002Fexamples\u002Fentity-list","docs\u002F99.examples\u002F10.entity-list","Рендерит постраничный список сущностей Bitrix24 с компонентами B24UI и SDK-действием callList.",{"title":375,"path":376,"stem":377,"restApiVersion":15,"category":362,"description":378,"badge":15},"Обработка ошибок","\u002Fdocs\u002Fexamples\u002Ferror-handling","docs\u002F99.examples\u002F10.error-handling","Демонстрирует четыре слоя ошибок (SdkError \u002F AjaxError \u002F сетевые \u002F soft) и настройки hardErrorCodes \u002F softErrorCodes \u002F retryOnNetworkError у менеджера ограничений.",{"title":380,"path":381,"stem":382,"restApiVersion":15,"category":362,"description":383,"badge":15},"Регистрация событий","\u002Fdocs\u002Fexamples\u002Fevent-registration","docs\u002F99.examples\u002F11.event-registration","CLI-инструмент — список, привязка и отвязка исходящих событий вебхуков Bitrix24 через event.get \u002F event.bind \u002F event.unbind. В паре с рецептом обработчика вебхуков.",{"title":385,"path":386,"stem":387,"restApiVersion":15,"category":362,"description":388,"badge":15},"Установка OAuth","\u002Fdocs\u002Fexamples\u002Foauth-install","docs\u002F99.examples\u002F12.oauth-install","Express-сервер, который обрабатывает события ONAPPINSTALL \u002F ONAPPUPDATE \u002F ONAPPUNINSTALL для маркетплейс-приложения Bitrix24, сохраняет токены по порталам и создаёт клиент B24OAuth по требованию с callback обновления, подключённым к хранилищу.",{"title":390,"path":391,"stem":392,"restApiVersion":15,"category":362,"description":393,"badge":15},"Скелет frame-приложения","\u002Fdocs\u002Fexamples\u002Fframe-app-skeleton","docs\u002F99.examples\u002F2.frame-app-skeleton","Минимально жизнеспособное iframe-приложение Bitrix24: рукопожатие init, установка заголовка, сохранение состояния приложения, открытие слайдера, чистое закрытие.",{"title":395,"path":396,"stem":397,"restApiVersion":15,"category":362,"description":398,"badge":15},"Массовые рассылки","\u002Fdocs\u002Fexamples\u002Fmass-messaging","docs\u002F99.examples\u002F2.mass-messaging","Фильтрует контакты в CRM, персонализирует шаблон, отправляет IM-уведомления ответственным менеджерам.",{"title":400,"path":401,"stem":402,"restApiVersion":15,"category":15,"description":403,"badge":15},"Мастер установки","\u002Fdocs\u002Fexamples\u002Fapp-installation-wizard","docs\u002F99.examples\u002F20.app-installation-wizard","Многошаговый процесс установки, который создаёт пользовательские поля, регистрирует placement-ы, финализирует установку и празднует конфетти.",{"title":405,"path":406,"stem":407,"restApiVersion":15,"category":362,"description":408,"badge":15},"Автоматизация задач","\u002Fdocs\u002Fexamples\u002Ftask-automation","docs\u002F99.examples\u002F3.task-automation","Опрашивает стадии сделок каждые 60 с. При отслеживаемом переходе создаёт задачу с описанием, дедлайном и приоритетом.",{"title":410,"path":411,"stem":412,"restApiVersion":15,"category":362,"description":413,"badge":15},"Вебхук CLI","\u002Fdocs\u002Fexamples\u002Fwebhook-cli-node","docs\u002F99.examples\u002F3.webhook-cli-node","Node-скрипт на 30 строк, который аутентифицируется на портале Bitrix24 через входящий вебхук и печатает вызывающего пользователя — полезно как первое, что вы запускаете после создания вебхука.",{"title":415,"path":416,"stem":417,"restApiVersion":15,"category":15,"description":418,"badge":15},"Экспорт Node + Hook","\u002Fdocs\u002Fexamples\u002Fnode-hook-company-export","docs\u002F99.examples\u002F30.node-hook-company-export","Экспорт компаний Bitrix24 в CSV-файл из чистого Node.js-скрипта через B24Hook.",{"title":420,"path":421,"stem":422,"restApiVersion":15,"category":362,"description":423,"badge":15},"Массовое обновление","\u002Fdocs\u002Fexamples\u002Fbulk-update-deals","docs\u002F99.examples\u002F4.bulk-update-deals","Переносит тысячи сделок CRM на новую стадию через BatchByChunkV2 — автоматическое разбиение на чанки, обработка частичных ошибок и одна строка прогресса.",{"title":425,"path":426,"stem":427,"restApiVersion":15,"category":362,"description":428,"badge":15},"Синхронизация ERP","\u002Fdocs\u002Fexamples\u002Ferp-sync","docs\u002F99.examples\u002F4.erp-sync","Двусторонняя синхронизация контактов между Bitrix24 и внешней ERP. Сопоставление по ИНН (основное) или email (запасное). Cron каждый час.",{"title":430,"path":431,"stem":432,"restApiVersion":15,"category":362,"description":433,"badge":15},"Файлы Диска","\u002Fdocs\u002Fexamples\u002Fdisk-files","docs\u002F99.examples\u002F5.disk-files","Список хранилищ и содержимого папок, создание подпапок, просмотр файлов. Загрузка файлов (multipart) намеренно вне области.",{"title":435,"path":436,"stem":437,"restApiVersion":15,"category":362,"description":438,"badge":15},"Подписка на Pull","\u002Fdocs\u002Fexamples\u002Fpull-subscribe-frame","docs\u002F99.examples\u002F5.pull-subscribe-frame","Открыть живой канал из frame-приложения Bitrix24 и реагировать на push-события через useB24Helper + Pull-клиент.",{"title":440,"path":441,"stem":442,"restApiVersion":15,"category":362,"description":443,"badge":15},"Telegram-бот","\u002Fdocs\u002Fexamples\u002Ftelegram-bot","docs\u002F99.examples\u002F6.telegram-bot","Опрашивает новые сделки CRM каждые две минуты; уведомляет Telegram-чат HTML-карточкой.",{"title":445,"path":446,"stem":447,"restApiVersion":15,"category":362,"description":448,"badge":15},"Обработчик вебхуков","\u002Fdocs\u002Fexamples\u002Fwebhook-handler","docs\u002F99.examples\u002F7.webhook-handler","Express-сервер, который принимает исходящие события Bitrix24, подгружает детали через REST, маршрутизирует по имени события. Всегда возвращает 200.",{"title":450,"path":451,"stem":452,"restApiVersion":15,"category":362,"description":453,"badge":15},"AI-ассистент","\u002Fdocs\u002Fexamples\u002Fai-assistant","docs\u002F99.examples\u002F8.ai-assistant","Загружает сделку и её дела, спрашивает у GPT-4o лучшее следующее действие, создаёт задачу, привязанную к сделке, с приоритетом и дедлайном.",{"title":455,"path":456,"stem":457,"restApiVersion":15,"category":362,"description":458,"badge":15},"Веб-поиск + LLM","\u002Fdocs\u002Fexamples\u002Fweb-search-llm","docs\u002F99.examples\u002F9.web-search-llm","Двухшаговый RAG: запрос к любому провайдеру веб-поиска, прогон результата через ваш LLM с цитатами [N], публикация ответа комментарием в таймлайн CRM на сделке.",{"id":460,"title":10,"audited":15,"badge":15,"body":461,"category":15,"description":16,"extension":4654,"links":15,"meta":4655,"navigation":15,"path":11,"restApiVersion":15,"seo":4656,"stem":12,"__hash__":4657},"docs\u002Fdocs\u002F1.getting-started\u002F1.index.md",{"type":462,"value":463,"toc":4635},"minimark",[464,471,476,479,483,486,546,551,554,557,1285,1289,1292,1900,1904,1907,2420,2424,2428,2431,2824,2828,3341,3345,3348,4152,4156,4160,4339,4343,4346,4527,4531,4587,4591,4618,4621,4631],[465,466,467],"warning",{},[468,469,470],"p",{},"Эта страница ещё обновляется. Некоторые данные могут отсутствовать — мы их вскоре дополним.",[472,473,475],"h2",{"id":474},"overview","Обзор",[468,477,478],{},"SDK для работы с REST API Bitrix24 предоставляет единый интерфейс для взаимодействия с API Bitrix24 из JavaScript\u002FTypeScript-приложений. Эта страница поможет вам быстро начать работу с библиотекой.",[472,480,482],{"id":481},"choosing-the-appropriate-class","Выбор подходящего класса",[468,484,485],{},"Выберите класс в зависимости от сценария использования:",[487,488,489,505],"table",{},[490,491,492],"thead",{},[493,494,495,499,502],"tr",{},[496,497,498],"th",{},"Сценарий",[496,500,501],{},"Класс",[496,503,504],{},"Описание",[506,507,508,522,534],"tbody",{},[493,509,510,514,519],{},[511,512,513],"td",{},"Приложение, встроенное в интерфейс Bitrix24",[511,515,516],{},[517,518,133],"code",{},[511,520,521],{},"Автоматически доступен в iframe, использует токен текущего пользователя",[493,523,524,527,531],{},[511,525,526],{},"Автономное серверное приложение с вебхуком",[511,528,529],{},[517,530,117],{},[511,532,533],{},"Использует постоянный токен вебхука для серверных приложений",[493,535,536,539,543],{},[511,537,538],{},"Автономное серверное приложение с OAuth",[511,540,541],{},[517,542,180],{},[511,544,545],{},"Использует OAuth 2.0 с возможностью обновления токена",[547,548,550],"h3",{"id":549},"for-client-applications-b24frame","Для клиентских приложений (B24Frame)",[468,552,553],{},"Если вы разрабатываете приложение, которое будет работать внутри интерфейса Bitrix24:",[468,555,556],{},"\u002F\u002F @check-ignore: declares own $b24 with B24Frame type without import",[558,559,564],"pre",{"className":560,"code":561,"language":562,"meta":563,"style":563},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F В приложении, встроенном в Bitrix24\n\nlet $b24: undefined | B24Frame\n\nasync function getCurrentUser() {\n  if (!$b24) {\n    return\n  }\n  try {\n    const response = await $b24.actions.v2.call.make({\n      method: 'user.current',\n      requestId: 'get-current-user'\n    })\n\n    if (response.isSuccess) {\n      const user = response.getData()\n      console.log('Current user:', user)\n      return user\n    } else {\n      console.error('Error:', response.getErrorMessages())\n    }\n  } catch (error) {\n    console.error('Unexpected error:', error)\n  }\n}\n\n\u002F\u002F Пример получения списка контактов\nasync function getContacts() {\n  if (!$b24) {\n    return\n  }\n  const response = await $b24.actions.v2.callList.make({\n    method: 'crm.contact.list',\n    params: {\n      filter: { '>ID': 0 },\n      select: ['ID', 'NAME', 'LAST_NAME', 'EMAIL']\n    },\n    idKey: 'ID',\n    requestId: 'get-all-contacts'\n  })\n\n  if (response.isSuccess) {\n    return response.getData()\n  }\n  return []\n}\n\nasync function init() {\n  $b24 = await initializeB24Frame()\n}\n\nawait init()\n","ts","",[517,565,566,575,582,607,612,631,654,660,666,674,716,737,753,762,767,787,808,835,844,854,885,891,908,934,939,945,950,956,970,985,990,995,1030,1047,1057,1084,1132,1138,1154,1169,1176,1181,1198,1212,1217,1226,1231,1236,1250,1265,1270,1275],{"__ignoreMap":563},[567,568,571],"span",{"class":569,"line":570},"line",1,[567,572,574],{"class":573},"sHwdD","\u002F\u002F В приложении, встроенном в Bitrix24\n",[567,576,578],{"class":569,"line":577},2,[567,579,581],{"emptyLinePlaceholder":580},true,"\n",[567,583,585,589,593,597,601,604],{"class":569,"line":584},3,[567,586,588],{"class":587},"spNyl","let",[567,590,592],{"class":591},"sTEyZ"," $b24",[567,594,596],{"class":595},"sMK4o",":",[567,598,600],{"class":599},"sBMFI"," undefined",[567,602,603],{"class":595}," |",[567,605,606],{"class":599}," B24Frame\n",[567,608,610],{"class":569,"line":609},4,[567,611,581],{"emptyLinePlaceholder":580},[567,613,615,618,621,625,628],{"class":569,"line":614},5,[567,616,617],{"class":587},"async",[567,619,620],{"class":587}," function",[567,622,624],{"class":623},"s2Zo4"," getCurrentUser",[567,626,627],{"class":595},"()",[567,629,630],{"class":595}," {\n",[567,632,634,638,642,645,648,651],{"class":569,"line":633},6,[567,635,637],{"class":636},"s7zQu","  if",[567,639,641],{"class":640},"swJcz"," (",[567,643,644],{"class":595},"!",[567,646,647],{"class":591},"$b24",[567,649,650],{"class":640},") ",[567,652,653],{"class":595},"{\n",[567,655,657],{"class":569,"line":656},7,[567,658,659],{"class":636},"    return\n",[567,661,663],{"class":569,"line":662},8,[567,664,665],{"class":595},"  }\n",[567,667,669,672],{"class":569,"line":668},9,[567,670,671],{"class":636},"  try",[567,673,630],{"class":595},[567,675,677,680,683,686,689,691,694,696,698,701,703,706,708,711,714],{"class":569,"line":676},10,[567,678,679],{"class":587},"    const",[567,681,682],{"class":591}," response",[567,684,685],{"class":595}," =",[567,687,688],{"class":636}," await",[567,690,592],{"class":591},[567,692,693],{"class":595},".",[567,695,91],{"class":591},[567,697,693],{"class":595},[567,699,700],{"class":591},"v2",[567,702,693],{"class":595},[567,704,705],{"class":591},"call",[567,707,693],{"class":595},[567,709,710],{"class":623},"make",[567,712,713],{"class":640},"(",[567,715,653],{"class":595},[567,717,719,722,724,727,731,734],{"class":569,"line":718},11,[567,720,721],{"class":640},"      method",[567,723,596],{"class":595},[567,725,726],{"class":595}," '",[567,728,730],{"class":729},"sfazB","user.current",[567,732,733],{"class":595},"'",[567,735,736],{"class":595},",\n",[567,738,740,743,745,747,750],{"class":569,"line":739},12,[567,741,742],{"class":640},"      requestId",[567,744,596],{"class":595},[567,746,726],{"class":595},[567,748,749],{"class":729},"get-current-user",[567,751,752],{"class":595},"'\n",[567,754,756,759],{"class":569,"line":755},13,[567,757,758],{"class":595},"    }",[567,760,761],{"class":640},")\n",[567,763,765],{"class":569,"line":764},14,[567,766,581],{"emptyLinePlaceholder":580},[567,768,770,773,775,778,780,783,785],{"class":569,"line":769},15,[567,771,772],{"class":636},"    if",[567,774,641],{"class":640},[567,776,777],{"class":591},"response",[567,779,693],{"class":595},[567,781,782],{"class":591},"isSuccess",[567,784,650],{"class":640},[567,786,653],{"class":595},[567,788,790,793,796,798,800,802,805],{"class":569,"line":789},16,[567,791,792],{"class":587},"      const",[567,794,795],{"class":591}," user",[567,797,685],{"class":595},[567,799,682],{"class":591},[567,801,693],{"class":595},[567,803,804],{"class":623},"getData",[567,806,807],{"class":640},"()\n",[567,809,811,814,816,819,821,823,826,828,831,833],{"class":569,"line":810},17,[567,812,813],{"class":591},"      console",[567,815,693],{"class":595},[567,817,818],{"class":623},"log",[567,820,713],{"class":640},[567,822,733],{"class":595},[567,824,825],{"class":729},"Current user:",[567,827,733],{"class":595},[567,829,830],{"class":595},",",[567,832,795],{"class":591},[567,834,761],{"class":640},[567,836,838,841],{"class":569,"line":837},18,[567,839,840],{"class":636},"      return",[567,842,843],{"class":591}," user\n",[567,845,847,849,852],{"class":569,"line":846},19,[567,848,758],{"class":595},[567,850,851],{"class":636}," else",[567,853,630],{"class":595},[567,855,857,859,861,864,866,868,871,873,875,877,879,882],{"class":569,"line":856},20,[567,858,813],{"class":591},[567,860,693],{"class":595},[567,862,863],{"class":623},"error",[567,865,713],{"class":640},[567,867,733],{"class":595},[567,869,870],{"class":729},"Error:",[567,872,733],{"class":595},[567,874,830],{"class":595},[567,876,682],{"class":591},[567,878,693],{"class":595},[567,880,881],{"class":623},"getErrorMessages",[567,883,884],{"class":640},"())\n",[567,886,888],{"class":569,"line":887},21,[567,889,890],{"class":595},"    }\n",[567,892,894,897,900,902,904,906],{"class":569,"line":893},22,[567,895,896],{"class":595},"  }",[567,898,899],{"class":636}," catch",[567,901,641],{"class":640},[567,903,863],{"class":591},[567,905,650],{"class":640},[567,907,653],{"class":595},[567,909,911,914,916,918,920,922,925,927,929,932],{"class":569,"line":910},23,[567,912,913],{"class":591},"    console",[567,915,693],{"class":595},[567,917,863],{"class":623},[567,919,713],{"class":640},[567,921,733],{"class":595},[567,923,924],{"class":729},"Unexpected error:",[567,926,733],{"class":595},[567,928,830],{"class":595},[567,930,931],{"class":591}," error",[567,933,761],{"class":640},[567,935,937],{"class":569,"line":936},24,[567,938,665],{"class":595},[567,940,942],{"class":569,"line":941},25,[567,943,944],{"class":595},"}\n",[567,946,948],{"class":569,"line":947},26,[567,949,581],{"emptyLinePlaceholder":580},[567,951,953],{"class":569,"line":952},27,[567,954,955],{"class":573},"\u002F\u002F Пример получения списка контактов\n",[567,957,959,961,963,966,968],{"class":569,"line":958},28,[567,960,617],{"class":587},[567,962,620],{"class":587},[567,964,965],{"class":623}," getContacts",[567,967,627],{"class":595},[567,969,630],{"class":595},[567,971,973,975,977,979,981,983],{"class":569,"line":972},29,[567,974,637],{"class":636},[567,976,641],{"class":640},[567,978,644],{"class":595},[567,980,647],{"class":591},[567,982,650],{"class":640},[567,984,653],{"class":595},[567,986,988],{"class":569,"line":987},30,[567,989,659],{"class":636},[567,991,993],{"class":569,"line":992},31,[567,994,665],{"class":595},[567,996,998,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1022,1024,1026,1028],{"class":569,"line":997},32,[567,999,1000],{"class":587},"  const",[567,1002,682],{"class":591},[567,1004,685],{"class":595},[567,1006,688],{"class":636},[567,1008,592],{"class":591},[567,1010,693],{"class":595},[567,1012,91],{"class":591},[567,1014,693],{"class":595},[567,1016,700],{"class":591},[567,1018,693],{"class":595},[567,1020,1021],{"class":591},"callList",[567,1023,693],{"class":595},[567,1025,710],{"class":623},[567,1027,713],{"class":640},[567,1029,653],{"class":595},[567,1031,1033,1036,1038,1040,1043,1045],{"class":569,"line":1032},33,[567,1034,1035],{"class":640},"    method",[567,1037,596],{"class":595},[567,1039,726],{"class":595},[567,1041,1042],{"class":729},"crm.contact.list",[567,1044,733],{"class":595},[567,1046,736],{"class":595},[567,1048,1050,1053,1055],{"class":569,"line":1049},34,[567,1051,1052],{"class":640},"    params",[567,1054,596],{"class":595},[567,1056,630],{"class":595},[567,1058,1060,1063,1065,1068,1070,1073,1075,1077,1081],{"class":569,"line":1059},35,[567,1061,1062],{"class":640},"      filter",[567,1064,596],{"class":595},[567,1066,1067],{"class":595}," {",[567,1069,726],{"class":595},[567,1071,1072],{"class":640},">ID",[567,1074,733],{"class":595},[567,1076,596],{"class":595},[567,1078,1080],{"class":1079},"sbssI"," 0",[567,1082,1083],{"class":595}," },\n",[567,1085,1087,1090,1092,1095,1097,1100,1102,1104,1106,1109,1111,1113,1115,1118,1120,1122,1124,1127,1129],{"class":569,"line":1086},36,[567,1088,1089],{"class":640},"      select",[567,1091,596],{"class":595},[567,1093,1094],{"class":640}," [",[567,1096,733],{"class":595},[567,1098,1099],{"class":729},"ID",[567,1101,733],{"class":595},[567,1103,830],{"class":595},[567,1105,726],{"class":595},[567,1107,1108],{"class":729},"NAME",[567,1110,733],{"class":595},[567,1112,830],{"class":595},[567,1114,726],{"class":595},[567,1116,1117],{"class":729},"LAST_NAME",[567,1119,733],{"class":595},[567,1121,830],{"class":595},[567,1123,726],{"class":595},[567,1125,1126],{"class":729},"EMAIL",[567,1128,733],{"class":595},[567,1130,1131],{"class":640},"]\n",[567,1133,1135],{"class":569,"line":1134},37,[567,1136,1137],{"class":595},"    },\n",[567,1139,1141,1144,1146,1148,1150,1152],{"class":569,"line":1140},38,[567,1142,1143],{"class":640},"    idKey",[567,1145,596],{"class":595},[567,1147,726],{"class":595},[567,1149,1099],{"class":729},[567,1151,733],{"class":595},[567,1153,736],{"class":595},[567,1155,1157,1160,1162,1164,1167],{"class":569,"line":1156},39,[567,1158,1159],{"class":640},"    requestId",[567,1161,596],{"class":595},[567,1163,726],{"class":595},[567,1165,1166],{"class":729},"get-all-contacts",[567,1168,752],{"class":595},[567,1170,1172,1174],{"class":569,"line":1171},40,[567,1173,896],{"class":595},[567,1175,761],{"class":640},[567,1177,1179],{"class":569,"line":1178},41,[567,1180,581],{"emptyLinePlaceholder":580},[567,1182,1184,1186,1188,1190,1192,1194,1196],{"class":569,"line":1183},42,[567,1185,637],{"class":636},[567,1187,641],{"class":640},[567,1189,777],{"class":591},[567,1191,693],{"class":595},[567,1193,782],{"class":591},[567,1195,650],{"class":640},[567,1197,653],{"class":595},[567,1199,1201,1204,1206,1208,1210],{"class":569,"line":1200},43,[567,1202,1203],{"class":636},"    return",[567,1205,682],{"class":591},[567,1207,693],{"class":595},[567,1209,804],{"class":623},[567,1211,807],{"class":640},[567,1213,1215],{"class":569,"line":1214},44,[567,1216,665],{"class":595},[567,1218,1220,1223],{"class":569,"line":1219},45,[567,1221,1222],{"class":636},"  return",[567,1224,1225],{"class":640}," []\n",[567,1227,1229],{"class":569,"line":1228},46,[567,1230,944],{"class":595},[567,1232,1234],{"class":569,"line":1233},47,[567,1235,581],{"emptyLinePlaceholder":580},[567,1237,1239,1241,1243,1246,1248],{"class":569,"line":1238},48,[567,1240,617],{"class":587},[567,1242,620],{"class":587},[567,1244,1245],{"class":623}," init",[567,1247,627],{"class":595},[567,1249,630],{"class":595},[567,1251,1253,1256,1258,1260,1263],{"class":569,"line":1252},49,[567,1254,1255],{"class":591},"  $b24",[567,1257,685],{"class":595},[567,1259,688],{"class":636},[567,1261,1262],{"class":623}," initializeB24Frame",[567,1264,807],{"class":640},[567,1266,1268],{"class":569,"line":1267},50,[567,1269,944],{"class":595},[567,1271,1273],{"class":569,"line":1272},51,[567,1274,581],{"emptyLinePlaceholder":580},[567,1276,1278,1281,1283],{"class":569,"line":1277},52,[567,1279,1280],{"class":636},"await",[567,1282,1245],{"class":623},[567,1284,807],{"class":591},[547,1286,1288],{"id":1287},"for-server-applications-with-webhook-b24hook","Для серверных приложений с вебхуком (B24Hook)",[468,1290,1291],{},"Для серверных приложений с постоянным доступом через вебхук:",[558,1293,1295],{"className":560,"code":1294,"language":562,"meta":563,"style":563},"import { B24Hook } from '@bitrix24\u002Fb24jssdk'\n\n\u002F\u002F 1. Получите URL вебхука в Bitrix24:\n\u002F\u002F    - Перейдите в Bitrix24\n\u002F\u002F    - Настройки → Разработчикам → Вебхуки\n\u002F\u002F    - Создайте новый вебхук с необходимыми правами\n\u002F\u002F    - Скопируйте URL в формате: https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F\n\n\u002F\u002F 2. Инициализируйте B24Hook\nconst $b24 = B24Hook.fromWebhookUrl('https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F')\n\n\u002F\u002F 3. Используйте методы API\nasync function getCompany(companyId: number) {\n  const response = await $b24.actions.v2.call.make({\n    method: 'crm.company.get',\n    params: { id: companyId },\n    requestId: `get-company-${companyId}`\n  })\n\n  if (response.isSuccess) {\n    return response.getData()\n  } else {\n    throw new Error(`Error getting company: ${response.getErrorMessages().join(', ')}`)\n  }\n}\n\n\u002F\u002F Пример массового создания сделок\nasync function createMultipleDeals(dealsData: Array\u003C{title: string, opportunity: number}>) {\n  const calls = dealsData.map((deal, index): [string, Record\u003Cstring, unknown>] => [\n    'crm.deal.add',\n    {\n      fields: {\n        TITLE: deal.title,\n        OPPORTUNITY: deal.opportunity,\n        CATEGORY_ID: 0\n      }\n    }\n  ])\n\n  const response = await $b24.actions.v2.batchByChunk.make({\n    calls,\n    options: {\n      requestId: 'bulk-create-deals'\n    }\n  })\n\n  return response\n}\n",[517,1296,1297,1320,1324,1329,1334,1339,1344,1349,1353,1358,1387,1391,1396,1421,1453,1468,1486,1506,1512,1516,1532,1544,1552,1602,1606,1610,1614,1619,1663,1727,1739,1744,1753,1769,1785,1795,1800,1804,1809,1813,1846,1853,1862,1875,1879,1885,1889,1896],{"__ignoreMap":563},[567,1298,1299,1302,1304,1307,1310,1313,1315,1318],{"class":569,"line":570},[567,1300,1301],{"class":636},"import",[567,1303,1067],{"class":595},[567,1305,1306],{"class":591}," B24Hook",[567,1308,1309],{"class":595}," }",[567,1311,1312],{"class":636}," from",[567,1314,726],{"class":595},[567,1316,1317],{"class":729},"@bitrix24\u002Fb24jssdk",[567,1319,752],{"class":595},[567,1321,1322],{"class":569,"line":577},[567,1323,581],{"emptyLinePlaceholder":580},[567,1325,1326],{"class":569,"line":584},[567,1327,1328],{"class":573},"\u002F\u002F 1. Получите URL вебхука в Bitrix24:\n",[567,1330,1331],{"class":569,"line":609},[567,1332,1333],{"class":573},"\u002F\u002F    - Перейдите в Bitrix24\n",[567,1335,1336],{"class":569,"line":614},[567,1337,1338],{"class":573},"\u002F\u002F    - Настройки → Разработчикам → Вебхуки\n",[567,1340,1341],{"class":569,"line":633},[567,1342,1343],{"class":573},"\u002F\u002F    - Создайте новый вебхук с необходимыми правами\n",[567,1345,1346],{"class":569,"line":656},[567,1347,1348],{"class":573},"\u002F\u002F    - Скопируйте URL в формате: https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F\n",[567,1350,1351],{"class":569,"line":662},[567,1352,581],{"emptyLinePlaceholder":580},[567,1354,1355],{"class":569,"line":668},[567,1356,1357],{"class":573},"\u002F\u002F 2. Инициализируйте B24Hook\n",[567,1359,1360,1363,1366,1369,1371,1373,1376,1378,1380,1383,1385],{"class":569,"line":676},[567,1361,1362],{"class":587},"const",[567,1364,1365],{"class":591}," $b24 ",[567,1367,1368],{"class":595},"=",[567,1370,1306],{"class":591},[567,1372,693],{"class":595},[567,1374,1375],{"class":623},"fromWebhookUrl",[567,1377,713],{"class":591},[567,1379,733],{"class":595},[567,1381,1382],{"class":729},"https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F",[567,1384,733],{"class":595},[567,1386,761],{"class":591},[567,1388,1389],{"class":569,"line":718},[567,1390,581],{"emptyLinePlaceholder":580},[567,1392,1393],{"class":569,"line":739},[567,1394,1395],{"class":573},"\u002F\u002F 3. Используйте методы API\n",[567,1397,1398,1400,1402,1405,1407,1411,1413,1416,1419],{"class":569,"line":755},[567,1399,617],{"class":587},[567,1401,620],{"class":587},[567,1403,1404],{"class":623}," getCompany",[567,1406,713],{"class":595},[567,1408,1410],{"class":1409},"sHdIc","companyId",[567,1412,596],{"class":595},[567,1414,1415],{"class":599}," number",[567,1417,1418],{"class":595},")",[567,1420,630],{"class":595},[567,1422,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451],{"class":569,"line":764},[567,1424,1000],{"class":587},[567,1426,682],{"class":591},[567,1428,685],{"class":595},[567,1430,688],{"class":636},[567,1432,592],{"class":591},[567,1434,693],{"class":595},[567,1436,91],{"class":591},[567,1438,693],{"class":595},[567,1440,700],{"class":591},[567,1442,693],{"class":595},[567,1444,705],{"class":591},[567,1446,693],{"class":595},[567,1448,710],{"class":623},[567,1450,713],{"class":640},[567,1452,653],{"class":595},[567,1454,1455,1457,1459,1461,1464,1466],{"class":569,"line":769},[567,1456,1035],{"class":640},[567,1458,596],{"class":595},[567,1460,726],{"class":595},[567,1462,1463],{"class":729},"crm.company.get",[567,1465,733],{"class":595},[567,1467,736],{"class":595},[567,1469,1470,1472,1474,1476,1479,1481,1484],{"class":569,"line":789},[567,1471,1052],{"class":640},[567,1473,596],{"class":595},[567,1475,1067],{"class":595},[567,1477,1478],{"class":640}," id",[567,1480,596],{"class":595},[567,1482,1483],{"class":591}," companyId",[567,1485,1083],{"class":595},[567,1487,1488,1490,1492,1495,1498,1501,1503],{"class":569,"line":810},[567,1489,1159],{"class":640},[567,1491,596],{"class":595},[567,1493,1494],{"class":595}," `",[567,1496,1497],{"class":729},"get-company-",[567,1499,1500],{"class":595},"${",[567,1502,1410],{"class":591},[567,1504,1505],{"class":595},"}`\n",[567,1507,1508,1510],{"class":569,"line":837},[567,1509,896],{"class":595},[567,1511,761],{"class":640},[567,1513,1514],{"class":569,"line":846},[567,1515,581],{"emptyLinePlaceholder":580},[567,1517,1518,1520,1522,1524,1526,1528,1530],{"class":569,"line":856},[567,1519,637],{"class":636},[567,1521,641],{"class":640},[567,1523,777],{"class":591},[567,1525,693],{"class":595},[567,1527,782],{"class":591},[567,1529,650],{"class":640},[567,1531,653],{"class":595},[567,1533,1534,1536,1538,1540,1542],{"class":569,"line":887},[567,1535,1203],{"class":636},[567,1537,682],{"class":591},[567,1539,693],{"class":595},[567,1541,804],{"class":623},[567,1543,807],{"class":640},[567,1545,1546,1548,1550],{"class":569,"line":893},[567,1547,896],{"class":595},[567,1549,851],{"class":636},[567,1551,630],{"class":595},[567,1553,1554,1557,1560,1563,1565,1568,1571,1573,1575,1577,1579,1581,1583,1586,1588,1590,1593,1595,1597,1600],{"class":569,"line":910},[567,1555,1556],{"class":636},"    throw",[567,1558,1559],{"class":595}," new",[567,1561,1562],{"class":623}," Error",[567,1564,713],{"class":640},[567,1566,1567],{"class":595},"`",[567,1569,1570],{"class":729},"Error getting company: ",[567,1572,1500],{"class":595},[567,1574,777],{"class":591},[567,1576,693],{"class":595},[567,1578,881],{"class":623},[567,1580,627],{"class":591},[567,1582,693],{"class":595},[567,1584,1585],{"class":623},"join",[567,1587,713],{"class":591},[567,1589,733],{"class":595},[567,1591,1592],{"class":729},", ",[567,1594,733],{"class":595},[567,1596,1418],{"class":591},[567,1598,1599],{"class":595},"}`",[567,1601,761],{"class":640},[567,1603,1604],{"class":569,"line":936},[567,1605,665],{"class":595},[567,1607,1608],{"class":569,"line":941},[567,1609,944],{"class":595},[567,1611,1612],{"class":569,"line":947},[567,1613,581],{"emptyLinePlaceholder":580},[567,1615,1616],{"class":569,"line":952},[567,1617,1618],{"class":573},"\u002F\u002F Пример массового создания сделок\n",[567,1620,1621,1623,1625,1628,1630,1633,1635,1638,1641,1644,1646,1649,1651,1654,1656,1658,1661],{"class":569,"line":958},[567,1622,617],{"class":587},[567,1624,620],{"class":587},[567,1626,1627],{"class":623}," createMultipleDeals",[567,1629,713],{"class":595},[567,1631,1632],{"class":1409},"dealsData",[567,1634,596],{"class":595},[567,1636,1637],{"class":599}," Array",[567,1639,1640],{"class":595},"\u003C{",[567,1642,1643],{"class":640},"title",[567,1645,596],{"class":595},[567,1647,1648],{"class":599}," string",[567,1650,830],{"class":595},[567,1652,1653],{"class":640}," opportunity",[567,1655,596],{"class":595},[567,1657,1415],{"class":599},[567,1659,1660],{"class":595},"}>)",[567,1662,630],{"class":595},[567,1664,1665,1667,1670,1672,1675,1677,1680,1682,1684,1687,1689,1692,1695,1697,1700,1702,1705,1708,1710,1712,1715,1718,1721,1724],{"class":569,"line":972},[567,1666,1000],{"class":587},[567,1668,1669],{"class":591}," calls",[567,1671,685],{"class":595},[567,1673,1674],{"class":591}," dealsData",[567,1676,693],{"class":595},[567,1678,1679],{"class":623},"map",[567,1681,713],{"class":640},[567,1683,713],{"class":595},[567,1685,1686],{"class":1409},"deal",[567,1688,830],{"class":595},[567,1690,1691],{"class":1409}," index",[567,1693,1694],{"class":595},"):",[567,1696,1094],{"class":640},[567,1698,1699],{"class":599},"string",[567,1701,830],{"class":595},[567,1703,1704],{"class":599}," Record",[567,1706,1707],{"class":595},"\u003C",[567,1709,1699],{"class":599},[567,1711,830],{"class":595},[567,1713,1714],{"class":599}," unknown",[567,1716,1717],{"class":595},">",[567,1719,1720],{"class":640},"] ",[567,1722,1723],{"class":587},"=>",[567,1725,1726],{"class":640}," [\n",[567,1728,1729,1732,1735,1737],{"class":569,"line":987},[567,1730,1731],{"class":595},"    '",[567,1733,1734],{"class":729},"crm.deal.add",[567,1736,733],{"class":595},[567,1738,736],{"class":595},[567,1740,1741],{"class":569,"line":992},[567,1742,1743],{"class":595},"    {\n",[567,1745,1746,1749,1751],{"class":569,"line":997},[567,1747,1748],{"class":640},"      fields",[567,1750,596],{"class":595},[567,1752,630],{"class":595},[567,1754,1755,1758,1760,1763,1765,1767],{"class":569,"line":1032},[567,1756,1757],{"class":640},"        TITLE",[567,1759,596],{"class":595},[567,1761,1762],{"class":591}," deal",[567,1764,693],{"class":595},[567,1766,1643],{"class":591},[567,1768,736],{"class":595},[567,1770,1771,1774,1776,1778,1780,1783],{"class":569,"line":1049},[567,1772,1773],{"class":640},"        OPPORTUNITY",[567,1775,596],{"class":595},[567,1777,1762],{"class":591},[567,1779,693],{"class":595},[567,1781,1782],{"class":591},"opportunity",[567,1784,736],{"class":595},[567,1786,1787,1790,1792],{"class":569,"line":1059},[567,1788,1789],{"class":640},"        CATEGORY_ID",[567,1791,596],{"class":595},[567,1793,1794],{"class":1079}," 0\n",[567,1796,1797],{"class":569,"line":1086},[567,1798,1799],{"class":595},"      }\n",[567,1801,1802],{"class":569,"line":1134},[567,1803,890],{"class":595},[567,1805,1806],{"class":569,"line":1140},[567,1807,1808],{"class":640},"  ])\n",[567,1810,1811],{"class":569,"line":1156},[567,1812,581],{"emptyLinePlaceholder":580},[567,1814,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1838,1840,1842,1844],{"class":569,"line":1171},[567,1816,1000],{"class":587},[567,1818,682],{"class":591},[567,1820,685],{"class":595},[567,1822,688],{"class":636},[567,1824,592],{"class":591},[567,1826,693],{"class":595},[567,1828,91],{"class":591},[567,1830,693],{"class":595},[567,1832,700],{"class":591},[567,1834,693],{"class":595},[567,1836,1837],{"class":591},"batchByChunk",[567,1839,693],{"class":595},[567,1841,710],{"class":623},[567,1843,713],{"class":640},[567,1845,653],{"class":595},[567,1847,1848,1851],{"class":569,"line":1178},[567,1849,1850],{"class":591},"    calls",[567,1852,736],{"class":595},[567,1854,1855,1858,1860],{"class":569,"line":1183},[567,1856,1857],{"class":640},"    options",[567,1859,596],{"class":595},[567,1861,630],{"class":595},[567,1863,1864,1866,1868,1870,1873],{"class":569,"line":1200},[567,1865,742],{"class":640},[567,1867,596],{"class":595},[567,1869,726],{"class":595},[567,1871,1872],{"class":729},"bulk-create-deals",[567,1874,752],{"class":595},[567,1876,1877],{"class":569,"line":1214},[567,1878,890],{"class":595},[567,1880,1881,1883],{"class":569,"line":1219},[567,1882,896],{"class":595},[567,1884,761],{"class":640},[567,1886,1887],{"class":569,"line":1228},[567,1888,581],{"emptyLinePlaceholder":580},[567,1890,1891,1893],{"class":569,"line":1233},[567,1892,1222],{"class":636},[567,1894,1895],{"class":591}," response\n",[567,1897,1898],{"class":569,"line":1238},[567,1899,944],{"class":595},[547,1901,1903],{"id":1902},"for-server-applications-with-oauth-b24oauth","Для серверных приложений с OAuth (B24OAuth)",[468,1905,1906],{},"Для серверных приложений с аутентификацией через OAuth 2.0:",[558,1908,1910],{"className":560,"code":1909,"language":562,"meta":563,"style":563},"import { B24OAuth } from '@bitrix24\u002Fb24jssdk'\n\n\u002F\u002F 1. Зарегистрируйте приложение в Bitrix24:\n\u002F\u002F    - Перейдите в Bitrix24\n\u002F\u002F    - Настройки → Разработчикам → Приложения\n\u002F\u002F    - Создайте новое приложение\n\u002F\u002F    - Получите Client ID и Client Secret\n\n\u002F\u002F 2. Инициализируйте B24OAuth — передайте данные токена и OAuth-учётные данные отдельно.\n\u002F\u002F    Полную форму B24OAuthParams см. на странице справочника OAuth.\nimport { EnumAppStatus } from '@bitrix24\u002Fb24jssdk'\n\nconst $b24 = new B24OAuth(\n  {\n    applicationToken: 'current_application_token',\n    userId: 1,\n    memberId: 'portal_member_id',\n    accessToken: 'current_access_token',\n    refreshToken: 'refresh_token',\n    expires: 1745997853, \u002F\u002F unix timestamp, секунды\n    expiresIn: 3600,\n    scope: 'crm,user_brief',\n    domain: 'your-domain.bitrix24.com',\n    clientEndpoint: 'https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F',\n    serverEndpoint: 'https:\u002F\u002Foauth.bitrix.info\u002Frest\u002F',\n    status: EnumAppStatus.Free\n  },\n  {\n    clientId: 'your_client_id',\n    clientSecret: 'your_client_secret'\n  }\n)\n\n\u002F\u002F 3. Используйте методы API\nasync function getTasks() {\n  const response = await $b24.actions.v2.call.make({\n    method: 'tasks.task.list',\n    params: {\n      filter: { '>ID': 0 },\n      select: ['ID', 'TITLE', 'STATUS']\n    },\n    requestId: 'get-all-tasks'\n  })\n\n  return response\n}\n\n\u002F\u002F B24OAuth автоматически обновляет токены при их истечении\n",[517,1911,1912,1931,1935,1940,1944,1949,1954,1959,1963,1968,1973,1992,1996,2011,2016,2032,2044,2060,2076,2092,2107,2119,2135,2151,2167,2183,2197,2202,2206,2222,2236,2240,2244,2248,2252,2265,2297,2312,2320,2340,2374,2378,2391,2397,2401,2407,2411,2415],{"__ignoreMap":563},[567,1913,1914,1916,1918,1921,1923,1925,1927,1929],{"class":569,"line":570},[567,1915,1301],{"class":636},[567,1917,1067],{"class":595},[567,1919,1920],{"class":591}," B24OAuth",[567,1922,1309],{"class":595},[567,1924,1312],{"class":636},[567,1926,726],{"class":595},[567,1928,1317],{"class":729},[567,1930,752],{"class":595},[567,1932,1933],{"class":569,"line":577},[567,1934,581],{"emptyLinePlaceholder":580},[567,1936,1937],{"class":569,"line":584},[567,1938,1939],{"class":573},"\u002F\u002F 1. Зарегистрируйте приложение в Bitrix24:\n",[567,1941,1942],{"class":569,"line":609},[567,1943,1333],{"class":573},[567,1945,1946],{"class":569,"line":614},[567,1947,1948],{"class":573},"\u002F\u002F    - Настройки → Разработчикам → Приложения\n",[567,1950,1951],{"class":569,"line":633},[567,1952,1953],{"class":573},"\u002F\u002F    - Создайте новое приложение\n",[567,1955,1956],{"class":569,"line":656},[567,1957,1958],{"class":573},"\u002F\u002F    - Получите Client ID и Client Secret\n",[567,1960,1961],{"class":569,"line":662},[567,1962,581],{"emptyLinePlaceholder":580},[567,1964,1965],{"class":569,"line":668},[567,1966,1967],{"class":573},"\u002F\u002F 2. Инициализируйте B24OAuth — передайте данные токена и OAuth-учётные данные отдельно.\n",[567,1969,1970],{"class":569,"line":676},[567,1971,1972],{"class":573},"\u002F\u002F    Полную форму B24OAuthParams см. на странице справочника OAuth.\n",[567,1974,1975,1977,1979,1982,1984,1986,1988,1990],{"class":569,"line":718},[567,1976,1301],{"class":636},[567,1978,1067],{"class":595},[567,1980,1981],{"class":591}," EnumAppStatus",[567,1983,1309],{"class":595},[567,1985,1312],{"class":636},[567,1987,726],{"class":595},[567,1989,1317],{"class":729},[567,1991,752],{"class":595},[567,1993,1994],{"class":569,"line":739},[567,1995,581],{"emptyLinePlaceholder":580},[567,1997,1998,2000,2002,2004,2006,2008],{"class":569,"line":755},[567,1999,1362],{"class":587},[567,2001,1365],{"class":591},[567,2003,1368],{"class":595},[567,2005,1559],{"class":595},[567,2007,1920],{"class":623},[567,2009,2010],{"class":591},"(\n",[567,2012,2013],{"class":569,"line":764},[567,2014,2015],{"class":595},"  {\n",[567,2017,2018,2021,2023,2025,2028,2030],{"class":569,"line":769},[567,2019,2020],{"class":640},"    applicationToken",[567,2022,596],{"class":595},[567,2024,726],{"class":595},[567,2026,2027],{"class":729},"current_application_token",[567,2029,733],{"class":595},[567,2031,736],{"class":595},[567,2033,2034,2037,2039,2042],{"class":569,"line":789},[567,2035,2036],{"class":640},"    userId",[567,2038,596],{"class":595},[567,2040,2041],{"class":1079}," 1",[567,2043,736],{"class":595},[567,2045,2046,2049,2051,2053,2056,2058],{"class":569,"line":810},[567,2047,2048],{"class":640},"    memberId",[567,2050,596],{"class":595},[567,2052,726],{"class":595},[567,2054,2055],{"class":729},"portal_member_id",[567,2057,733],{"class":595},[567,2059,736],{"class":595},[567,2061,2062,2065,2067,2069,2072,2074],{"class":569,"line":837},[567,2063,2064],{"class":640},"    accessToken",[567,2066,596],{"class":595},[567,2068,726],{"class":595},[567,2070,2071],{"class":729},"current_access_token",[567,2073,733],{"class":595},[567,2075,736],{"class":595},[567,2077,2078,2081,2083,2085,2088,2090],{"class":569,"line":846},[567,2079,2080],{"class":640},"    refreshToken",[567,2082,596],{"class":595},[567,2084,726],{"class":595},[567,2086,2087],{"class":729},"refresh_token",[567,2089,733],{"class":595},[567,2091,736],{"class":595},[567,2093,2094,2097,2099,2102,2104],{"class":569,"line":856},[567,2095,2096],{"class":640},"    expires",[567,2098,596],{"class":595},[567,2100,2101],{"class":1079}," 1745997853",[567,2103,830],{"class":595},[567,2105,2106],{"class":573}," \u002F\u002F unix timestamp, секунды\n",[567,2108,2109,2112,2114,2117],{"class":569,"line":887},[567,2110,2111],{"class":640},"    expiresIn",[567,2113,596],{"class":595},[567,2115,2116],{"class":1079}," 3600",[567,2118,736],{"class":595},[567,2120,2121,2124,2126,2128,2131,2133],{"class":569,"line":893},[567,2122,2123],{"class":640},"    scope",[567,2125,596],{"class":595},[567,2127,726],{"class":595},[567,2129,2130],{"class":729},"crm,user_brief",[567,2132,733],{"class":595},[567,2134,736],{"class":595},[567,2136,2137,2140,2142,2144,2147,2149],{"class":569,"line":910},[567,2138,2139],{"class":640},"    domain",[567,2141,596],{"class":595},[567,2143,726],{"class":595},[567,2145,2146],{"class":729},"your-domain.bitrix24.com",[567,2148,733],{"class":595},[567,2150,736],{"class":595},[567,2152,2153,2156,2158,2160,2163,2165],{"class":569,"line":936},[567,2154,2155],{"class":640},"    clientEndpoint",[567,2157,596],{"class":595},[567,2159,726],{"class":595},[567,2161,2162],{"class":729},"https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F",[567,2164,733],{"class":595},[567,2166,736],{"class":595},[567,2168,2169,2172,2174,2176,2179,2181],{"class":569,"line":941},[567,2170,2171],{"class":640},"    serverEndpoint",[567,2173,596],{"class":595},[567,2175,726],{"class":595},[567,2177,2178],{"class":729},"https:\u002F\u002Foauth.bitrix.info\u002Frest\u002F",[567,2180,733],{"class":595},[567,2182,736],{"class":595},[567,2184,2185,2188,2190,2192,2194],{"class":569,"line":947},[567,2186,2187],{"class":640},"    status",[567,2189,596],{"class":595},[567,2191,1981],{"class":591},[567,2193,693],{"class":595},[567,2195,2196],{"class":591},"Free\n",[567,2198,2199],{"class":569,"line":952},[567,2200,2201],{"class":595},"  },\n",[567,2203,2204],{"class":569,"line":958},[567,2205,2015],{"class":595},[567,2207,2208,2211,2213,2215,2218,2220],{"class":569,"line":972},[567,2209,2210],{"class":640},"    clientId",[567,2212,596],{"class":595},[567,2214,726],{"class":595},[567,2216,2217],{"class":729},"your_client_id",[567,2219,733],{"class":595},[567,2221,736],{"class":595},[567,2223,2224,2227,2229,2231,2234],{"class":569,"line":987},[567,2225,2226],{"class":640},"    clientSecret",[567,2228,596],{"class":595},[567,2230,726],{"class":595},[567,2232,2233],{"class":729},"your_client_secret",[567,2235,752],{"class":595},[567,2237,2238],{"class":569,"line":992},[567,2239,665],{"class":595},[567,2241,2242],{"class":569,"line":997},[567,2243,761],{"class":591},[567,2245,2246],{"class":569,"line":1032},[567,2247,581],{"emptyLinePlaceholder":580},[567,2249,2250],{"class":569,"line":1049},[567,2251,1395],{"class":573},[567,2253,2254,2256,2258,2261,2263],{"class":569,"line":1059},[567,2255,617],{"class":587},[567,2257,620],{"class":587},[567,2259,2260],{"class":623}," getTasks",[567,2262,627],{"class":595},[567,2264,630],{"class":595},[567,2266,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295],{"class":569,"line":1086},[567,2268,1000],{"class":587},[567,2270,682],{"class":591},[567,2272,685],{"class":595},[567,2274,688],{"class":636},[567,2276,592],{"class":591},[567,2278,693],{"class":595},[567,2280,91],{"class":591},[567,2282,693],{"class":595},[567,2284,700],{"class":591},[567,2286,693],{"class":595},[567,2288,705],{"class":591},[567,2290,693],{"class":595},[567,2292,710],{"class":623},[567,2294,713],{"class":640},[567,2296,653],{"class":595},[567,2298,2299,2301,2303,2305,2308,2310],{"class":569,"line":1134},[567,2300,1035],{"class":640},[567,2302,596],{"class":595},[567,2304,726],{"class":595},[567,2306,2307],{"class":729},"tasks.task.list",[567,2309,733],{"class":595},[567,2311,736],{"class":595},[567,2313,2314,2316,2318],{"class":569,"line":1140},[567,2315,1052],{"class":640},[567,2317,596],{"class":595},[567,2319,630],{"class":595},[567,2321,2322,2324,2326,2328,2330,2332,2334,2336,2338],{"class":569,"line":1156},[567,2323,1062],{"class":640},[567,2325,596],{"class":595},[567,2327,1067],{"class":595},[567,2329,726],{"class":595},[567,2331,1072],{"class":640},[567,2333,733],{"class":595},[567,2335,596],{"class":595},[567,2337,1080],{"class":1079},[567,2339,1083],{"class":595},[567,2341,2342,2344,2346,2348,2350,2352,2354,2356,2358,2361,2363,2365,2367,2370,2372],{"class":569,"line":1171},[567,2343,1089],{"class":640},[567,2345,596],{"class":595},[567,2347,1094],{"class":640},[567,2349,733],{"class":595},[567,2351,1099],{"class":729},[567,2353,733],{"class":595},[567,2355,830],{"class":595},[567,2357,726],{"class":595},[567,2359,2360],{"class":729},"TITLE",[567,2362,733],{"class":595},[567,2364,830],{"class":595},[567,2366,726],{"class":595},[567,2368,2369],{"class":729},"STATUS",[567,2371,733],{"class":595},[567,2373,1131],{"class":640},[567,2375,2376],{"class":569,"line":1178},[567,2377,1137],{"class":595},[567,2379,2380,2382,2384,2386,2389],{"class":569,"line":1183},[567,2381,1159],{"class":640},[567,2383,596],{"class":595},[567,2385,726],{"class":595},[567,2387,2388],{"class":729},"get-all-tasks",[567,2390,752],{"class":595},[567,2392,2393,2395],{"class":569,"line":1200},[567,2394,896],{"class":595},[567,2396,761],{"class":640},[567,2398,2399],{"class":569,"line":1214},[567,2400,581],{"emptyLinePlaceholder":580},[567,2402,2403,2405],{"class":569,"line":1219},[567,2404,1222],{"class":636},[567,2406,1895],{"class":591},[567,2408,2409],{"class":569,"line":1228},[567,2410,944],{"class":595},[567,2412,2413],{"class":569,"line":1233},[567,2414,581],{"emptyLinePlaceholder":580},[567,2416,2417],{"class":569,"line":1238},[567,2418,2419],{"class":573},"\u002F\u002F B24OAuth автоматически обновляет токены при их истечении\n",[472,2421,2423],{"id":2422},"first-steps-with-api","Первые шаги с API",[547,2425,2427],{"id":2426},"simple-connection-test","Простой тест подключения",[468,2429,2430],{},"\u002F\u002F @check-ignore: partial snippet — B24Hook used without import",[558,2432,2436],{"className":2433,"code":2434,"language":2435,"meta":563,"style":563},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Проверка доступности API\nasync function testConnection() {\n  \u002F\u002F Для B24Hook или B24OAuth\n  const $b24 = B24Hook.fromWebhookUrl('https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F')\n  \n  \u002F\u002F 1. Проверьте доступность\n  const isHealthy = await $b24.tools.healthCheck.make({\n    requestId: 'health-check'\n  })\n  \n  if (!isHealthy) {\n    console.error('API unavailable. Check the webhook and connection.')\n    return\n  }\n  \n  \u002F\u002F 2. Измерьте скорость\n  const pingTime = await $b24.tools.ping.make({\n    requestId: 'ping-test'\n  })\n  \n  console.log(`API available, response time: ${pingTime}ms`)\n  \n  \u002F\u002F 3. Получите данные текущего пользователя\n  const userResponse = await $b24.actions.v2.call.make({\n    method: 'user.current',\n    requestId: 'get-current-user'\n  })\n  \n  if (userResponse.isSuccess) {\n    console.log('Current user:', userResponse.getData())\n  }\n  \n  return true\n}\n","typescript",[517,2437,2438,2443,2456,2461,2485,2490,2495,2525,2538,2544,2548,2563,2582,2586,2590,2594,2599,2629,2642,2648,2652,2683,2687,2692,2725,2739,2751,2757,2761,2778,2804,2808,2812,2820],{"__ignoreMap":563},[567,2439,2440],{"class":569,"line":570},[567,2441,2442],{"class":573},"\u002F\u002F Проверка доступности API\n",[567,2444,2445,2447,2449,2452,2454],{"class":569,"line":577},[567,2446,617],{"class":587},[567,2448,620],{"class":587},[567,2450,2451],{"class":623}," testConnection",[567,2453,627],{"class":595},[567,2455,630],{"class":595},[567,2457,2458],{"class":569,"line":584},[567,2459,2460],{"class":573},"  \u002F\u002F Для B24Hook или B24OAuth\n",[567,2462,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483],{"class":569,"line":609},[567,2464,1000],{"class":587},[567,2466,592],{"class":591},[567,2468,685],{"class":595},[567,2470,1306],{"class":591},[567,2472,693],{"class":595},[567,2474,1375],{"class":623},[567,2476,713],{"class":640},[567,2478,733],{"class":595},[567,2480,1382],{"class":729},[567,2482,733],{"class":595},[567,2484,761],{"class":640},[567,2486,2487],{"class":569,"line":614},[567,2488,2489],{"class":640},"  \n",[567,2491,2492],{"class":569,"line":633},[567,2493,2494],{"class":573},"  \u002F\u002F 1. Проверьте доступность\n",[567,2496,2497,2499,2502,2504,2506,2508,2510,2512,2514,2517,2519,2521,2523],{"class":569,"line":656},[567,2498,1000],{"class":587},[567,2500,2501],{"class":591}," isHealthy",[567,2503,685],{"class":595},[567,2505,688],{"class":636},[567,2507,592],{"class":591},[567,2509,693],{"class":595},[567,2511,303],{"class":591},[567,2513,693],{"class":595},[567,2515,2516],{"class":591},"healthCheck",[567,2518,693],{"class":595},[567,2520,710],{"class":623},[567,2522,713],{"class":640},[567,2524,653],{"class":595},[567,2526,2527,2529,2531,2533,2536],{"class":569,"line":662},[567,2528,1159],{"class":640},[567,2530,596],{"class":595},[567,2532,726],{"class":595},[567,2534,2535],{"class":729},"health-check",[567,2537,752],{"class":595},[567,2539,2540,2542],{"class":569,"line":668},[567,2541,896],{"class":595},[567,2543,761],{"class":640},[567,2545,2546],{"class":569,"line":676},[567,2547,2489],{"class":640},[567,2549,2550,2552,2554,2556,2559,2561],{"class":569,"line":718},[567,2551,637],{"class":636},[567,2553,641],{"class":640},[567,2555,644],{"class":595},[567,2557,2558],{"class":591},"isHealthy",[567,2560,650],{"class":640},[567,2562,653],{"class":595},[567,2564,2565,2567,2569,2571,2573,2575,2578,2580],{"class":569,"line":739},[567,2566,913],{"class":591},[567,2568,693],{"class":595},[567,2570,863],{"class":623},[567,2572,713],{"class":640},[567,2574,733],{"class":595},[567,2576,2577],{"class":729},"API unavailable. Check the webhook and connection.",[567,2579,733],{"class":595},[567,2581,761],{"class":640},[567,2583,2584],{"class":569,"line":755},[567,2585,659],{"class":636},[567,2587,2588],{"class":569,"line":764},[567,2589,665],{"class":595},[567,2591,2592],{"class":569,"line":769},[567,2593,2489],{"class":640},[567,2595,2596],{"class":569,"line":789},[567,2597,2598],{"class":573},"  \u002F\u002F 2. Измерьте скорость\n",[567,2600,2601,2603,2606,2608,2610,2612,2614,2616,2618,2621,2623,2625,2627],{"class":569,"line":810},[567,2602,1000],{"class":587},[567,2604,2605],{"class":591}," pingTime",[567,2607,685],{"class":595},[567,2609,688],{"class":636},[567,2611,592],{"class":591},[567,2613,693],{"class":595},[567,2615,303],{"class":591},[567,2617,693],{"class":595},[567,2619,2620],{"class":591},"ping",[567,2622,693],{"class":595},[567,2624,710],{"class":623},[567,2626,713],{"class":640},[567,2628,653],{"class":595},[567,2630,2631,2633,2635,2637,2640],{"class":569,"line":837},[567,2632,1159],{"class":640},[567,2634,596],{"class":595},[567,2636,726],{"class":595},[567,2638,2639],{"class":729},"ping-test",[567,2641,752],{"class":595},[567,2643,2644,2646],{"class":569,"line":846},[567,2645,896],{"class":595},[567,2647,761],{"class":640},[567,2649,2650],{"class":569,"line":856},[567,2651,2489],{"class":640},[567,2653,2654,2657,2659,2661,2663,2665,2668,2670,2673,2676,2679,2681],{"class":569,"line":887},[567,2655,2656],{"class":591},"  console",[567,2658,693],{"class":595},[567,2660,818],{"class":623},[567,2662,713],{"class":640},[567,2664,1567],{"class":595},[567,2666,2667],{"class":729},"API available, response time: ",[567,2669,1500],{"class":595},[567,2671,2672],{"class":591},"pingTime",[567,2674,2675],{"class":595},"}",[567,2677,2678],{"class":729},"ms",[567,2680,1567],{"class":595},[567,2682,761],{"class":640},[567,2684,2685],{"class":569,"line":893},[567,2686,2489],{"class":640},[567,2688,2689],{"class":569,"line":910},[567,2690,2691],{"class":573},"  \u002F\u002F 3. Получите данные текущего пользователя\n",[567,2693,2694,2696,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723],{"class":569,"line":936},[567,2695,1000],{"class":587},[567,2697,2698],{"class":591}," userResponse",[567,2700,685],{"class":595},[567,2702,688],{"class":636},[567,2704,592],{"class":591},[567,2706,693],{"class":595},[567,2708,91],{"class":591},[567,2710,693],{"class":595},[567,2712,700],{"class":591},[567,2714,693],{"class":595},[567,2716,705],{"class":591},[567,2718,693],{"class":595},[567,2720,710],{"class":623},[567,2722,713],{"class":640},[567,2724,653],{"class":595},[567,2726,2727,2729,2731,2733,2735,2737],{"class":569,"line":941},[567,2728,1035],{"class":640},[567,2730,596],{"class":595},[567,2732,726],{"class":595},[567,2734,730],{"class":729},[567,2736,733],{"class":595},[567,2738,736],{"class":595},[567,2740,2741,2743,2745,2747,2749],{"class":569,"line":947},[567,2742,1159],{"class":640},[567,2744,596],{"class":595},[567,2746,726],{"class":595},[567,2748,749],{"class":729},[567,2750,752],{"class":595},[567,2752,2753,2755],{"class":569,"line":952},[567,2754,896],{"class":595},[567,2756,761],{"class":640},[567,2758,2759],{"class":569,"line":958},[567,2760,2489],{"class":640},[567,2762,2763,2765,2767,2770,2772,2774,2776],{"class":569,"line":972},[567,2764,637],{"class":636},[567,2766,641],{"class":640},[567,2768,2769],{"class":591},"userResponse",[567,2771,693],{"class":595},[567,2773,782],{"class":591},[567,2775,650],{"class":640},[567,2777,653],{"class":595},[567,2779,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802],{"class":569,"line":987},[567,2781,913],{"class":591},[567,2783,693],{"class":595},[567,2785,818],{"class":623},[567,2787,713],{"class":640},[567,2789,733],{"class":595},[567,2791,825],{"class":729},[567,2793,733],{"class":595},[567,2795,830],{"class":595},[567,2797,2698],{"class":591},[567,2799,693],{"class":595},[567,2801,804],{"class":623},[567,2803,884],{"class":640},[567,2805,2806],{"class":569,"line":992},[567,2807,665],{"class":595},[567,2809,2810],{"class":569,"line":997},[567,2811,2489],{"class":640},[567,2813,2814,2816],{"class":569,"line":1032},[567,2815,1222],{"class":636},[567,2817,2819],{"class":2818},"sfNiH"," true\n",[567,2821,2822],{"class":569,"line":1049},[567,2823,944],{"class":595},[547,2825,2827],{"id":2826},"basic-crm-operations","Базовые операции с CRM",[558,2829,2831],{"className":560,"code":2830,"language":562,"meta":563,"style":563},"\u002F\u002F Создание контакта\nasync function createContact(name: string, lastName: string, email: string) {\n  const response = await $b24.actions.v2.call.make({\n    method: 'crm.contact.add',\n    params: {\n      fields: {\n        NAME: name,\n        LAST_NAME: lastName,\n        EMAIL: [{ VALUE: email, VALUE_TYPE: 'WORK' }]\n      }\n    },\n    requestId: 'create-contact'\n  })\n  \n  return response\n}\n\n\u002F\u002F Получение списка контактов\nasync function getAllContacts() {\n  const generator = $b24.actions.v2.fetchList.make({\n    method: 'crm.contact.list',\n    params: {\n      select: ['ID', 'NAME', 'LAST_NAME', 'EMAIL'],\n      order: { ID: 'ASC' }\n    },\n    idKey: 'ID',\n    requestId: 'fetch-all-contacts'\n  })\n  \n  const allContacts = []\n  for await (const chunk of generator) {\n    allContacts.push(...chunk)\n    console.log(`Loaded ${chunk.length} contacts, total: ${allContacts.length}`)\n  }\n  \n  return allContacts\n}\n",[517,2832,2833,2838,2878,2910,2925,2933,2941,2953,2964,3001,3005,3009,3022,3028,3032,3038,3042,3046,3051,3064,3096,3110,3118,3161,3185,3189,3203,3216,3222,3226,3237,3260,3280,3322,3326,3330,3337],{"__ignoreMap":563},[567,2834,2835],{"class":569,"line":570},[567,2836,2837],{"class":573},"\u002F\u002F Создание контакта\n",[567,2839,2840,2842,2844,2847,2849,2852,2854,2856,2858,2861,2863,2865,2867,2870,2872,2874,2876],{"class":569,"line":577},[567,2841,617],{"class":587},[567,2843,620],{"class":587},[567,2845,2846],{"class":623}," createContact",[567,2848,713],{"class":595},[567,2850,2851],{"class":1409},"name",[567,2853,596],{"class":595},[567,2855,1648],{"class":599},[567,2857,830],{"class":595},[567,2859,2860],{"class":1409}," lastName",[567,2862,596],{"class":595},[567,2864,1648],{"class":599},[567,2866,830],{"class":595},[567,2868,2869],{"class":1409}," email",[567,2871,596],{"class":595},[567,2873,1648],{"class":599},[567,2875,1418],{"class":595},[567,2877,630],{"class":595},[567,2879,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902,2904,2906,2908],{"class":569,"line":584},[567,2881,1000],{"class":587},[567,2883,682],{"class":591},[567,2885,685],{"class":595},[567,2887,688],{"class":636},[567,2889,592],{"class":591},[567,2891,693],{"class":595},[567,2893,91],{"class":591},[567,2895,693],{"class":595},[567,2897,700],{"class":591},[567,2899,693],{"class":595},[567,2901,705],{"class":591},[567,2903,693],{"class":595},[567,2905,710],{"class":623},[567,2907,713],{"class":640},[567,2909,653],{"class":595},[567,2911,2912,2914,2916,2918,2921,2923],{"class":569,"line":609},[567,2913,1035],{"class":640},[567,2915,596],{"class":595},[567,2917,726],{"class":595},[567,2919,2920],{"class":729},"crm.contact.add",[567,2922,733],{"class":595},[567,2924,736],{"class":595},[567,2926,2927,2929,2931],{"class":569,"line":614},[567,2928,1052],{"class":640},[567,2930,596],{"class":595},[567,2932,630],{"class":595},[567,2934,2935,2937,2939],{"class":569,"line":633},[567,2936,1748],{"class":640},[567,2938,596],{"class":595},[567,2940,630],{"class":595},[567,2942,2943,2946,2948,2951],{"class":569,"line":656},[567,2944,2945],{"class":640},"        NAME",[567,2947,596],{"class":595},[567,2949,2950],{"class":591}," name",[567,2952,736],{"class":595},[567,2954,2955,2958,2960,2962],{"class":569,"line":662},[567,2956,2957],{"class":640},"        LAST_NAME",[567,2959,596],{"class":595},[567,2961,2860],{"class":591},[567,2963,736],{"class":595},[567,2965,2966,2969,2971,2973,2976,2979,2981,2983,2985,2988,2990,2992,2995,2997,2999],{"class":569,"line":668},[567,2967,2968],{"class":640},"        EMAIL",[567,2970,596],{"class":595},[567,2972,1094],{"class":640},[567,2974,2975],{"class":595},"{",[567,2977,2978],{"class":640}," VALUE",[567,2980,596],{"class":595},[567,2982,2869],{"class":591},[567,2984,830],{"class":595},[567,2986,2987],{"class":640}," VALUE_TYPE",[567,2989,596],{"class":595},[567,2991,726],{"class":595},[567,2993,2994],{"class":729},"WORK",[567,2996,733],{"class":595},[567,2998,1309],{"class":595},[567,3000,1131],{"class":640},[567,3002,3003],{"class":569,"line":676},[567,3004,1799],{"class":595},[567,3006,3007],{"class":569,"line":718},[567,3008,1137],{"class":595},[567,3010,3011,3013,3015,3017,3020],{"class":569,"line":739},[567,3012,1159],{"class":640},[567,3014,596],{"class":595},[567,3016,726],{"class":595},[567,3018,3019],{"class":729},"create-contact",[567,3021,752],{"class":595},[567,3023,3024,3026],{"class":569,"line":755},[567,3025,896],{"class":595},[567,3027,761],{"class":640},[567,3029,3030],{"class":569,"line":764},[567,3031,2489],{"class":640},[567,3033,3034,3036],{"class":569,"line":769},[567,3035,1222],{"class":636},[567,3037,1895],{"class":591},[567,3039,3040],{"class":569,"line":789},[567,3041,944],{"class":595},[567,3043,3044],{"class":569,"line":810},[567,3045,581],{"emptyLinePlaceholder":580},[567,3047,3048],{"class":569,"line":837},[567,3049,3050],{"class":573},"\u002F\u002F Получение списка контактов\n",[567,3052,3053,3055,3057,3060,3062],{"class":569,"line":846},[567,3054,617],{"class":587},[567,3056,620],{"class":587},[567,3058,3059],{"class":623}," getAllContacts",[567,3061,627],{"class":595},[567,3063,630],{"class":595},[567,3065,3066,3068,3071,3073,3075,3077,3079,3081,3083,3085,3088,3090,3092,3094],{"class":569,"line":856},[567,3067,1000],{"class":587},[567,3069,3070],{"class":591}," generator",[567,3072,685],{"class":595},[567,3074,592],{"class":591},[567,3076,693],{"class":595},[567,3078,91],{"class":591},[567,3080,693],{"class":595},[567,3082,700],{"class":591},[567,3084,693],{"class":595},[567,3086,3087],{"class":591},"fetchList",[567,3089,693],{"class":595},[567,3091,710],{"class":623},[567,3093,713],{"class":640},[567,3095,653],{"class":595},[567,3097,3098,3100,3102,3104,3106,3108],{"class":569,"line":887},[567,3099,1035],{"class":640},[567,3101,596],{"class":595},[567,3103,726],{"class":595},[567,3105,1042],{"class":729},[567,3107,733],{"class":595},[567,3109,736],{"class":595},[567,3111,3112,3114,3116],{"class":569,"line":893},[567,3113,1052],{"class":640},[567,3115,596],{"class":595},[567,3117,630],{"class":595},[567,3119,3120,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3159],{"class":569,"line":910},[567,3121,1089],{"class":640},[567,3123,596],{"class":595},[567,3125,1094],{"class":640},[567,3127,733],{"class":595},[567,3129,1099],{"class":729},[567,3131,733],{"class":595},[567,3133,830],{"class":595},[567,3135,726],{"class":595},[567,3137,1108],{"class":729},[567,3139,733],{"class":595},[567,3141,830],{"class":595},[567,3143,726],{"class":595},[567,3145,1117],{"class":729},[567,3147,733],{"class":595},[567,3149,830],{"class":595},[567,3151,726],{"class":595},[567,3153,1126],{"class":729},[567,3155,733],{"class":595},[567,3157,3158],{"class":640},"]",[567,3160,736],{"class":595},[567,3162,3163,3166,3168,3170,3173,3175,3177,3180,3182],{"class":569,"line":936},[567,3164,3165],{"class":640},"      order",[567,3167,596],{"class":595},[567,3169,1067],{"class":595},[567,3171,3172],{"class":640}," ID",[567,3174,596],{"class":595},[567,3176,726],{"class":595},[567,3178,3179],{"class":729},"ASC",[567,3181,733],{"class":595},[567,3183,3184],{"class":595}," }\n",[567,3186,3187],{"class":569,"line":941},[567,3188,1137],{"class":595},[567,3190,3191,3193,3195,3197,3199,3201],{"class":569,"line":947},[567,3192,1143],{"class":640},[567,3194,596],{"class":595},[567,3196,726],{"class":595},[567,3198,1099],{"class":729},[567,3200,733],{"class":595},[567,3202,736],{"class":595},[567,3204,3205,3207,3209,3211,3214],{"class":569,"line":952},[567,3206,1159],{"class":640},[567,3208,596],{"class":595},[567,3210,726],{"class":595},[567,3212,3213],{"class":729},"fetch-all-contacts",[567,3215,752],{"class":595},[567,3217,3218,3220],{"class":569,"line":958},[567,3219,896],{"class":595},[567,3221,761],{"class":640},[567,3223,3224],{"class":569,"line":972},[567,3225,2489],{"class":640},[567,3227,3228,3230,3233,3235],{"class":569,"line":987},[567,3229,1000],{"class":587},[567,3231,3232],{"class":591}," allContacts",[567,3234,685],{"class":595},[567,3236,1225],{"class":640},[567,3238,3239,3242,3244,3246,3248,3251,3254,3256,3258],{"class":569,"line":992},[567,3240,3241],{"class":636},"  for",[567,3243,688],{"class":636},[567,3245,641],{"class":640},[567,3247,1362],{"class":587},[567,3249,3250],{"class":591}," chunk",[567,3252,3253],{"class":595}," of",[567,3255,3070],{"class":591},[567,3257,650],{"class":640},[567,3259,653],{"class":595},[567,3261,3262,3265,3267,3270,3272,3275,3278],{"class":569,"line":997},[567,3263,3264],{"class":591},"    allContacts",[567,3266,693],{"class":595},[567,3268,3269],{"class":623},"push",[567,3271,713],{"class":640},[567,3273,3274],{"class":595},"...",[567,3276,3277],{"class":591},"chunk",[567,3279,761],{"class":640},[567,3281,3282,3284,3286,3288,3290,3292,3295,3297,3299,3301,3304,3306,3309,3311,3314,3316,3318,3320],{"class":569,"line":1032},[567,3283,913],{"class":591},[567,3285,693],{"class":595},[567,3287,818],{"class":623},[567,3289,713],{"class":640},[567,3291,1567],{"class":595},[567,3293,3294],{"class":729},"Loaded ",[567,3296,1500],{"class":595},[567,3298,3277],{"class":591},[567,3300,693],{"class":595},[567,3302,3303],{"class":591},"length",[567,3305,2675],{"class":595},[567,3307,3308],{"class":729}," contacts, total: ",[567,3310,1500],{"class":595},[567,3312,3313],{"class":591},"allContacts",[567,3315,693],{"class":595},[567,3317,3303],{"class":591},[567,3319,1599],{"class":595},[567,3321,761],{"class":640},[567,3323,3324],{"class":569,"line":1049},[567,3325,665],{"class":595},[567,3327,3328],{"class":569,"line":1059},[567,3329,2489],{"class":640},[567,3331,3332,3334],{"class":569,"line":1086},[567,3333,1222],{"class":636},[567,3335,3336],{"class":591}," allContacts\n",[567,3338,3339],{"class":569,"line":1134},[567,3340,944],{"class":595},[547,3342,3344],{"id":3343},"examples-of-using-main-methods","Примеры использования основных методов",[468,3346,3347],{},"\u002F\u002F @check-ignore: partial snippet — processChunk not declared and top-level return",[558,3349,3351],{"className":560,"code":3350,"language":562,"meta":563,"style":563},"\u002F\u002F 1. Одиночный вызов (Call)\nconst singleItem = await $b24.actions.v2.call.make({\n  method: 'crm.company.get',\n  params: { id: 123 },\n  requestId: 'single-call'\n})\n\n\u002F\u002F 2. Получение всего списка (CallList)\nconst allItems = await $b24.actions.v2.callList.make({\n  method: 'crm.company.list',\n  params: {\n    filter: { '>ID': 0 },\n    select: ['ID', 'TITLE']\n  },\n  idKey: 'ID',\n  requestId: 'get-all-companies'\n})\n\n\u002F\u002F 3. Потоковая обработка (FetchList)\nconst generator = $b24.actions.v2.fetchList.make({\n  method: 'crm.deal.list',\n  params: { select: ['ID', 'TITLE', 'OPPORTUNITY'] },\n  idKey: 'ID',\n  requestId: 'stream-deals'\n})\n\nfor await (const chunk of generator) {\n  \u002F\u002F Обрабатываем пачками по 50 элементов\n  processChunk(chunk)\n}\n\n\u002F\u002F 4. Пакетная обработка (Batch)\nconst batchResult = await $b24.actions.v2.batch.make({\n  calls: [\n    ['crm.company.get', { id: 1 }],\n    ['crm.company.get', { id: 2 }],\n    ['crm.company.get', { id: 3 }]\n  ],\n  options: {\n    requestId: 'batch-get-companies'\n  }\n})\n\n\u002F\u002F 5. Массовая пакетная обработка (BatchByChunk)\nconst commands = Array.from({ length: 150 }, (_, i): [string, Record\u003Cstring, unknown>] => [\n  'crm.contact.add',\n  { fields: { NAME: `Contact ${i + 1}` } }\n])\n\nconst bulkResult = await $b24.actions.v2.batchByChunk.make({\n  calls: commands,\n  options: {\n    requestId: 'bulk-create-contacts'\n  }\n})\n",[517,3352,3353,3358,3391,3406,3424,3438,3444,3448,3453,3486,3501,3509,3530,3555,3559,3574,3587,3593,3597,3602,3633,3648,3691,3705,3718,3724,3728,3750,3755,3766,3770,3774,3779,3813,3822,3849,3876,3901,3908,3917,3930,3934,3940,3944,3949,4016,4027,4065,4070,4074,4107,4118,4126,4140,4145],{"__ignoreMap":563},[567,3354,3355],{"class":569,"line":570},[567,3356,3357],{"class":573},"\u002F\u002F 1. Одиночный вызов (Call)\n",[567,3359,3360,3362,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389],{"class":569,"line":577},[567,3361,1362],{"class":587},[567,3363,3364],{"class":591}," singleItem ",[567,3366,1368],{"class":595},[567,3368,688],{"class":636},[567,3370,592],{"class":591},[567,3372,693],{"class":595},[567,3374,91],{"class":591},[567,3376,693],{"class":595},[567,3378,700],{"class":591},[567,3380,693],{"class":595},[567,3382,705],{"class":591},[567,3384,693],{"class":595},[567,3386,710],{"class":623},[567,3388,713],{"class":591},[567,3390,653],{"class":595},[567,3392,3393,3396,3398,3400,3402,3404],{"class":569,"line":584},[567,3394,3395],{"class":640},"  method",[567,3397,596],{"class":595},[567,3399,726],{"class":595},[567,3401,1463],{"class":729},[567,3403,733],{"class":595},[567,3405,736],{"class":595},[567,3407,3408,3411,3413,3415,3417,3419,3422],{"class":569,"line":609},[567,3409,3410],{"class":640},"  params",[567,3412,596],{"class":595},[567,3414,1067],{"class":595},[567,3416,1478],{"class":640},[567,3418,596],{"class":595},[567,3420,3421],{"class":1079}," 123",[567,3423,1083],{"class":595},[567,3425,3426,3429,3431,3433,3436],{"class":569,"line":614},[567,3427,3428],{"class":640},"  requestId",[567,3430,596],{"class":595},[567,3432,726],{"class":595},[567,3434,3435],{"class":729},"single-call",[567,3437,752],{"class":595},[567,3439,3440,3442],{"class":569,"line":633},[567,3441,2675],{"class":595},[567,3443,761],{"class":591},[567,3445,3446],{"class":569,"line":656},[567,3447,581],{"emptyLinePlaceholder":580},[567,3449,3450],{"class":569,"line":662},[567,3451,3452],{"class":573},"\u002F\u002F 2. Получение всего списка (CallList)\n",[567,3454,3455,3457,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484],{"class":569,"line":668},[567,3456,1362],{"class":587},[567,3458,3459],{"class":591}," allItems ",[567,3461,1368],{"class":595},[567,3463,688],{"class":636},[567,3465,592],{"class":591},[567,3467,693],{"class":595},[567,3469,91],{"class":591},[567,3471,693],{"class":595},[567,3473,700],{"class":591},[567,3475,693],{"class":595},[567,3477,1021],{"class":591},[567,3479,693],{"class":595},[567,3481,710],{"class":623},[567,3483,713],{"class":591},[567,3485,653],{"class":595},[567,3487,3488,3490,3492,3494,3497,3499],{"class":569,"line":676},[567,3489,3395],{"class":640},[567,3491,596],{"class":595},[567,3493,726],{"class":595},[567,3495,3496],{"class":729},"crm.company.list",[567,3498,733],{"class":595},[567,3500,736],{"class":595},[567,3502,3503,3505,3507],{"class":569,"line":718},[567,3504,3410],{"class":640},[567,3506,596],{"class":595},[567,3508,630],{"class":595},[567,3510,3511,3514,3516,3518,3520,3522,3524,3526,3528],{"class":569,"line":739},[567,3512,3513],{"class":640},"    filter",[567,3515,596],{"class":595},[567,3517,1067],{"class":595},[567,3519,726],{"class":595},[567,3521,1072],{"class":640},[567,3523,733],{"class":595},[567,3525,596],{"class":595},[567,3527,1080],{"class":1079},[567,3529,1083],{"class":595},[567,3531,3532,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553],{"class":569,"line":755},[567,3533,3534],{"class":640},"    select",[567,3536,596],{"class":595},[567,3538,1094],{"class":591},[567,3540,733],{"class":595},[567,3542,1099],{"class":729},[567,3544,733],{"class":595},[567,3546,830],{"class":595},[567,3548,726],{"class":595},[567,3550,2360],{"class":729},[567,3552,733],{"class":595},[567,3554,1131],{"class":591},[567,3556,3557],{"class":569,"line":764},[567,3558,2201],{"class":595},[567,3560,3561,3564,3566,3568,3570,3572],{"class":569,"line":769},[567,3562,3563],{"class":640},"  idKey",[567,3565,596],{"class":595},[567,3567,726],{"class":595},[567,3569,1099],{"class":729},[567,3571,733],{"class":595},[567,3573,736],{"class":595},[567,3575,3576,3578,3580,3582,3585],{"class":569,"line":789},[567,3577,3428],{"class":640},[567,3579,596],{"class":595},[567,3581,726],{"class":595},[567,3583,3584],{"class":729},"get-all-companies",[567,3586,752],{"class":595},[567,3588,3589,3591],{"class":569,"line":810},[567,3590,2675],{"class":595},[567,3592,761],{"class":591},[567,3594,3595],{"class":569,"line":837},[567,3596,581],{"emptyLinePlaceholder":580},[567,3598,3599],{"class":569,"line":846},[567,3600,3601],{"class":573},"\u002F\u002F 3. Потоковая обработка (FetchList)\n",[567,3603,3604,3606,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631],{"class":569,"line":856},[567,3605,1362],{"class":587},[567,3607,3608],{"class":591}," generator ",[567,3610,1368],{"class":595},[567,3612,592],{"class":591},[567,3614,693],{"class":595},[567,3616,91],{"class":591},[567,3618,693],{"class":595},[567,3620,700],{"class":591},[567,3622,693],{"class":595},[567,3624,3087],{"class":591},[567,3626,693],{"class":595},[567,3628,710],{"class":623},[567,3630,713],{"class":591},[567,3632,653],{"class":595},[567,3634,3635,3637,3639,3641,3644,3646],{"class":569,"line":887},[567,3636,3395],{"class":640},[567,3638,596],{"class":595},[567,3640,726],{"class":595},[567,3642,3643],{"class":729},"crm.deal.list",[567,3645,733],{"class":595},[567,3647,736],{"class":595},[567,3649,3650,3652,3654,3656,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3679,3681,3684,3686,3688],{"class":569,"line":893},[567,3651,3410],{"class":640},[567,3653,596],{"class":595},[567,3655,1067],{"class":595},[567,3657,3658],{"class":640}," select",[567,3660,596],{"class":595},[567,3662,1094],{"class":591},[567,3664,733],{"class":595},[567,3666,1099],{"class":729},[567,3668,733],{"class":595},[567,3670,830],{"class":595},[567,3672,726],{"class":595},[567,3674,2360],{"class":729},[567,3676,733],{"class":595},[567,3678,830],{"class":595},[567,3680,726],{"class":595},[567,3682,3683],{"class":729},"OPPORTUNITY",[567,3685,733],{"class":595},[567,3687,1720],{"class":591},[567,3689,3690],{"class":595},"},\n",[567,3692,3693,3695,3697,3699,3701,3703],{"class":569,"line":910},[567,3694,3563],{"class":640},[567,3696,596],{"class":595},[567,3698,726],{"class":595},[567,3700,1099],{"class":729},[567,3702,733],{"class":595},[567,3704,736],{"class":595},[567,3706,3707,3709,3711,3713,3716],{"class":569,"line":936},[567,3708,3428],{"class":640},[567,3710,596],{"class":595},[567,3712,726],{"class":595},[567,3714,3715],{"class":729},"stream-deals",[567,3717,752],{"class":595},[567,3719,3720,3722],{"class":569,"line":941},[567,3721,2675],{"class":595},[567,3723,761],{"class":591},[567,3725,3726],{"class":569,"line":947},[567,3727,581],{"emptyLinePlaceholder":580},[567,3729,3730,3733,3735,3737,3739,3742,3745,3748],{"class":569,"line":952},[567,3731,3732],{"class":636},"for",[567,3734,688],{"class":636},[567,3736,641],{"class":591},[567,3738,1362],{"class":587},[567,3740,3741],{"class":591}," chunk ",[567,3743,3744],{"class":595},"of",[567,3746,3747],{"class":591}," generator) ",[567,3749,653],{"class":595},[567,3751,3752],{"class":569,"line":958},[567,3753,3754],{"class":573},"  \u002F\u002F Обрабатываем пачками по 50 элементов\n",[567,3756,3757,3760,3762,3764],{"class":569,"line":972},[567,3758,3759],{"class":623},"  processChunk",[567,3761,713],{"class":640},[567,3763,3277],{"class":591},[567,3765,761],{"class":640},[567,3767,3768],{"class":569,"line":987},[567,3769,944],{"class":595},[567,3771,3772],{"class":569,"line":992},[567,3773,581],{"emptyLinePlaceholder":580},[567,3775,3776],{"class":569,"line":997},[567,3777,3778],{"class":573},"\u002F\u002F 4. Пакетная обработка (Batch)\n",[567,3780,3781,3783,3786,3788,3790,3792,3794,3796,3798,3800,3802,3805,3807,3809,3811],{"class":569,"line":1032},[567,3782,1362],{"class":587},[567,3784,3785],{"class":591}," batchResult ",[567,3787,1368],{"class":595},[567,3789,688],{"class":636},[567,3791,592],{"class":591},[567,3793,693],{"class":595},[567,3795,91],{"class":591},[567,3797,693],{"class":595},[567,3799,700],{"class":591},[567,3801,693],{"class":595},[567,3803,3804],{"class":591},"batch",[567,3806,693],{"class":595},[567,3808,710],{"class":623},[567,3810,713],{"class":591},[567,3812,653],{"class":595},[567,3814,3815,3818,3820],{"class":569,"line":1049},[567,3816,3817],{"class":640},"  calls",[567,3819,596],{"class":595},[567,3821,1726],{"class":591},[567,3823,3824,3827,3829,3831,3833,3835,3837,3839,3841,3843,3845,3847],{"class":569,"line":1059},[567,3825,3826],{"class":591},"    [",[567,3828,733],{"class":595},[567,3830,1463],{"class":729},[567,3832,733],{"class":595},[567,3834,830],{"class":595},[567,3836,1067],{"class":595},[567,3838,1478],{"class":640},[567,3840,596],{"class":595},[567,3842,2041],{"class":1079},[567,3844,1309],{"class":595},[567,3846,3158],{"class":591},[567,3848,736],{"class":595},[567,3850,3851,3853,3855,3857,3859,3861,3863,3865,3867,3870,3872,3874],{"class":569,"line":1086},[567,3852,3826],{"class":591},[567,3854,733],{"class":595},[567,3856,1463],{"class":729},[567,3858,733],{"class":595},[567,3860,830],{"class":595},[567,3862,1067],{"class":595},[567,3864,1478],{"class":640},[567,3866,596],{"class":595},[567,3868,3869],{"class":1079}," 2",[567,3871,1309],{"class":595},[567,3873,3158],{"class":591},[567,3875,736],{"class":595},[567,3877,3878,3880,3882,3884,3886,3888,3890,3892,3894,3897,3899],{"class":569,"line":1134},[567,3879,3826],{"class":591},[567,3881,733],{"class":595},[567,3883,1463],{"class":729},[567,3885,733],{"class":595},[567,3887,830],{"class":595},[567,3889,1067],{"class":595},[567,3891,1478],{"class":640},[567,3893,596],{"class":595},[567,3895,3896],{"class":1079}," 3",[567,3898,1309],{"class":595},[567,3900,1131],{"class":591},[567,3902,3903,3906],{"class":569,"line":1140},[567,3904,3905],{"class":591},"  ]",[567,3907,736],{"class":595},[567,3909,3910,3913,3915],{"class":569,"line":1156},[567,3911,3912],{"class":640},"  options",[567,3914,596],{"class":595},[567,3916,630],{"class":595},[567,3918,3919,3921,3923,3925,3928],{"class":569,"line":1171},[567,3920,1159],{"class":640},[567,3922,596],{"class":595},[567,3924,726],{"class":595},[567,3926,3927],{"class":729},"batch-get-companies",[567,3929,752],{"class":595},[567,3931,3932],{"class":569,"line":1178},[567,3933,665],{"class":595},[567,3935,3936,3938],{"class":569,"line":1183},[567,3937,2675],{"class":595},[567,3939,761],{"class":591},[567,3941,3942],{"class":569,"line":1200},[567,3943,581],{"emptyLinePlaceholder":580},[567,3945,3946],{"class":569,"line":1214},[567,3947,3948],{"class":573},"\u002F\u002F 5. Массовая пакетная обработка (BatchByChunk)\n",[567,3950,3951,3953,3956,3958,3960,3962,3965,3967,3969,3972,3974,3977,3980,3982,3985,3987,3990,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012,4014],{"class":569,"line":1219},[567,3952,1362],{"class":587},[567,3954,3955],{"class":591}," commands ",[567,3957,1368],{"class":595},[567,3959,1637],{"class":591},[567,3961,693],{"class":595},[567,3963,3964],{"class":623},"from",[567,3966,713],{"class":591},[567,3968,2975],{"class":595},[567,3970,3971],{"class":640}," length",[567,3973,596],{"class":595},[567,3975,3976],{"class":1079}," 150",[567,3978,3979],{"class":595}," },",[567,3981,641],{"class":595},[567,3983,3984],{"class":1409},"_",[567,3986,830],{"class":595},[567,3988,3989],{"class":1409}," i",[567,3991,1694],{"class":595},[567,3993,1094],{"class":591},[567,3995,1699],{"class":599},[567,3997,830],{"class":595},[567,3999,1704],{"class":599},[567,4001,1707],{"class":595},[567,4003,1699],{"class":599},[567,4005,830],{"class":595},[567,4007,1714],{"class":599},[567,4009,1717],{"class":595},[567,4011,1720],{"class":591},[567,4013,1723],{"class":587},[567,4015,1726],{"class":591},[567,4017,4018,4021,4023,4025],{"class":569,"line":1228},[567,4019,4020],{"class":595},"  '",[567,4022,2920],{"class":729},[567,4024,733],{"class":595},[567,4026,736],{"class":595},[567,4028,4029,4032,4035,4037,4039,4042,4044,4046,4049,4051,4054,4057,4059,4061,4063],{"class":569,"line":1233},[567,4030,4031],{"class":595},"  {",[567,4033,4034],{"class":640}," fields",[567,4036,596],{"class":595},[567,4038,1067],{"class":595},[567,4040,4041],{"class":640}," NAME",[567,4043,596],{"class":595},[567,4045,1494],{"class":595},[567,4047,4048],{"class":729},"Contact ",[567,4050,1500],{"class":595},[567,4052,4053],{"class":591},"i ",[567,4055,4056],{"class":595},"+",[567,4058,2041],{"class":1079},[567,4060,1599],{"class":595},[567,4062,1309],{"class":595},[567,4064,3184],{"class":595},[567,4066,4067],{"class":569,"line":1238},[567,4068,4069],{"class":591},"])\n",[567,4071,4072],{"class":569,"line":1252},[567,4073,581],{"emptyLinePlaceholder":580},[567,4075,4076,4078,4081,4083,4085,4087,4089,4091,4093,4095,4097,4099,4101,4103,4105],{"class":569,"line":1267},[567,4077,1362],{"class":587},[567,4079,4080],{"class":591}," bulkResult ",[567,4082,1368],{"class":595},[567,4084,688],{"class":636},[567,4086,592],{"class":591},[567,4088,693],{"class":595},[567,4090,91],{"class":591},[567,4092,693],{"class":595},[567,4094,700],{"class":591},[567,4096,693],{"class":595},[567,4098,1837],{"class":591},[567,4100,693],{"class":595},[567,4102,710],{"class":623},[567,4104,713],{"class":591},[567,4106,653],{"class":595},[567,4108,4109,4111,4113,4116],{"class":569,"line":1272},[567,4110,3817],{"class":640},[567,4112,596],{"class":595},[567,4114,4115],{"class":591}," commands",[567,4117,736],{"class":595},[567,4119,4120,4122,4124],{"class":569,"line":1277},[567,4121,3912],{"class":640},[567,4123,596],{"class":595},[567,4125,630],{"class":595},[567,4127,4129,4131,4133,4135,4138],{"class":569,"line":4128},53,[567,4130,1159],{"class":640},[567,4132,596],{"class":595},[567,4134,726],{"class":595},[567,4136,4137],{"class":729},"bulk-create-contacts",[567,4139,752],{"class":595},[567,4141,4143],{"class":569,"line":4142},54,[567,4144,665],{"class":595},[567,4146,4148,4150],{"class":569,"line":4147},55,[567,4149,2675],{"class":595},[567,4151,761],{"class":591},[472,4153,4155],{"id":4154},"tips-for-beginners","Советы для начинающих",[547,4157,4159],{"id":4158},"_1-always-use-requestid","1. Всегда используйте requestId",[558,4161,4163],{"className":560,"code":4162,"language":562,"meta":563,"style":563},"\u002F\u002F Хорошо\nawait $b24.actions.v2.call.make({\n  method: 'crm.contact.get',\n  params: { id: 123 },\n  requestId: `contact-${123}-${Date.now()}`\n})\n\n\u002F\u002F Плохо (без requestId будет сложно отладить)\nawait $b24.actions.v2.call.make({\n  method: 'crm.contact.get',\n  params: { id: 123 }\n})\n",[517,4164,4165,4170,4196,4211,4227,4262,4268,4272,4277,4303,4317,4333],{"__ignoreMap":563},[567,4166,4167],{"class":569,"line":570},[567,4168,4169],{"class":573},"\u002F\u002F Хорошо\n",[567,4171,4172,4174,4176,4178,4180,4182,4184,4186,4188,4190,4192,4194],{"class":569,"line":577},[567,4173,1280],{"class":636},[567,4175,592],{"class":591},[567,4177,693],{"class":595},[567,4179,91],{"class":591},[567,4181,693],{"class":595},[567,4183,700],{"class":591},[567,4185,693],{"class":595},[567,4187,705],{"class":591},[567,4189,693],{"class":595},[567,4191,710],{"class":623},[567,4193,713],{"class":591},[567,4195,653],{"class":595},[567,4197,4198,4200,4202,4204,4207,4209],{"class":569,"line":584},[567,4199,3395],{"class":640},[567,4201,596],{"class":595},[567,4203,726],{"class":595},[567,4205,4206],{"class":729},"crm.contact.get",[567,4208,733],{"class":595},[567,4210,736],{"class":595},[567,4212,4213,4215,4217,4219,4221,4223,4225],{"class":569,"line":609},[567,4214,3410],{"class":640},[567,4216,596],{"class":595},[567,4218,1067],{"class":595},[567,4220,1478],{"class":640},[567,4222,596],{"class":595},[567,4224,3421],{"class":1079},[567,4226,1083],{"class":595},[567,4228,4229,4231,4233,4235,4238,4240,4243,4245,4248,4250,4253,4255,4258,4260],{"class":569,"line":614},[567,4230,3428],{"class":640},[567,4232,596],{"class":595},[567,4234,1494],{"class":595},[567,4236,4237],{"class":729},"contact-",[567,4239,1500],{"class":595},[567,4241,4242],{"class":1079},"123",[567,4244,2675],{"class":595},[567,4246,4247],{"class":729},"-",[567,4249,1500],{"class":595},[567,4251,4252],{"class":591},"Date",[567,4254,693],{"class":595},[567,4256,4257],{"class":623},"now",[567,4259,627],{"class":591},[567,4261,1505],{"class":595},[567,4263,4264,4266],{"class":569,"line":633},[567,4265,2675],{"class":595},[567,4267,761],{"class":591},[567,4269,4270],{"class":569,"line":656},[567,4271,581],{"emptyLinePlaceholder":580},[567,4273,4274],{"class":569,"line":662},[567,4275,4276],{"class":573},"\u002F\u002F Плохо (без requestId будет сложно отладить)\n",[567,4278,4279,4281,4283,4285,4287,4289,4291,4293,4295,4297,4299,4301],{"class":569,"line":668},[567,4280,1280],{"class":636},[567,4282,592],{"class":591},[567,4284,693],{"class":595},[567,4286,91],{"class":591},[567,4288,693],{"class":595},[567,4290,700],{"class":591},[567,4292,693],{"class":595},[567,4294,705],{"class":591},[567,4296,693],{"class":595},[567,4298,710],{"class":623},[567,4300,713],{"class":591},[567,4302,653],{"class":595},[567,4304,4305,4307,4309,4311,4313,4315],{"class":569,"line":676},[567,4306,3395],{"class":640},[567,4308,596],{"class":595},[567,4310,726],{"class":595},[567,4312,4206],{"class":729},[567,4314,733],{"class":595},[567,4316,736],{"class":595},[567,4318,4319,4321,4323,4325,4327,4329,4331],{"class":569,"line":718},[567,4320,3410],{"class":640},[567,4322,596],{"class":595},[567,4324,1067],{"class":595},[567,4326,1478],{"class":640},[567,4328,596],{"class":595},[567,4330,3421],{"class":1079},[567,4332,3184],{"class":595},[567,4334,4335,4337],{"class":569,"line":739},[567,4336,2675],{"class":595},[567,4338,761],{"class":591},[547,4340,4342],{"id":4341},"_2-check-operation-results","2. Проверяйте результаты операций",[468,4344,4345],{},"\u002F\u002F @check-ignore: top-level return in error-handling illustration",[558,4347,4349],{"className":560,"code":4348,"language":562,"meta":563,"style":563},"const response = await $b24.actions.v2.call.make({\n  method: 'some.method',\n  params: { \u002F* ... *\u002F },\n  requestId: 'my-request'\n})\n\n\u002F\u002F Всегда проверяйте isSuccess\nif (!response.isSuccess) {\n  console.error('Error:', response.getErrorMessages())\n  \u002F\u002F Обработка ошибки\n  return\n}\n\n\u002F\u002F Только после успешной проверки работаем с данными\nconst data = response.getData()!\n",[517,4350,4351,4384,4399,4412,4425,4431,4435,4440,4458,4484,4489,4494,4498,4502,4507],{"__ignoreMap":563},[567,4352,4353,4355,4358,4360,4362,4364,4366,4368,4370,4372,4374,4376,4378,4380,4382],{"class":569,"line":570},[567,4354,1362],{"class":587},[567,4356,4357],{"class":591}," response ",[567,4359,1368],{"class":595},[567,4361,688],{"class":636},[567,4363,592],{"class":591},[567,4365,693],{"class":595},[567,4367,91],{"class":591},[567,4369,693],{"class":595},[567,4371,700],{"class":591},[567,4373,693],{"class":595},[567,4375,705],{"class":591},[567,4377,693],{"class":595},[567,4379,710],{"class":623},[567,4381,713],{"class":591},[567,4383,653],{"class":595},[567,4385,4386,4388,4390,4392,4395,4397],{"class":569,"line":577},[567,4387,3395],{"class":640},[567,4389,596],{"class":595},[567,4391,726],{"class":595},[567,4393,4394],{"class":729},"some.method",[567,4396,733],{"class":595},[567,4398,736],{"class":595},[567,4400,4401,4403,4405,4407,4410],{"class":569,"line":584},[567,4402,3410],{"class":640},[567,4404,596],{"class":595},[567,4406,1067],{"class":595},[567,4408,4409],{"class":573}," \u002F* ... *\u002F",[567,4411,1083],{"class":595},[567,4413,4414,4416,4418,4420,4423],{"class":569,"line":609},[567,4415,3428],{"class":640},[567,4417,596],{"class":595},[567,4419,726],{"class":595},[567,4421,4422],{"class":729},"my-request",[567,4424,752],{"class":595},[567,4426,4427,4429],{"class":569,"line":614},[567,4428,2675],{"class":595},[567,4430,761],{"class":591},[567,4432,4433],{"class":569,"line":633},[567,4434,581],{"emptyLinePlaceholder":580},[567,4436,4437],{"class":569,"line":656},[567,4438,4439],{"class":573},"\u002F\u002F Всегда проверяйте isSuccess\n",[567,4441,4442,4445,4447,4449,4451,4453,4456],{"class":569,"line":662},[567,4443,4444],{"class":636},"if",[567,4446,641],{"class":591},[567,4448,644],{"class":595},[567,4450,777],{"class":591},[567,4452,693],{"class":595},[567,4454,4455],{"class":591},"isSuccess) ",[567,4457,653],{"class":595},[567,4459,4460,4462,4464,4466,4468,4470,4472,4474,4476,4478,4480,4482],{"class":569,"line":668},[567,4461,2656],{"class":591},[567,4463,693],{"class":595},[567,4465,863],{"class":623},[567,4467,713],{"class":640},[567,4469,733],{"class":595},[567,4471,870],{"class":729},[567,4473,733],{"class":595},[567,4475,830],{"class":595},[567,4477,682],{"class":591},[567,4479,693],{"class":595},[567,4481,881],{"class":623},[567,4483,884],{"class":640},[567,4485,4486],{"class":569,"line":676},[567,4487,4488],{"class":573},"  \u002F\u002F Обработка ошибки\n",[567,4490,4491],{"class":569,"line":718},[567,4492,4493],{"class":636},"  return\n",[567,4495,4496],{"class":569,"line":739},[567,4497,944],{"class":595},[567,4499,4500],{"class":569,"line":755},[567,4501,581],{"emptyLinePlaceholder":580},[567,4503,4504],{"class":569,"line":764},[567,4505,4506],{"class":573},"\u002F\u002F Только после успешной проверки работаем с данными\n",[567,4508,4509,4511,4514,4516,4518,4520,4522,4524],{"class":569,"line":769},[567,4510,1362],{"class":587},[567,4512,4513],{"class":591}," data ",[567,4515,1368],{"class":595},[567,4517,682],{"class":591},[567,4519,693],{"class":595},[567,4521,804],{"class":623},[567,4523,627],{"class":591},[567,4525,4526],{"class":595},"!\n",[547,4528,4530],{"id":4529},"_3-choose-the-right-method-for-working-with-lists","3. Выбирайте правильный метод для работы со списками",[487,4532,4533,4546],{},[490,4534,4535],{},[493,4536,4537,4540,4543],{},[496,4538,4539],{},"Объём данных",[496,4541,4542],{},"Метод",[496,4544,4545],{},"Почему",[506,4547,4548,4560,4572],{},[493,4549,4550,4553,4557],{},[511,4551,4552],{},"\u003C 1000 записей",[511,4554,4555],{},[517,4556,99],{},[511,4558,4559],{},"Удобно использовать, все данные сразу",[493,4561,4562,4565,4569],{},[511,4563,4564],{},"> 1000 записей",[511,4566,4567],{},[517,4568,108],{},[511,4570,4571],{},"Эффективен по памяти, потоковая обработка",[493,4573,4574,4577,4584],{},[511,4575,4576],{},"Выборочные данные",[511,4578,4579,4581,4582],{},[517,4580,87],{}," + ",[517,4583,122],{},[511,4585,4586],{},"Только нужные записи, контроль над запросами",[472,4588,4590],{"id":4589},"need-help","Нужна помощь?",[4592,4593,4594,4604,4611],"ul",{},[4595,4596,4597],"li",{},[4598,4599,4603],"a",{"href":4600,"rel":4601},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fissues",[4602],"nofollow","Открыть issue в GitHub",[4595,4605,4606],{},[4598,4607,4610],{"href":4608,"rel":4609},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fissues?q=is%3Aissue",[4602],"Посмотреть существующие вопросы",[4595,4612,4613],{},[4598,4614,4617],{"href":4615,"rel":4616},"https:\u002F\u002Fapidocs.bitrix24.ru\u002F",[4602],"Официальная документация",[4619,4620],"hr",{},[468,4622,4623,4627,4628,4630],{},[4624,4625,4626],"strong",{},"Совет",": Начните с простых запросов (например, ",[517,4629,730],{},"), чтобы убедиться, что соединение работает корректно, прежде чем переходить к сложным операциям с CRM или задачами.",[4632,4633,4634],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":563,"searchDepth":577,"depth":577,"links":4636},[4637,4638,4643,4648,4653],{"id":474,"depth":577,"text":475},{"id":481,"depth":577,"text":482,"children":4639},[4640,4641,4642],{"id":549,"depth":584,"text":550},{"id":1287,"depth":584,"text":1288},{"id":1902,"depth":584,"text":1903},{"id":2422,"depth":577,"text":2423,"children":4644},[4645,4646,4647],{"id":2426,"depth":584,"text":2427},{"id":2826,"depth":584,"text":2827},{"id":3343,"depth":584,"text":3344},{"id":4154,"depth":577,"text":4155,"children":4649},[4650,4651,4652],{"id":4158,"depth":584,"text":4159},{"id":4341,"depth":584,"text":4342},{"id":4529,"depth":584,"text":4530},{"id":4589,"depth":577,"text":4590},"md",{},{"title":10,"description":16},"imugi9xAw5JNfT6G9K4xrjbnGhVE3jSpMEHBzrEJboA",{"data":4659,"body":4660},{},{"type":4661,"children":4662},"root",[4663],{"type":4664,"tag":468,"props":4665,"children":4666},"element",{},[4667],{"type":4668,"value":16},"text",1783080209464]