[{"data":1,"prerenderedAt":2324},["ShallowReactive",2],{"navigation":3,"-docs-working-with-the-rest-api-hook":459,"-docs-working-with-the-rest-api-hook-description":2313},[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":461,"audited":15,"badge":15,"body":462,"category":117,"description":120,"extension":2302,"links":2303,"meta":2309,"navigation":2310,"path":118,"restApiVersion":15,"seo":2311,"stem":119,"__hash__":2312},"docs\u002Fdocs\u002F2.working-with-the-rest-api\u002F20.hook.md","Класс B24Hook",{"type":463,"value":464,"toc":2275},"minimark",[465,517,522,529,563,567,575,580,583,665,670,743,747,830,833,837,840,938,942,992,999,1066,1070,1551,1555,1560,1579,1599,1670,1676,1693,1709,1717,1725,1811,1815,1821,1835,1840,1846,1872,1875,1905,1910,1924,1932,1941,1992,1999,2005,2036,2041,2050,2081,2088,2093,2106,2109,2142,2146,2149,2230,2234,2271],[466,467,469,489],"caution",{"title":468},"⚠️ ВНИМАНИЕ: БЕЗОПАСНОСТЬ",[470,471,472,473,483,484,488],"p",{},"Объект ",[474,475,479],"code",{"className":476,"language":477,"style":478},"language-ts-type shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ts-type","",[480,481,117],"span",{"class":482},"sBMFI"," предназначен ",[485,486,487],"strong",{},"исключительно для использования на сервере",".",[490,491,492,499,508],"ul",{},[493,494,495,496,488],"li",{},"URL вебхука содержит секретный ключ доступа. ",[485,497,498],{},"Он никогда не должен попадать в клиентский код (браузер, мобильное приложение)",[493,500,501,502,488],{},"Для клиентской стороны используйте ",[503,504,506],"a",{"href":505},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fframe\u002F",[474,507,133],{},[493,509,510,511,488],{},"HTTP-клиент по умолчанию создаётся с включённым предупреждением о клиентской стороне — см. ",[503,512,514],{"href":513},"#offclientsidewarning",[474,515,516],{},"offClientSideWarning",[518,519,521],"h2",{"id":520},"overview","Обзор",[470,523,524,528],{},[474,525,526],{"className":476,"language":477,"style":478},[480,527,117],{"class":482}," — это класс SDK для работы с REST API Bitrix24 через входящий вебхук. Вебхук — это URL, который уже содержит идентификатор пользователя и секретный токен, поэтому запросы аутентифицируются без OAuth-рукопожатия.",[470,530,531,532,537,538,547,548,551,552,551,555,558,559,562],{},"Класс наследуется от ",[474,533,534],{"className":476,"language":477,"style":478},[480,535,536],{"class":482},"AbstractB24"," и реализует ",[503,539,543],{"href":540,"rel":541},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Ftypes\u002Fb24.ts",[542],"nofollow",[474,544,545],{"className":476,"language":477,"style":478},[480,546,327],{"class":482},", поэтому полный набор REST-методов (",[474,549,550],{},"actions.v2.*",", ",[474,553,554],{},"actions.v3.*",[474,556,557],{},"tools.*",") доступен сразу после создания экземпляра — шаг ",[474,560,561],{},"await b24.init()"," не требуется.",[518,564,566],{"id":565},"creating-a-b24hook-instance","Создание экземпляра B24Hook",[470,568,569,570,574],{},"Создать экземпляр ",[474,571,572],{"className":476,"language":477,"style":478},[480,573,117],{"class":482}," можно двумя способами.",[576,577,579],"h3",{"id":578},"from-a-full-webhook-url","Из полного URL вебхука",[470,581,582],{},"Рекомендуемый способ, когда URL вебхука хранится в одной переменной окружения.",[584,585,589],"pre",{"className":586,"code":587,"language":588,"meta":478,"style":478},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { B24Hook } from '@bitrix24\u002Fb24jssdk'\n\nconst $b24 = B24Hook.fromWebhookUrl('https:\u002F\u002Fyour_domain.bitrix24.com\u002Frest\u002F1\u002Fk32t88gf3azpmwv3\u002F')\n","ts",[474,590,591,623,630],{"__ignoreMap":478},[480,592,595,599,603,607,610,613,616,620],{"class":593,"line":594},"line",1,[480,596,598],{"class":597},"s7zQu","import",[480,600,602],{"class":601},"sMK4o"," {",[480,604,606],{"class":605},"sTEyZ"," B24Hook",[480,608,609],{"class":601}," }",[480,611,612],{"class":597}," from",[480,614,615],{"class":601}," '",[480,617,619],{"class":618},"sfazB","@bitrix24\u002Fb24jssdk",[480,621,622],{"class":601},"'\n",[480,624,626],{"class":593,"line":625},2,[480,627,629],{"emptyLinePlaceholder":628},true,"\n",[480,631,633,637,640,643,645,647,651,654,657,660,662],{"class":593,"line":632},3,[480,634,636],{"class":635},"spNyl","const",[480,638,639],{"class":605}," $b24 ",[480,641,642],{"class":601},"=",[480,644,606],{"class":605},[480,646,488],{"class":601},[480,648,650],{"class":649},"s2Zo4","fromWebhookUrl",[480,652,653],{"class":605},"(",[480,655,656],{"class":601},"'",[480,658,659],{"class":618},"https:\u002F\u002Fyour_domain.bitrix24.com\u002Frest\u002F1\u002Fk32t88gf3azpmwv3\u002F",[480,661,656],{"class":601},[480,663,664],{"class":605},")\n",[666,667,669],"h4",{"id":668},"сигнатура-метода","Сигнатура метода",[584,671,673],{"className":476,"code":672,"language":477,"meta":478,"style":478},"static fromWebhookUrl(\n  url: string,\n  options?: { restrictionParams?: Partial\u003CRestrictionParams> }\n): B24Hook\n",[474,674,675,686,701,732],{"__ignoreMap":478},[480,676,677,680,683],{"class":593,"line":594},[480,678,679],{"class":482},"static",[480,681,682],{"class":482}," fromWebhookUrl",[480,684,685],{"class":605},"(\n",[480,687,688,692,695,698],{"class":593,"line":625},[480,689,691],{"class":690},"sHdIc","  url",[480,693,694],{"class":601},":",[480,696,697],{"class":482}," string",[480,699,700],{"class":601},",\n",[480,702,703,706,709,711,715,717,720,723,726,729],{"class":593,"line":632},[480,704,705],{"class":690},"  options",[480,707,708],{"class":601},"?:",[480,710,602],{"class":601},[480,712,714],{"class":713},"swJcz"," restrictionParams",[480,716,708],{"class":601},[480,718,719],{"class":482}," Partial",[480,721,722],{"class":601},"\u003C",[480,724,725],{"class":482},"RestrictionParams",[480,727,728],{"class":601},">",[480,730,731],{"class":601}," }\n",[480,733,735,738,740],{"class":593,"line":734},4,[480,736,737],{"class":605},")",[480,739,694],{"class":601},[480,741,742],{"class":482}," B24Hook\n",[666,744,746],{"id":745},"параметры","Параметры",[748,749,750,769],"table",{},[751,752,753],"thead",{},[754,755,756,760,763,766],"tr",{},[757,758,759],"th",{},"Параметр",[757,761,762],{},"Тип",[757,764,765],{},"Обязательный",[757,767,768],{},"Описание",[770,771,772,801],"tbody",{},[754,773,774,780,787,790],{},[775,776,777],"td",{},[474,778,779],{},"url",[775,781,782],{},[474,783,784],{"className":476,"language":477,"style":478},[480,785,786],{"class":482},"string",[775,788,789],{},"Да",[775,791,792,793,796,797,800],{},"Полный URL вебхука. Поддерживаются оба формата URL: ",[474,794,795],{},"\u002Frest\u002F\u003CuserId>\u002F\u003Csecret>"," (REST v2) и ",[474,798,799],{},"\u002Frest\u002Fapi\u002F\u003CuserId>\u002F\u003Csecret>"," (REST v3).",[754,802,803,808,821,824],{},[775,804,805],{},[474,806,807],{},"options.restrictionParams",[775,809,810],{},[474,811,812,815,817,819],{"className":476,"language":477,"style":478},[480,813,814],{"class":482},"Partial",[480,816,722],{"class":601},[480,818,725],{"class":482},[480,820,728],{"class":601},[775,822,823],{},"Нет",[775,825,826,827,488],{},"Переопределение конфигурации rate limit \u002F operating limit \u002F адаптивной задержки, заданной по умолчанию. См. ",[503,828,288],{"href":829},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Flimiters\u002F",[470,831,832],{},"Статическая фабрика валидирует URL: требуется HTTPS, путь должен соответствовать одному из поддерживаемых форматов, а идентификатор пользователя должен быть числовым. Всё остальное синхронно выбрасывает исключение.",[576,834,836],{"id":835},"from-parameters","Из параметров",[470,838,839],{},"Используйте этот конструктор, когда части вебхука хранятся раздельно (например: URL портала в одной переменной окружения, токен — в менеджере секретов).",[584,841,843],{"className":586,"code":842,"language":588,"meta":478,"style":478},"import { B24Hook } from '@bitrix24\u002Fb24jssdk'\n\nconst $b24 = new B24Hook({\n  b24Url: 'https:\u002F\u002Fyour_domain.bitrix24.com',\n  userId: 1,\n  secret: 'k32t88gf3azpmwv3'\n})\n",[474,844,845,863,867,885,901,915,930],{"__ignoreMap":478},[480,846,847,849,851,853,855,857,859,861],{"class":593,"line":594},[480,848,598],{"class":597},[480,850,602],{"class":601},[480,852,606],{"class":605},[480,854,609],{"class":601},[480,856,612],{"class":597},[480,858,615],{"class":601},[480,860,619],{"class":618},[480,862,622],{"class":601},[480,864,865],{"class":593,"line":625},[480,866,629],{"emptyLinePlaceholder":628},[480,868,869,871,873,875,878,880,882],{"class":593,"line":632},[480,870,636],{"class":635},[480,872,639],{"class":605},[480,874,642],{"class":601},[480,876,877],{"class":601}," new",[480,879,606],{"class":649},[480,881,653],{"class":605},[480,883,884],{"class":601},"{\n",[480,886,887,890,892,894,897,899],{"class":593,"line":734},[480,888,889],{"class":713},"  b24Url",[480,891,694],{"class":601},[480,893,615],{"class":601},[480,895,896],{"class":618},"https:\u002F\u002Fyour_domain.bitrix24.com",[480,898,656],{"class":601},[480,900,700],{"class":601},[480,902,904,907,909,913],{"class":593,"line":903},5,[480,905,906],{"class":713},"  userId",[480,908,694],{"class":601},[480,910,912],{"class":911},"sbssI"," 1",[480,914,700],{"class":601},[480,916,918,921,923,925,928],{"class":593,"line":917},6,[480,919,920],{"class":713},"  secret",[480,922,694],{"class":601},[480,924,615],{"class":601},[480,926,927],{"class":618},"k32t88gf3azpmwv3",[480,929,622],{"class":601},[480,931,933,936],{"class":593,"line":932},7,[480,934,935],{"class":601},"}",[480,937,664],{"class":605},[666,939,941],{"id":940},"сигнатура-конструктора","Сигнатура конструктора",[584,943,945],{"className":476,"code":944,"language":477,"meta":478,"style":478},"constructor(\n  b24HookParams: B24HookParams,\n  options?: { restrictionParams?: Partial\u003CRestrictionParams> }\n)\n",[474,946,947,954,966,988],{"__ignoreMap":478},[480,948,949,952],{"class":593,"line":594},[480,950,951],{"class":482},"constructor",[480,953,685],{"class":605},[480,955,956,959,961,964],{"class":593,"line":625},[480,957,958],{"class":690},"  b24HookParams",[480,960,694],{"class":601},[480,962,963],{"class":482}," B24HookParams",[480,965,700],{"class":601},[480,967,968,970,972,974,976,978,980,982,984,986],{"class":593,"line":632},[480,969,705],{"class":690},[480,971,708],{"class":601},[480,973,602],{"class":601},[480,975,714],{"class":713},[480,977,708],{"class":601},[480,979,719],{"class":482},[480,981,722],{"class":601},[480,983,725],{"class":482},[480,985,728],{"class":601},[480,987,731],{"class":601},[480,989,990],{"class":593,"line":734},[480,991,664],{"class":605},[666,993,995,996],{"id":994},"поля-b24hookparams","Поля ",[474,997,998],{},"B24HookParams",[748,1000,1001,1012],{},[751,1002,1003],{},[754,1004,1005,1008,1010],{},[757,1006,1007],{},"Поле",[757,1009,762],{},[757,1011,768],{},[770,1013,1014,1033,1050],{},[754,1015,1016,1021,1027],{},[775,1017,1018],{},[474,1019,1020],{},"b24Url",[775,1022,1023],{},[474,1024,1025],{"className":476,"language":477,"style":478},[480,1026,786],{"class":482},[775,1028,1029,1030,1032],{},"URL портала Bitrix24 (",[474,1031,896],{},").",[754,1034,1035,1040,1047],{},[775,1036,1037],{},[474,1038,1039],{},"userId",[775,1041,1042],{},[474,1043,1044],{"className":476,"language":477,"style":478},[480,1045,1046],{"class":482},"number",[775,1048,1049],{},"Идентификатор пользователя, которому принадлежит вебхук.",[754,1051,1052,1057,1063],{},[775,1053,1054],{},[474,1055,1056],{},"secret",[775,1058,1059],{},[474,1060,1061],{"className":476,"language":477,"style":478},[480,1062,786],{"class":482},[775,1064,1065],{},"Секретный токен вебхука.",[518,1067,1069],{"id":1068},"quick-example","Быстрый пример",[584,1071,1073],{"className":586,"code":1072,"language":588,"meta":478,"style":478},"import { B24Hook, EnumCrmEntityTypeId, LoggerFactory } from '@bitrix24\u002Fb24jssdk'\n\nconst $logger = LoggerFactory.createForBrowser('node:hook', process.env.NODE_ENV === 'development')\n\nif (!process.env.B24_HOOK) {\n  throw new Error('B24_HOOK env variable is required')\n}\n\nconst $b24 = B24Hook.fromWebhookUrl(process.env.B24_HOOK)\n\nconst response = await $b24.actions.v2.call.make\u003C{ id: number, title: string }>({\n  method: 'crm.item.list',\n  params: {\n    entityTypeId: EnumCrmEntityTypeId.company,\n    select: ['id', 'title']\n  },\n  requestId: 'companies-list'\n})\n\nif (!response.isSuccess) {\n  $logger.error('REST error', { messages: response.getErrorMessages() })\n  process.exit(1)\n}\n\n$logger.info('Companies', response.getData()?.result)\n",[474,1074,1075,1104,1108,1160,1164,1189,1210,1215,1220,1247,1252,1314,1331,1342,1359,1389,1395,1410,1417,1422,1441,1485,1503,1508,1513],{"__ignoreMap":478},[480,1076,1077,1079,1081,1083,1086,1089,1091,1094,1096,1098,1100,1102],{"class":593,"line":594},[480,1078,598],{"class":597},[480,1080,602],{"class":601},[480,1082,606],{"class":605},[480,1084,1085],{"class":601},",",[480,1087,1088],{"class":605}," EnumCrmEntityTypeId",[480,1090,1085],{"class":601},[480,1092,1093],{"class":605}," LoggerFactory",[480,1095,609],{"class":601},[480,1097,612],{"class":597},[480,1099,615],{"class":601},[480,1101,619],{"class":618},[480,1103,622],{"class":601},[480,1105,1106],{"class":593,"line":625},[480,1107,629],{"emptyLinePlaceholder":628},[480,1109,1110,1112,1115,1117,1119,1121,1124,1126,1128,1131,1133,1135,1138,1140,1143,1145,1148,1151,1153,1156,1158],{"class":593,"line":632},[480,1111,636],{"class":635},[480,1113,1114],{"class":605}," $logger ",[480,1116,642],{"class":601},[480,1118,1093],{"class":605},[480,1120,488],{"class":601},[480,1122,1123],{"class":649},"createForBrowser",[480,1125,653],{"class":605},[480,1127,656],{"class":601},[480,1129,1130],{"class":618},"node:hook",[480,1132,656],{"class":601},[480,1134,1085],{"class":601},[480,1136,1137],{"class":605}," process",[480,1139,488],{"class":601},[480,1141,1142],{"class":605},"env",[480,1144,488],{"class":601},[480,1146,1147],{"class":605},"NODE_ENV ",[480,1149,1150],{"class":601},"===",[480,1152,615],{"class":601},[480,1154,1155],{"class":618},"development",[480,1157,656],{"class":601},[480,1159,664],{"class":605},[480,1161,1162],{"class":593,"line":734},[480,1163,629],{"emptyLinePlaceholder":628},[480,1165,1166,1169,1172,1175,1178,1180,1182,1184,1187],{"class":593,"line":903},[480,1167,1168],{"class":597},"if",[480,1170,1171],{"class":605}," (",[480,1173,1174],{"class":601},"!",[480,1176,1177],{"class":605},"process",[480,1179,488],{"class":601},[480,1181,1142],{"class":605},[480,1183,488],{"class":601},[480,1185,1186],{"class":605},"B24_HOOK) ",[480,1188,884],{"class":601},[480,1190,1191,1194,1196,1199,1201,1203,1206,1208],{"class":593,"line":917},[480,1192,1193],{"class":597},"  throw",[480,1195,877],{"class":601},[480,1197,1198],{"class":649}," Error",[480,1200,653],{"class":713},[480,1202,656],{"class":601},[480,1204,1205],{"class":618},"B24_HOOK env variable is required",[480,1207,656],{"class":601},[480,1209,664],{"class":713},[480,1211,1212],{"class":593,"line":932},[480,1213,1214],{"class":601},"}\n",[480,1216,1218],{"class":593,"line":1217},8,[480,1219,629],{"emptyLinePlaceholder":628},[480,1221,1223,1225,1227,1229,1231,1233,1235,1238,1240,1242,1244],{"class":593,"line":1222},9,[480,1224,636],{"class":635},[480,1226,639],{"class":605},[480,1228,642],{"class":601},[480,1230,606],{"class":605},[480,1232,488],{"class":601},[480,1234,650],{"class":649},[480,1236,1237],{"class":605},"(process",[480,1239,488],{"class":601},[480,1241,1142],{"class":605},[480,1243,488],{"class":601},[480,1245,1246],{"class":605},"B24_HOOK)\n",[480,1248,1250],{"class":593,"line":1249},10,[480,1251,629],{"emptyLinePlaceholder":628},[480,1253,1255,1257,1260,1262,1265,1268,1270,1272,1274,1277,1279,1282,1284,1287,1290,1293,1295,1298,1300,1303,1305,1307,1310,1312],{"class":593,"line":1254},11,[480,1256,636],{"class":635},[480,1258,1259],{"class":605}," response ",[480,1261,642],{"class":601},[480,1263,1264],{"class":597}," await",[480,1266,1267],{"class":605}," $b24",[480,1269,488],{"class":601},[480,1271,91],{"class":605},[480,1273,488],{"class":601},[480,1275,1276],{"class":605},"v2",[480,1278,488],{"class":601},[480,1280,1281],{"class":605},"call",[480,1283,488],{"class":601},[480,1285,1286],{"class":649},"make",[480,1288,1289],{"class":601},"\u003C{",[480,1291,1292],{"class":713}," id",[480,1294,694],{"class":601},[480,1296,1297],{"class":482}," number",[480,1299,1085],{"class":601},[480,1301,1302],{"class":713}," title",[480,1304,694],{"class":601},[480,1306,697],{"class":482},[480,1308,1309],{"class":601}," }>",[480,1311,653],{"class":605},[480,1313,884],{"class":601},[480,1315,1317,1320,1322,1324,1327,1329],{"class":593,"line":1316},12,[480,1318,1319],{"class":713},"  method",[480,1321,694],{"class":601},[480,1323,615],{"class":601},[480,1325,1326],{"class":618},"crm.item.list",[480,1328,656],{"class":601},[480,1330,700],{"class":601},[480,1332,1334,1337,1339],{"class":593,"line":1333},13,[480,1335,1336],{"class":713},"  params",[480,1338,694],{"class":601},[480,1340,1341],{"class":601}," {\n",[480,1343,1345,1348,1350,1352,1354,1357],{"class":593,"line":1344},14,[480,1346,1347],{"class":713},"    entityTypeId",[480,1349,694],{"class":601},[480,1351,1088],{"class":605},[480,1353,488],{"class":601},[480,1355,1356],{"class":605},"company",[480,1358,700],{"class":601},[480,1360,1362,1365,1367,1370,1372,1375,1377,1379,1381,1384,1386],{"class":593,"line":1361},15,[480,1363,1364],{"class":713},"    select",[480,1366,694],{"class":601},[480,1368,1369],{"class":605}," [",[480,1371,656],{"class":601},[480,1373,1374],{"class":618},"id",[480,1376,656],{"class":601},[480,1378,1085],{"class":601},[480,1380,615],{"class":601},[480,1382,1383],{"class":618},"title",[480,1385,656],{"class":601},[480,1387,1388],{"class":605},"]\n",[480,1390,1392],{"class":593,"line":1391},16,[480,1393,1394],{"class":601},"  },\n",[480,1396,1398,1401,1403,1405,1408],{"class":593,"line":1397},17,[480,1399,1400],{"class":713},"  requestId",[480,1402,694],{"class":601},[480,1404,615],{"class":601},[480,1406,1407],{"class":618},"companies-list",[480,1409,622],{"class":601},[480,1411,1413,1415],{"class":593,"line":1412},18,[480,1414,935],{"class":601},[480,1416,664],{"class":605},[480,1418,1420],{"class":593,"line":1419},19,[480,1421,629],{"emptyLinePlaceholder":628},[480,1423,1425,1427,1429,1431,1434,1436,1439],{"class":593,"line":1424},20,[480,1426,1168],{"class":597},[480,1428,1171],{"class":605},[480,1430,1174],{"class":601},[480,1432,1433],{"class":605},"response",[480,1435,488],{"class":601},[480,1437,1438],{"class":605},"isSuccess) ",[480,1440,884],{"class":601},[480,1442,1444,1447,1449,1452,1454,1456,1459,1461,1463,1465,1468,1470,1473,1475,1478,1481,1483],{"class":593,"line":1443},21,[480,1445,1446],{"class":605},"  $logger",[480,1448,488],{"class":601},[480,1450,1451],{"class":649},"error",[480,1453,653],{"class":713},[480,1455,656],{"class":601},[480,1457,1458],{"class":618},"REST error",[480,1460,656],{"class":601},[480,1462,1085],{"class":601},[480,1464,602],{"class":601},[480,1466,1467],{"class":713}," messages",[480,1469,694],{"class":601},[480,1471,1472],{"class":605}," response",[480,1474,488],{"class":601},[480,1476,1477],{"class":649},"getErrorMessages",[480,1479,1480],{"class":713},"() ",[480,1482,935],{"class":601},[480,1484,664],{"class":713},[480,1486,1488,1491,1493,1496,1498,1501],{"class":593,"line":1487},22,[480,1489,1490],{"class":605},"  process",[480,1492,488],{"class":601},[480,1494,1495],{"class":649},"exit",[480,1497,653],{"class":713},[480,1499,1500],{"class":911},"1",[480,1502,664],{"class":713},[480,1504,1506],{"class":593,"line":1505},23,[480,1507,1214],{"class":601},[480,1509,1511],{"class":593,"line":1510},24,[480,1512,629],{"emptyLinePlaceholder":628},[480,1514,1516,1519,1521,1524,1526,1528,1531,1533,1535,1537,1539,1542,1545,1548],{"class":593,"line":1515},25,[480,1517,1518],{"class":605},"$logger",[480,1520,488],{"class":601},[480,1522,1523],{"class":649},"info",[480,1525,653],{"class":605},[480,1527,656],{"class":601},[480,1529,1530],{"class":618},"Companies",[480,1532,656],{"class":601},[480,1534,1085],{"class":601},[480,1536,1472],{"class":605},[480,1538,488],{"class":601},[480,1540,1541],{"class":649},"getData",[480,1543,1544],{"class":605},"()",[480,1546,1547],{"class":601},"?.",[480,1549,1550],{"class":605},"result)\n",[518,1552,1554],{"id":1553},"getters","Геттеры",[576,1556,1558,478],{"id":1557},"auth",[474,1559,1557],{},[584,1561,1563],{"className":476,"code":1562,"language":477,"meta":478,"style":478},"get auth(): AuthActions\n",[474,1564,1565],{"__ignoreMap":478},[480,1566,1567,1570,1573,1576],{"class":593,"line":594},[480,1568,1569],{"class":482},"get",[480,1571,1572],{"class":482}," auth",[480,1574,1575],{"class":601},"():",[480,1577,1578],{"class":482}," AuthActions\n",[470,1580,1581,1582,1589,1590,694],{},"Возвращает экземпляр ",[503,1583,1586],{"href":1584,"rel":1585},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fhook\u002Fauth.ts",[542],[474,1587,1588],{},"AuthHookManager",", который реализует ",[503,1591,1594],{"href":1592,"rel":1593},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Ftypes\u002Fauth.ts",[542],[474,1595,1596],{"className":476,"language":477,"style":478},[480,1597,1598],{"class":482},"AuthActions",[490,1600,1601,1621,1632,1658],{},[493,1602,1603,1606,1607,1612,1613,1616,1617,1620],{},[474,1604,1605],{},"getAuthData()"," — возвращает синтетический ",[474,1608,1609],{"className":476,"language":477,"style":478},[480,1610,1611],{"class":482},"AuthData",", собранный из секрета вебхука. ",[474,1614,1615],{},"expires"," всегда равен ",[474,1618,1619],{},"0"," (токены вебхуков не истекают).",[493,1622,1623,1626,1627,1631],{},[474,1624,1625],{},"refreshAuth()"," — для совместимости с ",[474,1628,1629],{"className":476,"language":477,"style":478},[480,1630,180],{"class":482},"; возвращает те же данные без сетевого запроса.",[493,1633,1634,1637,1638,1657],{},[474,1635,1636],{},"getUniq(prefix: string)"," — возвращает ",[474,1639,1640,1642,1645,1647,1650,1652,1655],{"className":476,"language":477,"style":478},[480,1641,722],{"class":601},[480,1643,1644],{"class":482},"prefix",[480,1646,728],{"class":601},[480,1648,1649],{"class":482},"_",[480,1651,722],{"class":601},[480,1653,1654],{"class":482},"member_id",[480,1656,728],{"class":601},", используется Pull-клиентом и другими хелперами.",[493,1659,1660,1663,1664,1669],{},[474,1661,1662],{},"isAdmin"," — всегда ",[474,1665,1666],{"className":476,"language":477,"style":478},[480,1667,1668],{"class":482},"true"," (предполагается, что вебхуки создаются администраторами).",[576,1671,1673,478],{"id":1672},"isinit",[474,1674,1675],{},"isInit",[584,1677,1679],{"className":476,"code":1678,"language":477,"meta":478,"style":478},"get isInit(): boolean\n",[474,1680,1681],{"__ignoreMap":478},[480,1682,1683,1685,1688,1690],{"class":593,"line":594},[480,1684,1569],{"class":482},[480,1686,1687],{"class":482}," isInit",[480,1689,1575],{"class":601},[480,1691,1692],{"class":482}," boolean\n",[470,1694,1695,1696,1700,1701,1704,1705,562],{},"Всегда ",[474,1697,1698],{"className":476,"language":477,"style":478},[480,1699,1668],{"class":482}," сразу после создания экземпляра — вызов ",[474,1702,1703],{},"init()"," для ",[474,1706,1707],{"className":476,"language":477,"style":478},[480,1708,117],{"class":482},[576,1710,1712,1714,1715,478],{"id":1711},"actions-tools",[474,1713,91],{}," \u002F ",[474,1716,303],{},[470,1718,1719,1720,1724],{},"Та же структура, что и у каждого класса ",[474,1721,1722],{"className":476,"language":477,"style":478},[480,1723,327],{"class":482},". См.:",[490,1726,1727,1741,1755,1769,1783,1797],{},[493,1728,1729,1714,1735],{},[503,1730,1732],{"href":1731},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-rest-api-ver2\u002F",[474,1733,1734],{},"CallV2.make",[503,1736,1738],{"href":1737},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-rest-api-ver3\u002F",[474,1739,1740],{},"CallV3.make",[493,1742,1743,1714,1749],{},[503,1744,1746],{"href":1745},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-list-rest-api-ver2\u002F",[474,1747,1748],{},"CallListV2.make",[503,1750,1752],{"href":1751},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-list-rest-api-ver3\u002F",[474,1753,1754],{},"CallListV3.make",[493,1756,1757,1714,1763],{},[503,1758,1760],{"href":1759},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffetch-list-rest-api-ver2\u002F",[474,1761,1762],{},"FetchListV2.make",[503,1764,1766],{"href":1765},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffetch-list-rest-api-ver3\u002F",[474,1767,1768],{},"FetchListV3.make",[493,1770,1771,1714,1777],{},[503,1772,1774],{"href":1773},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-rest-api-ver2\u002F",[474,1775,1776],{},"BatchV2.make",[503,1778,1780],{"href":1779},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-rest-api-ver3\u002F",[474,1781,1782],{},"BatchV3.make",[493,1784,1785,1714,1791],{},[503,1786,1788],{"href":1787},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-by-chunk-rest-api-ver2\u002F",[474,1789,1790],{},"BatchByChunkV2.make",[503,1792,1794],{"href":1793},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-by-chunk-rest-api-ver3\u002F",[474,1795,1796],{},"BatchByChunkV3.make",[493,1798,1799,551,1805],{},[503,1800,1802],{"href":1801},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-health-check\u002F",[474,1803,1804],{},"tools.healthCheck.make",[503,1806,1808],{"href":1807},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ftools-ping\u002F",[474,1809,1810],{},"tools.ping.make",[518,1812,1814],{"id":1813},"methods","Методы",[576,1816,1818,478],{"id":1817},"gettargetorigin",[474,1819,1820],{},"getTargetOrigin",[584,1822,1824],{"className":476,"code":1823,"language":477,"meta":478,"style":478},"getTargetOrigin(): string\n",[474,1825,1826],{"__ignoreMap":478},[480,1827,1828,1830,1832],{"class":593,"line":594},[480,1829,1820],{"class":482},[480,1831,1575],{"class":601},[480,1833,1834],{"class":482}," string\n",[470,1836,1837,1838,1032],{},"Возвращает origin портала (",[474,1839,896],{},[576,1841,1843,478],{"id":1842},"gettargetoriginwithpath",[474,1844,1845],{},"getTargetOriginWithPath",[584,1847,1849],{"className":476,"code":1848,"language":477,"meta":478,"style":478},"getTargetOriginWithPath(): Map\u003CApiVersion, string>\n",[474,1850,1851],{"__ignoreMap":478},[480,1852,1853,1855,1857,1860,1862,1865,1867,1869],{"class":593,"line":594},[480,1854,1845],{"class":482},[480,1856,1575],{"class":601},[480,1858,1859],{"class":482}," Map",[480,1861,722],{"class":601},[480,1863,1864],{"class":482},"ApiVersion",[480,1866,1085],{"class":601},[480,1868,697],{"class":482},[480,1870,1871],{"class":601},">\n",[470,1873,1874],{},"Возвращает REST-endpoint для каждой версии:",[490,1876,1877,1891],{},[493,1878,1879,1887,1888],{},[474,1880,1881,1883,1885],{"className":476,"language":477,"style":478},[480,1882,1864],{"class":482},[480,1884,488],{"class":601},[480,1886,1276],{"class":482}," → ",[474,1889,1890],{},"https:\u002F\u002Fyour_domain.bitrix24.com\u002Frest\u002F\u003CuserId>\u002F\u003Csecret>",[493,1892,1893,1887,1902],{},[474,1894,1895,1897,1899],{"className":476,"language":477,"style":478},[480,1896,1864],{"class":482},[480,1898,488],{"class":601},[480,1900,1901],{"class":482},"v3",[474,1903,1904],{},"https:\u002F\u002Fyour_domain.bitrix24.com\u002Frest\u002Fapi\u002F\u003CuserId>\u002F\u003Csecret>",[576,1906,1908,478],{"id":1907},"offclientsidewarning",[474,1909,516],{},[584,1911,1913],{"className":476,"code":1912,"language":477,"meta":478,"style":478},"offClientSideWarning(): void\n",[474,1914,1915],{"__ignoreMap":478},[480,1916,1917,1919,1921],{"class":593,"line":594},[480,1918,516],{"class":482},[480,1920,1575],{"class":601},[480,1922,1923],{"class":482}," void\n",[470,1925,1926,1927,1931],{},"Отключает runtime-предупреждение, которое оба HTTP-клиента выводят при обнаружении ",[474,1928,1929],{"className":476,"language":477,"style":478},[480,1930,117],{"class":482}," в браузерном окружении. Используйте только если вы намеренно проксируете вебхук через серверную обёртку, которая удаляет секрет до любого запроса из браузера.",[576,1933,1935,1714,1938,478],{"id":1934},"gethttpclient-sethttpclient",[474,1936,1937],{},"getHttpClient",[474,1939,1940],{},"setHttpClient",[584,1942,1944],{"className":476,"code":1943,"language":477,"meta":478,"style":478},"getHttpClient(version: ApiVersion): TypeHttp\nsetHttpClient(version: ApiVersion, client: TypeHttp): void\n",[474,1945,1946,1966],{"__ignoreMap":478},[480,1947,1948,1950,1952,1955,1957,1960,1963],{"class":593,"line":594},[480,1949,1937],{"class":482},[480,1951,653],{"class":601},[480,1953,1954],{"class":690},"version",[480,1956,694],{"class":601},[480,1958,1959],{"class":482}," ApiVersion",[480,1961,1962],{"class":601},"):",[480,1964,1965],{"class":482}," TypeHttp\n",[480,1967,1968,1970,1972,1974,1976,1978,1980,1983,1985,1988,1990],{"class":593,"line":625},[480,1969,1940],{"class":482},[480,1971,653],{"class":601},[480,1973,1954],{"class":690},[480,1975,694],{"class":601},[480,1977,1959],{"class":482},[480,1979,1085],{"class":601},[480,1981,1982],{"class":690}," client",[480,1984,694],{"class":601},[480,1986,1987],{"class":482}," TypeHttp",[480,1989,1962],{"class":601},[480,1991,1923],{"class":482},[470,1993,1994,1995,488],{},"Прямой доступ к нижележащим HTTP-транспортам (по одному на каждую версию REST API). См. ",[503,1996,1998],{"href":1997},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcore-http\u002F","справочник Http",[576,2000,2002,478],{"id":2001},"setrestrictionmanagerparams",[474,2003,2004],{},"setRestrictionManagerParams",[584,2006,2008],{"className":476,"code":2007,"language":477,"meta":478,"style":478},"setRestrictionManagerParams(params: RestrictionParams): Promise\u003Cvoid>\n",[474,2009,2010],{"__ignoreMap":478},[480,2011,2012,2014,2016,2019,2021,2024,2026,2029,2031,2034],{"class":593,"line":594},[480,2013,2004],{"class":482},[480,2015,653],{"class":601},[480,2017,2018],{"class":690},"params",[480,2020,694],{"class":601},[480,2022,2023],{"class":482}," RestrictionParams",[480,2025,1962],{"class":601},[480,2027,2028],{"class":482}," Promise",[480,2030,722],{"class":601},[480,2032,2033],{"class":482},"void",[480,2035,1871],{"class":601},[470,2037,2038,2039,488],{},"Заменяет конфигурацию rate limit \u002F operating limit \u002F адаптивной задержки сразу на клиентах v2 и v3. См. ",[503,2040,288],{"href":829},[576,2042,2044,1714,2047,478],{"id":2043},"getlogger-setlogger",[474,2045,2046],{},"getLogger",[474,2048,2049],{},"setLogger",[584,2051,2053],{"className":476,"code":2052,"language":477,"meta":478,"style":478},"getLogger(): LoggerInterface\nsetLogger(logger: LoggerInterface): void\n",[474,2054,2055,2064],{"__ignoreMap":478},[480,2056,2057,2059,2061],{"class":593,"line":594},[480,2058,2046],{"class":482},[480,2060,1575],{"class":601},[480,2062,2063],{"class":482}," LoggerInterface\n",[480,2065,2066,2068,2070,2072,2074,2077,2079],{"class":593,"line":625},[480,2067,2049],{"class":482},[480,2069,653],{"class":601},[480,2071,249],{"class":690},[480,2073,694],{"class":601},[480,2075,2076],{"class":482}," LoggerInterface",[480,2078,1962],{"class":601},[480,2080,1923],{"class":482},[470,2082,2083,2084,488],{},"Получает или заменяет логгер, используемый SDK и передаваемый в HTTP-клиенты. См. ",[503,2085,2087],{"href":2086},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Flogger\u002F","Логгер",[576,2089,2091,478],{"id":2090},"destroy",[474,2092,2090],{},[584,2094,2096],{"className":476,"code":2095,"language":477,"meta":478,"style":478},"destroy(): void\n",[474,2097,2098],{"__ignoreMap":478},[480,2099,2100,2102,2104],{"class":593,"line":594},[480,2101,2090],{"class":482},[480,2103,1575],{"class":601},[480,2105,1923],{"class":482},[470,2107,2108],{},"Освобождает внутренние ссылки. Вызывайте перед завершением процесса или при удалении долгоживущего экземпляра.",[584,2110,2112],{"className":586,"code":2111,"language":588,"meta":478,"style":478},"function shutdown() {\n  $b24.destroy()\n}\n",[474,2113,2114,2126,2138],{"__ignoreMap":478},[480,2115,2116,2119,2122,2124],{"class":593,"line":594},[480,2117,2118],{"class":635},"function",[480,2120,2121],{"class":649}," shutdown",[480,2123,1544],{"class":601},[480,2125,1341],{"class":601},[480,2127,2128,2131,2133,2135],{"class":593,"line":625},[480,2129,2130],{"class":605},"  $b24",[480,2132,488],{"class":601},[480,2134,2090],{"class":649},[480,2136,2137],{"class":713},"()\n",[480,2139,2140],{"class":593,"line":632},[480,2141,1214],{"class":601},[518,2143,2145],{"id":2144},"storing-the-webhook-secret","Хранение секрета вебхука",[470,2147,2148],{},"\u002F\u002F @check-ignore: partial snippet — illustrates env vs inline URL pattern",[584,2150,2152],{"className":586,"code":2151,"language":588,"meta":478,"style":478},"\u002F\u002F ✅ Серверная переменная окружения\nconst $b24ok = B24Hook.fromWebhookUrl(process.env.BITRIX24_WEBHOOK_URL!)\n\n\u002F\u002F ❌ Никогда не вставляйте URL в клиентский код и не коммитьте его в Git\nconst $b24bad = B24Hook.fromWebhookUrl(\n  'https:\u002F\u002Fcompany.bitrix24.com\u002Frest\u002F1\u002Fabcdef123456\u002F'\n)\n",[474,2153,2154,2160,2190,2194,2199,2216,2226],{"__ignoreMap":478},[480,2155,2156],{"class":593,"line":594},[480,2157,2159],{"class":2158},"sHwdD","\u002F\u002F ✅ Серверная переменная окружения\n",[480,2161,2162,2164,2167,2169,2171,2173,2175,2177,2179,2181,2183,2186,2188],{"class":593,"line":625},[480,2163,636],{"class":635},[480,2165,2166],{"class":605}," $b24ok ",[480,2168,642],{"class":601},[480,2170,606],{"class":605},[480,2172,488],{"class":601},[480,2174,650],{"class":649},[480,2176,1237],{"class":605},[480,2178,488],{"class":601},[480,2180,1142],{"class":605},[480,2182,488],{"class":601},[480,2184,2185],{"class":605},"BITRIX24_WEBHOOK_URL",[480,2187,1174],{"class":601},[480,2189,664],{"class":605},[480,2191,2192],{"class":593,"line":632},[480,2193,629],{"emptyLinePlaceholder":628},[480,2195,2196],{"class":593,"line":734},[480,2197,2198],{"class":2158},"\u002F\u002F ❌ Никогда не вставляйте URL в клиентский код и не коммитьте его в Git\n",[480,2200,2201,2203,2206,2208,2210,2212,2214],{"class":593,"line":903},[480,2202,636],{"class":635},[480,2204,2205],{"class":605}," $b24bad ",[480,2207,642],{"class":601},[480,2209,606],{"class":605},[480,2211,488],{"class":601},[480,2213,650],{"class":649},[480,2215,685],{"class":605},[480,2217,2218,2221,2224],{"class":593,"line":917},[480,2219,2220],{"class":601},"  '",[480,2222,2223],{"class":618},"https:\u002F\u002Fcompany.bitrix24.com\u002Frest\u002F1\u002Fabcdef123456\u002F",[480,2225,622],{"class":601},[480,2227,2228],{"class":593,"line":932},[480,2229,664],{"class":605},[518,2231,2233],{"id":2232},"faq","FAQ",[2235,2236,2237,2249,2255,2265],"accordion",{},[2238,2239,2241],"accordion-item",{"label":2240},"Где взять URL вебхука?",[470,2242,2243,2244,488],{},"Bitrix24 → Настройки → Разработчикам → Вебхуки → Входящий вебхук. См. ",[503,2245,2248],{"href":2246,"rel":2247},"https:\u002F\u002Fapidocs.bitrix24.ru\u002Flocal-integrations\u002Flocal-webhooks.html#vhodyashij-vebhuk",[542],"официальную документацию",[2238,2250,2252],{"label":2251},"Может ли один экземпляр B24Hook обслуживать весь сервер?",[470,2253,2254],{},"Да. Создайте экземпляр один раз при запуске и переиспользуйте его между запросами — HTTP-клиенты переиспользуют общий экземпляр axios и состояние лимитера.",[2238,2256,2258],{"label":2257},"Почему fromWebhookUrl выбрасывает „Webhook requires HTTPS protocol“?",[470,2259,2260,2261,2264],{},"Фабрика намеренно отклоняет ",[474,2262,2263],{},"http:\u002F\u002F","-URL. Секреты вебхуков должны передаваться по TLS.",[2238,2266,2268],{"label":2267},"Что означает „Access denied“?",[470,2269,2270],{},"У пользователя вебхука нет прав на вызванный REST-метод, либо сам вебхук был отозван. Пересоздайте вебхук с необходимыми scope.",[2272,2273,2274],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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}",{"title":478,"searchDepth":625,"depth":625,"links":2276},[2277,2278,2282,2283,2289,2300,2301],{"id":520,"depth":625,"text":521},{"id":565,"depth":625,"text":566,"children":2279},[2280,2281],{"id":578,"depth":632,"text":579},{"id":835,"depth":632,"text":836},{"id":1068,"depth":625,"text":1069},{"id":1553,"depth":625,"text":1554,"children":2284},[2285,2286,2287],{"id":1557,"depth":632,"text":1557},{"id":1672,"depth":632,"text":1675},{"id":1711,"depth":632,"text":2288},"actions \u002F tools",{"id":1813,"depth":625,"text":1814,"children":2290},[2291,2292,2293,2294,2296,2297,2299],{"id":1817,"depth":632,"text":1820},{"id":1842,"depth":632,"text":1845},{"id":1907,"depth":632,"text":516},{"id":1934,"depth":632,"text":2295},"getHttpClient \u002F setHttpClient",{"id":2001,"depth":632,"text":2004},{"id":2043,"depth":632,"text":2298},"getLogger \u002F setLogger",{"id":2090,"depth":632,"text":2090},{"id":2144,"depth":625,"text":2145},{"id":2232,"depth":625,"text":2233},"md",[2304,2307,2308],{"label":117,"iconName":2305,"to":2306},"GitHubIcon","https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fhook\u002Fb24.ts",{"label":1588,"iconName":2305,"to":1584},{"label":327,"iconName":2305,"to":540},{},{"title":117},{"title":461,"description":120},"ZHTni8HvBJ7zaA1yxDhehu85YIv1JJouEnH2sdYjw6c",{"data":2314,"body":2315},{},{"type":2316,"children":2317},"root",[2318],{"type":2319,"tag":470,"props":2320,"children":2321},"element",{},[2322],{"type":2323,"value":120},"text",1783080224112]