[{"data":1,"prerenderedAt":2661},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-installation-react":459,"-docs-getting-started-installation-react-description":2650},[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":15,"description":36,"extension":2645,"links":15,"meta":2646,"navigation":2647,"path":34,"restApiVersion":15,"seo":2648,"stem":35,"__hash__":2649},"docs\u002Fdocs\u002F1.getting-started\u002F2.installation\u002F3.react.md","Проект на React",{"type":463,"value":464,"toc":2638},"minimark",[465,472,477,2634],[466,467,468],"warning",{},[469,470,471],"p",{},"Эта страница ещё обновляется. Некоторые данные могут отсутствовать — мы их вскоре дополним.",[473,474,476],"h2",{"id":475},"add-to-a-react-project","Установка в проект React",[478,479,481,486,559,563,566,601,604],"steps",{"level":480},"3",[482,483,485],"h3",{"id":484},"install-the-bitrix24-js-sdk-package","Установка пакета Bitrix24 JS SDK",[487,488,490,516,530,545],"code-group",{"sync":489},"pm",[491,492,498],"pre",{"className":493,"code":494,"filename":495,"language":496,"meta":497,"style":497},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @bitrix24\u002Fb24jssdk\n","pnpm","bash","",[499,500,501],"code",{"__ignoreMap":497},[502,503,506,509,513],"span",{"class":504,"line":505},"line",1,[502,507,495],{"class":508},"sBMFI",[502,510,512],{"class":511},"sfazB"," add",[502,514,515],{"class":511}," @bitrix24\u002Fb24jssdk\n",[491,517,520],{"className":493,"code":518,"filename":519,"language":496,"meta":497,"style":497},"yarn add @bitrix24\u002Fb24jssdk\n","yarn",[499,521,522],{"__ignoreMap":497},[502,523,524,526,528],{"class":504,"line":505},[502,525,519],{"class":508},[502,527,512],{"class":511},[502,529,515],{"class":511},[491,531,534],{"className":493,"code":532,"filename":533,"language":496,"meta":497,"style":497},"npm install @bitrix24\u002Fb24jssdk\n","npm",[499,535,536],{"__ignoreMap":497},[502,537,538,540,543],{"class":504,"line":505},[502,539,533],{"class":508},[502,541,542],{"class":511}," install",[502,544,515],{"class":511},[491,546,549],{"className":493,"code":547,"filename":548,"language":496,"meta":497,"style":497},"bun add @bitrix24\u002Fb24jssdk\n","bun",[499,550,551],{"__ignoreMap":497},[502,552,553,555,557],{"class":504,"line":505},[502,554,548],{"class":508},[502,556,512],{"class":511},[502,558,515],{"class":511},[482,560,562],{"id":561},"import","Импорт",[469,564,565],{},"Импортируйте библиотеку в проект:",[491,567,571],{"className":568,"code":569,"language":570,"meta":497,"style":497},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { LoggerFactory } from '@bitrix24\u002Fb24jssdk'\n","ts",[499,572,573],{"__ignoreMap":497},[502,574,575,578,582,586,589,592,595,598],{"class":504,"line":505},[502,576,561],{"class":577},"s7zQu",[502,579,581],{"class":580},"sMK4o"," {",[502,583,585],{"class":584},"sTEyZ"," LoggerFactory",[502,587,588],{"class":580}," }",[502,590,591],{"class":577}," from",[502,593,594],{"class":580}," '",[502,596,597],{"class":511},"@bitrix24\u002Fb24jssdk",[502,599,600],{"class":580},"'\n",[482,602,136],{"id":603},"init",[605,606,607,2116,2252],"tabs",{},[608,609,610,616,622,2084,2087],"tabs-item",{"label":133},[469,611,612,613,615],{},"Для работы с Bitrix24 из приложения, встроенного в интерфейс Bitrix24, используйте объект ",[499,614,133],{},".",[469,617,618,619,615],{},"Он инициализируется на стороне клиента через ",[499,620,621],{},"initializeB24Frame()",[491,623,628],{"className":624,"code":625,"filename":626,"language":627,"meta":497,"style":497},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import type { B24Frame, ISODate } from '@bitrix24\u002Fb24jssdk';\nimport type { DateTime } from 'luxon';\nimport { useEffect, useRef } from 'react';\nimport { initializeB24Frame, LoggerFactory, EnumCrmEntityTypeId, Text } from '@bitrix24\u002Fb24jssdk';\n\nconst devMode = typeof import.meta !== 'undefined' && (import.meta.env?.DEV ?? false);\nconst $logger = LoggerFactory.createForBrowser('MyApp', devMode);\n\ntype CompanyResponse = { id: number; title: string; createdTime: ISODate };\ntype Company = Omit\u003CCompanyResponse, 'createdTime'> & { createdTime: DateTime };\n\nasync function loadCompanyList(b24: B24Frame): Promise\u003CCompany[]> {\n  const result: Company[] = [];\n\n  const response = await b24.actions.v2.call.make\u003C{ items: CompanyResponse[] }>({\n    method: 'crm.item.list',\n    params: {\n      entityTypeId: EnumCrmEntityTypeId.company,\n      order: { id: 'DESC' },\n      select: ['id', 'title', 'createdTime'],\n    },\n  });\n\n  if (!response.isSuccess) {\n    throw new Error(`API Error: ${response.getErrorMessages().join('; ')}`);\n  }\n\n  const responseData = response.getData()!.result as { items: CompanyResponse[] };\n  responseData.items.forEach((entity) => {\n    result.push({\n      id: entity.id,\n      title: entity.title,\n      createdTime: Text.toDateTime(entity.createdTime),\n    });\n  });\n\n  return result;\n}\n\nfunction App() {\n  const b24Ref = useRef\u003CB24Frame | null>(null);\n\n  useEffect(() => {\n    let isMounted = true;\n\n    async function init() {\n      try {\n        const b24 = await initializeB24Frame();\n        if (!isMounted) {\n          b24.destroy();\n          return;\n        }\n        b24Ref.current = b24;\n\n        const companies = await loadCompanyList(b24);\n        $logger.notice('Companies loaded successfully', { companies });\n      } catch (error) {\n        $logger.error('Some problems', { error });\n      }\n    }\n\n    init();\n\n    return () => {\n      isMounted = false;\n      b24Ref.current?.destroy();\n    };\n  }, []);\n\n  return (\n    \u003Cdiv style={{ padding: '20px', fontFamily: 'sans-serif' }}>\n      \u003Ch1>B24 JS SDK - React Demo\u003C\u002Fh1>\n      \u003Cp>See the result in the developer console\u003C\u002Fp>\n      \u003Cp style={{ color: '#666', fontSize: '14px' }}>\n        Note: This app must be opened inside Bitrix24 as a frame application.\n      \u003C\u002Fp>\n    \u003C\u002Fdiv>\n  );\n}\n\nexport default App;\n","App.tsx","tsx",[499,629,630,662,687,715,751,758,828,863,868,915,959,964,1005,1028,1033,1088,1106,1116,1133,1157,1197,1203,1213,1218,1242,1298,1304,1309,1350,1380,1395,1412,1428,1455,1465,1474,1479,1489,1495,1500,1513,1546,1551,1565,1581,1586,1601,1609,1627,1644,1659,1667,1673,1690,1695,1717,1749,1767,1798,1804,1810,1815,1825,1830,1843,1855,1873,1879,1890,1895,1903,1947,1969,1987,2027,2033,2043,2053,2061,2066,2071],{"__ignoreMap":497},[502,631,632,634,637,639,642,645,648,650,652,654,656,659],{"class":504,"line":505},[502,633,561],{"class":577},[502,635,636],{"class":577}," type",[502,638,581],{"class":580},[502,640,641],{"class":584}," B24Frame",[502,643,644],{"class":580},",",[502,646,647],{"class":584}," ISODate",[502,649,588],{"class":580},[502,651,591],{"class":577},[502,653,594],{"class":580},[502,655,597],{"class":511},[502,657,658],{"class":580},"'",[502,660,661],{"class":580},";\n",[502,663,665,667,669,671,674,676,678,680,683,685],{"class":504,"line":664},2,[502,666,561],{"class":577},[502,668,636],{"class":577},[502,670,581],{"class":580},[502,672,673],{"class":584}," DateTime",[502,675,588],{"class":580},[502,677,591],{"class":577},[502,679,594],{"class":580},[502,681,682],{"class":511},"luxon",[502,684,658],{"class":580},[502,686,661],{"class":580},[502,688,690,692,694,697,699,702,704,706,708,711,713],{"class":504,"line":689},3,[502,691,561],{"class":577},[502,693,581],{"class":580},[502,695,696],{"class":584}," useEffect",[502,698,644],{"class":580},[502,700,701],{"class":584}," useRef",[502,703,588],{"class":580},[502,705,591],{"class":577},[502,707,594],{"class":580},[502,709,710],{"class":511},"react",[502,712,658],{"class":580},[502,714,661],{"class":580},[502,716,718,720,722,725,727,729,731,734,736,739,741,743,745,747,749],{"class":504,"line":717},4,[502,719,561],{"class":577},[502,721,581],{"class":580},[502,723,724],{"class":584}," initializeB24Frame",[502,726,644],{"class":580},[502,728,585],{"class":584},[502,730,644],{"class":580},[502,732,733],{"class":584}," EnumCrmEntityTypeId",[502,735,644],{"class":580},[502,737,738],{"class":584}," Text",[502,740,588],{"class":580},[502,742,591],{"class":577},[502,744,594],{"class":580},[502,746,597],{"class":511},[502,748,658],{"class":580},[502,750,661],{"class":580},[502,752,754],{"class":504,"line":753},5,[502,755,757],{"emptyLinePlaceholder":756},true,"\n",[502,759,761,765,768,771,774,777,779,782,785,787,790,792,795,798,800,802,805,807,810,813,816,819,823,826],{"class":504,"line":760},6,[502,762,764],{"class":763},"spNyl","const",[502,766,767],{"class":584}," devMode ",[502,769,770],{"class":580},"=",[502,772,773],{"class":580}," typeof",[502,775,776],{"class":577}," import",[502,778,615],{"class":580},[502,780,781],{"class":584},"meta ",[502,783,784],{"class":580},"!==",[502,786,594],{"class":580},[502,788,789],{"class":511},"undefined",[502,791,658],{"class":580},[502,793,794],{"class":580}," &&",[502,796,797],{"class":584}," (",[502,799,561],{"class":577},[502,801,615],{"class":580},[502,803,804],{"class":584},"meta",[502,806,615],{"class":580},[502,808,809],{"class":584},"env",[502,811,812],{"class":580},"?.",[502,814,815],{"class":584},"DEV ",[502,817,818],{"class":580},"??",[502,820,822],{"class":821},"sfNiH"," false",[502,824,825],{"class":584},")",[502,827,661],{"class":580},[502,829,831,833,836,838,840,842,846,849,851,854,856,858,861],{"class":504,"line":830},7,[502,832,764],{"class":763},[502,834,835],{"class":584}," $logger ",[502,837,770],{"class":580},[502,839,585],{"class":584},[502,841,615],{"class":580},[502,843,845],{"class":844},"s2Zo4","createForBrowser",[502,847,848],{"class":584},"(",[502,850,658],{"class":580},[502,852,853],{"class":511},"MyApp",[502,855,658],{"class":580},[502,857,644],{"class":580},[502,859,860],{"class":584}," devMode)",[502,862,661],{"class":580},[502,864,866],{"class":504,"line":865},8,[502,867,757],{"emptyLinePlaceholder":756},[502,869,871,874,877,880,882,886,889,892,895,898,900,903,905,908,910,912],{"class":504,"line":870},9,[502,872,873],{"class":763},"type",[502,875,876],{"class":508}," CompanyResponse",[502,878,879],{"class":580}," =",[502,881,581],{"class":580},[502,883,885],{"class":884},"swJcz"," id",[502,887,888],{"class":580},":",[502,890,891],{"class":508}," number",[502,893,894],{"class":580},";",[502,896,897],{"class":884}," title",[502,899,888],{"class":580},[502,901,902],{"class":508}," string",[502,904,894],{"class":580},[502,906,907],{"class":884}," createdTime",[502,909,888],{"class":580},[502,911,647],{"class":508},[502,913,914],{"class":580}," };\n",[502,916,918,920,923,925,928,931,934,936,938,941,943,946,949,951,953,955,957],{"class":504,"line":917},10,[502,919,873],{"class":763},[502,921,922],{"class":508}," Company",[502,924,879],{"class":580},[502,926,927],{"class":508}," Omit",[502,929,930],{"class":580},"\u003C",[502,932,933],{"class":508},"CompanyResponse",[502,935,644],{"class":580},[502,937,594],{"class":580},[502,939,940],{"class":511},"createdTime",[502,942,658],{"class":580},[502,944,945],{"class":580},">",[502,947,948],{"class":580}," &",[502,950,581],{"class":580},[502,952,907],{"class":884},[502,954,888],{"class":580},[502,956,673],{"class":508},[502,958,914],{"class":580},[502,960,962],{"class":504,"line":961},11,[502,963,757],{"emptyLinePlaceholder":756},[502,965,967,970,973,976,978,982,984,986,989,992,994,997,1000,1002],{"class":504,"line":966},12,[502,968,969],{"class":763},"async",[502,971,972],{"class":763}," function",[502,974,975],{"class":844}," loadCompanyList",[502,977,848],{"class":580},[502,979,981],{"class":980},"sHdIc","b24",[502,983,888],{"class":580},[502,985,641],{"class":508},[502,987,988],{"class":580},"):",[502,990,991],{"class":508}," Promise",[502,993,930],{"class":580},[502,995,996],{"class":508},"Company",[502,998,999],{"class":584},"[]",[502,1001,945],{"class":580},[502,1003,1004],{"class":580}," {\n",[502,1006,1008,1011,1014,1016,1018,1021,1023,1026],{"class":504,"line":1007},13,[502,1009,1010],{"class":763},"  const",[502,1012,1013],{"class":584}," result",[502,1015,888],{"class":580},[502,1017,922],{"class":508},[502,1019,1020],{"class":884},"[] ",[502,1022,770],{"class":580},[502,1024,1025],{"class":884}," []",[502,1027,661],{"class":580},[502,1029,1031],{"class":504,"line":1030},14,[502,1032,757],{"emptyLinePlaceholder":756},[502,1034,1036,1038,1041,1043,1046,1049,1051,1053,1055,1058,1060,1063,1065,1068,1071,1074,1076,1078,1080,1083,1085],{"class":504,"line":1035},15,[502,1037,1010],{"class":763},[502,1039,1040],{"class":584}," response",[502,1042,879],{"class":580},[502,1044,1045],{"class":577}," await",[502,1047,1048],{"class":584}," b24",[502,1050,615],{"class":580},[502,1052,91],{"class":584},[502,1054,615],{"class":580},[502,1056,1057],{"class":584},"v2",[502,1059,615],{"class":580},[502,1061,1062],{"class":584},"call",[502,1064,615],{"class":580},[502,1066,1067],{"class":844},"make",[502,1069,1070],{"class":580},"\u003C{",[502,1072,1073],{"class":884}," items",[502,1075,888],{"class":580},[502,1077,876],{"class":508},[502,1079,1020],{"class":884},[502,1081,1082],{"class":580},"}>",[502,1084,848],{"class":884},[502,1086,1087],{"class":580},"{\n",[502,1089,1091,1094,1096,1098,1101,1103],{"class":504,"line":1090},16,[502,1092,1093],{"class":884},"    method",[502,1095,888],{"class":580},[502,1097,594],{"class":580},[502,1099,1100],{"class":511},"crm.item.list",[502,1102,658],{"class":580},[502,1104,1105],{"class":580},",\n",[502,1107,1109,1112,1114],{"class":504,"line":1108},17,[502,1110,1111],{"class":884},"    params",[502,1113,888],{"class":580},[502,1115,1004],{"class":580},[502,1117,1119,1122,1124,1126,1128,1131],{"class":504,"line":1118},18,[502,1120,1121],{"class":884},"      entityTypeId",[502,1123,888],{"class":580},[502,1125,733],{"class":584},[502,1127,615],{"class":580},[502,1129,1130],{"class":584},"company",[502,1132,1105],{"class":580},[502,1134,1136,1139,1141,1143,1145,1147,1149,1152,1154],{"class":504,"line":1135},19,[502,1137,1138],{"class":884},"      order",[502,1140,888],{"class":580},[502,1142,581],{"class":580},[502,1144,885],{"class":884},[502,1146,888],{"class":580},[502,1148,594],{"class":580},[502,1150,1151],{"class":511},"DESC",[502,1153,658],{"class":580},[502,1155,1156],{"class":580}," },\n",[502,1158,1160,1163,1165,1168,1170,1173,1175,1177,1179,1182,1184,1186,1188,1190,1192,1195],{"class":504,"line":1159},20,[502,1161,1162],{"class":884},"      select",[502,1164,888],{"class":580},[502,1166,1167],{"class":884}," [",[502,1169,658],{"class":580},[502,1171,1172],{"class":511},"id",[502,1174,658],{"class":580},[502,1176,644],{"class":580},[502,1178,594],{"class":580},[502,1180,1181],{"class":511},"title",[502,1183,658],{"class":580},[502,1185,644],{"class":580},[502,1187,594],{"class":580},[502,1189,940],{"class":511},[502,1191,658],{"class":580},[502,1193,1194],{"class":884},"]",[502,1196,1105],{"class":580},[502,1198,1200],{"class":504,"line":1199},21,[502,1201,1202],{"class":580},"    },\n",[502,1204,1206,1209,1211],{"class":504,"line":1205},22,[502,1207,1208],{"class":580},"  }",[502,1210,825],{"class":884},[502,1212,661],{"class":580},[502,1214,1216],{"class":504,"line":1215},23,[502,1217,757],{"emptyLinePlaceholder":756},[502,1219,1221,1224,1226,1229,1232,1234,1237,1240],{"class":504,"line":1220},24,[502,1222,1223],{"class":577},"  if",[502,1225,797],{"class":884},[502,1227,1228],{"class":580},"!",[502,1230,1231],{"class":584},"response",[502,1233,615],{"class":580},[502,1235,1236],{"class":584},"isSuccess",[502,1238,1239],{"class":884},") ",[502,1241,1087],{"class":580},[502,1243,1245,1248,1251,1254,1256,1259,1262,1265,1267,1269,1272,1275,1277,1280,1282,1284,1287,1289,1291,1294,1296],{"class":504,"line":1244},25,[502,1246,1247],{"class":577},"    throw",[502,1249,1250],{"class":580}," new",[502,1252,1253],{"class":844}," Error",[502,1255,848],{"class":884},[502,1257,1258],{"class":580},"`",[502,1260,1261],{"class":511},"API Error: ",[502,1263,1264],{"class":580},"${",[502,1266,1231],{"class":584},[502,1268,615],{"class":580},[502,1270,1271],{"class":844},"getErrorMessages",[502,1273,1274],{"class":584},"()",[502,1276,615],{"class":580},[502,1278,1279],{"class":844},"join",[502,1281,848],{"class":584},[502,1283,658],{"class":580},[502,1285,1286],{"class":511},"; ",[502,1288,658],{"class":580},[502,1290,825],{"class":584},[502,1292,1293],{"class":580},"}`",[502,1295,825],{"class":884},[502,1297,661],{"class":580},[502,1299,1301],{"class":504,"line":1300},26,[502,1302,1303],{"class":580},"  }\n",[502,1305,1307],{"class":504,"line":1306},27,[502,1308,757],{"emptyLinePlaceholder":756},[502,1310,1312,1314,1317,1319,1321,1323,1326,1328,1331,1334,1337,1339,1341,1343,1345,1347],{"class":504,"line":1311},28,[502,1313,1010],{"class":763},[502,1315,1316],{"class":584}," responseData",[502,1318,879],{"class":580},[502,1320,1040],{"class":584},[502,1322,615],{"class":580},[502,1324,1325],{"class":844},"getData",[502,1327,1274],{"class":884},[502,1329,1330],{"class":580},"!.",[502,1332,1333],{"class":584},"result",[502,1335,1336],{"class":577}," as",[502,1338,581],{"class":580},[502,1340,1073],{"class":884},[502,1342,888],{"class":580},[502,1344,876],{"class":508},[502,1346,1020],{"class":884},[502,1348,1349],{"class":580},"};\n",[502,1351,1353,1356,1358,1361,1363,1366,1368,1370,1373,1375,1378],{"class":504,"line":1352},29,[502,1354,1355],{"class":584},"  responseData",[502,1357,615],{"class":580},[502,1359,1360],{"class":584},"items",[502,1362,615],{"class":580},[502,1364,1365],{"class":844},"forEach",[502,1367,848],{"class":884},[502,1369,848],{"class":580},[502,1371,1372],{"class":980},"entity",[502,1374,825],{"class":580},[502,1376,1377],{"class":763}," =>",[502,1379,1004],{"class":580},[502,1381,1383,1386,1388,1391,1393],{"class":504,"line":1382},30,[502,1384,1385],{"class":584},"    result",[502,1387,615],{"class":580},[502,1389,1390],{"class":844},"push",[502,1392,848],{"class":884},[502,1394,1087],{"class":580},[502,1396,1398,1401,1403,1406,1408,1410],{"class":504,"line":1397},31,[502,1399,1400],{"class":884},"      id",[502,1402,888],{"class":580},[502,1404,1405],{"class":584}," entity",[502,1407,615],{"class":580},[502,1409,1172],{"class":584},[502,1411,1105],{"class":580},[502,1413,1415,1418,1420,1422,1424,1426],{"class":504,"line":1414},32,[502,1416,1417],{"class":884},"      title",[502,1419,888],{"class":580},[502,1421,1405],{"class":584},[502,1423,615],{"class":580},[502,1425,1181],{"class":584},[502,1427,1105],{"class":580},[502,1429,1431,1434,1436,1438,1440,1443,1445,1447,1449,1451,1453],{"class":504,"line":1430},33,[502,1432,1433],{"class":884},"      createdTime",[502,1435,888],{"class":580},[502,1437,738],{"class":584},[502,1439,615],{"class":580},[502,1441,1442],{"class":844},"toDateTime",[502,1444,848],{"class":884},[502,1446,1372],{"class":584},[502,1448,615],{"class":580},[502,1450,940],{"class":584},[502,1452,825],{"class":884},[502,1454,1105],{"class":580},[502,1456,1458,1461,1463],{"class":504,"line":1457},34,[502,1459,1460],{"class":580},"    }",[502,1462,825],{"class":884},[502,1464,661],{"class":580},[502,1466,1468,1470,1472],{"class":504,"line":1467},35,[502,1469,1208],{"class":580},[502,1471,825],{"class":884},[502,1473,661],{"class":580},[502,1475,1477],{"class":504,"line":1476},36,[502,1478,757],{"emptyLinePlaceholder":756},[502,1480,1482,1485,1487],{"class":504,"line":1481},37,[502,1483,1484],{"class":577},"  return",[502,1486,1013],{"class":584},[502,1488,661],{"class":580},[502,1490,1492],{"class":504,"line":1491},38,[502,1493,1494],{"class":580},"}\n",[502,1496,1498],{"class":504,"line":1497},39,[502,1499,757],{"emptyLinePlaceholder":756},[502,1501,1503,1506,1509,1511],{"class":504,"line":1502},40,[502,1504,1505],{"class":763},"function",[502,1507,1508],{"class":844}," App",[502,1510,1274],{"class":580},[502,1512,1004],{"class":580},[502,1514,1516,1518,1521,1523,1525,1527,1529,1532,1535,1537,1539,1542,1544],{"class":504,"line":1515},41,[502,1517,1010],{"class":763},[502,1519,1520],{"class":584}," b24Ref",[502,1522,879],{"class":580},[502,1524,701],{"class":844},[502,1526,930],{"class":580},[502,1528,133],{"class":508},[502,1530,1531],{"class":580}," |",[502,1533,1534],{"class":508}," null",[502,1536,945],{"class":580},[502,1538,848],{"class":884},[502,1540,1541],{"class":580},"null",[502,1543,825],{"class":884},[502,1545,661],{"class":580},[502,1547,1549],{"class":504,"line":1548},42,[502,1550,757],{"emptyLinePlaceholder":756},[502,1552,1554,1557,1559,1561,1563],{"class":504,"line":1553},43,[502,1555,1556],{"class":844},"  useEffect",[502,1558,848],{"class":884},[502,1560,1274],{"class":580},[502,1562,1377],{"class":763},[502,1564,1004],{"class":580},[502,1566,1568,1571,1574,1576,1579],{"class":504,"line":1567},44,[502,1569,1570],{"class":763},"    let",[502,1572,1573],{"class":584}," isMounted",[502,1575,879],{"class":580},[502,1577,1578],{"class":821}," true",[502,1580,661],{"class":580},[502,1582,1584],{"class":504,"line":1583},45,[502,1585,757],{"emptyLinePlaceholder":756},[502,1587,1589,1592,1594,1597,1599],{"class":504,"line":1588},46,[502,1590,1591],{"class":763},"    async",[502,1593,972],{"class":763},[502,1595,1596],{"class":844}," init",[502,1598,1274],{"class":580},[502,1600,1004],{"class":580},[502,1602,1604,1607],{"class":504,"line":1603},47,[502,1605,1606],{"class":577},"      try",[502,1608,1004],{"class":580},[502,1610,1612,1615,1617,1619,1621,1623,1625],{"class":504,"line":1611},48,[502,1613,1614],{"class":763},"        const",[502,1616,1048],{"class":584},[502,1618,879],{"class":580},[502,1620,1045],{"class":577},[502,1622,724],{"class":844},[502,1624,1274],{"class":884},[502,1626,661],{"class":580},[502,1628,1630,1633,1635,1637,1640,1642],{"class":504,"line":1629},49,[502,1631,1632],{"class":577},"        if",[502,1634,797],{"class":884},[502,1636,1228],{"class":580},[502,1638,1639],{"class":584},"isMounted",[502,1641,1239],{"class":884},[502,1643,1087],{"class":580},[502,1645,1647,1650,1652,1655,1657],{"class":504,"line":1646},50,[502,1648,1649],{"class":584},"          b24",[502,1651,615],{"class":580},[502,1653,1654],{"class":844},"destroy",[502,1656,1274],{"class":884},[502,1658,661],{"class":580},[502,1660,1662,1665],{"class":504,"line":1661},51,[502,1663,1664],{"class":577},"          return",[502,1666,661],{"class":580},[502,1668,1670],{"class":504,"line":1669},52,[502,1671,1672],{"class":580},"        }\n",[502,1674,1676,1679,1681,1684,1686,1688],{"class":504,"line":1675},53,[502,1677,1678],{"class":584},"        b24Ref",[502,1680,615],{"class":580},[502,1682,1683],{"class":584},"current",[502,1685,879],{"class":580},[502,1687,1048],{"class":584},[502,1689,661],{"class":580},[502,1691,1693],{"class":504,"line":1692},54,[502,1694,757],{"emptyLinePlaceholder":756},[502,1696,1698,1700,1703,1705,1707,1709,1711,1713,1715],{"class":504,"line":1697},55,[502,1699,1614],{"class":763},[502,1701,1702],{"class":584}," companies",[502,1704,879],{"class":580},[502,1706,1045],{"class":577},[502,1708,975],{"class":844},[502,1710,848],{"class":884},[502,1712,981],{"class":584},[502,1714,825],{"class":884},[502,1716,661],{"class":580},[502,1718,1720,1723,1725,1728,1730,1732,1735,1737,1739,1741,1743,1745,1747],{"class":504,"line":1719},56,[502,1721,1722],{"class":584},"        $logger",[502,1724,615],{"class":580},[502,1726,1727],{"class":844},"notice",[502,1729,848],{"class":884},[502,1731,658],{"class":580},[502,1733,1734],{"class":511},"Companies loaded successfully",[502,1736,658],{"class":580},[502,1738,644],{"class":580},[502,1740,581],{"class":580},[502,1742,1702],{"class":584},[502,1744,588],{"class":580},[502,1746,825],{"class":884},[502,1748,661],{"class":580},[502,1750,1752,1755,1758,1760,1763,1765],{"class":504,"line":1751},57,[502,1753,1754],{"class":580},"      }",[502,1756,1757],{"class":577}," catch",[502,1759,797],{"class":884},[502,1761,1762],{"class":584},"error",[502,1764,1239],{"class":884},[502,1766,1087],{"class":580},[502,1768,1770,1772,1774,1776,1778,1780,1783,1785,1787,1789,1792,1794,1796],{"class":504,"line":1769},58,[502,1771,1722],{"class":584},[502,1773,615],{"class":580},[502,1775,1762],{"class":844},[502,1777,848],{"class":884},[502,1779,658],{"class":580},[502,1781,1782],{"class":511},"Some problems",[502,1784,658],{"class":580},[502,1786,644],{"class":580},[502,1788,581],{"class":580},[502,1790,1791],{"class":584}," error",[502,1793,588],{"class":580},[502,1795,825],{"class":884},[502,1797,661],{"class":580},[502,1799,1801],{"class":504,"line":1800},59,[502,1802,1803],{"class":580},"      }\n",[502,1805,1807],{"class":504,"line":1806},60,[502,1808,1809],{"class":580},"    }\n",[502,1811,1813],{"class":504,"line":1812},61,[502,1814,757],{"emptyLinePlaceholder":756},[502,1816,1818,1821,1823],{"class":504,"line":1817},62,[502,1819,1820],{"class":844},"    init",[502,1822,1274],{"class":884},[502,1824,661],{"class":580},[502,1826,1828],{"class":504,"line":1827},63,[502,1829,757],{"emptyLinePlaceholder":756},[502,1831,1833,1836,1839,1841],{"class":504,"line":1832},64,[502,1834,1835],{"class":577},"    return",[502,1837,1838],{"class":580}," ()",[502,1840,1377],{"class":763},[502,1842,1004],{"class":580},[502,1844,1846,1849,1851,1853],{"class":504,"line":1845},65,[502,1847,1848],{"class":584},"      isMounted",[502,1850,879],{"class":580},[502,1852,822],{"class":821},[502,1854,661],{"class":580},[502,1856,1858,1861,1863,1865,1867,1869,1871],{"class":504,"line":1857},66,[502,1859,1860],{"class":584},"      b24Ref",[502,1862,615],{"class":580},[502,1864,1683],{"class":584},[502,1866,812],{"class":580},[502,1868,1654],{"class":844},[502,1870,1274],{"class":884},[502,1872,661],{"class":580},[502,1874,1876],{"class":504,"line":1875},67,[502,1877,1878],{"class":580},"    };\n",[502,1880,1882,1885,1888],{"class":504,"line":1881},68,[502,1883,1884],{"class":580},"  },",[502,1886,1887],{"class":884}," [])",[502,1889,661],{"class":580},[502,1891,1893],{"class":504,"line":1892},69,[502,1894,757],{"emptyLinePlaceholder":756},[502,1896,1898,1900],{"class":504,"line":1897},70,[502,1899,1484],{"class":577},[502,1901,1902],{"class":884}," (\n",[502,1904,1906,1909,1912,1915,1918,1921,1923,1925,1928,1930,1932,1935,1937,1939,1942,1944],{"class":504,"line":1905},71,[502,1907,1908],{"class":580},"    \u003C",[502,1910,1911],{"class":884},"div",[502,1913,1914],{"class":763}," style",[502,1916,1917],{"class":580},"={{",[502,1919,1920],{"class":884}," padding",[502,1922,888],{"class":580},[502,1924,594],{"class":580},[502,1926,1927],{"class":511},"20px",[502,1929,658],{"class":580},[502,1931,644],{"class":580},[502,1933,1934],{"class":884}," fontFamily",[502,1936,888],{"class":580},[502,1938,594],{"class":580},[502,1940,1941],{"class":511},"sans-serif",[502,1943,658],{"class":580},[502,1945,1946],{"class":580}," }}>\n",[502,1948,1950,1953,1956,1958,1961,1964,1966],{"class":504,"line":1949},72,[502,1951,1952],{"class":580},"      \u003C",[502,1954,1955],{"class":884},"h1",[502,1957,945],{"class":580},[502,1959,1960],{"class":584},"B24 JS SDK - React Demo",[502,1962,1963],{"class":580},"\u003C\u002F",[502,1965,1955],{"class":884},[502,1967,1968],{"class":580},">\n",[502,1970,1972,1974,1976,1978,1981,1983,1985],{"class":504,"line":1971},73,[502,1973,1952],{"class":580},[502,1975,469],{"class":884},[502,1977,945],{"class":580},[502,1979,1980],{"class":584},"See the result in the developer console",[502,1982,1963],{"class":580},[502,1984,469],{"class":884},[502,1986,1968],{"class":580},[502,1988,1990,1992,1994,1996,1998,2001,2003,2005,2009,2011,2013,2016,2018,2020,2023,2025],{"class":504,"line":1989},74,[502,1991,1952],{"class":580},[502,1993,469],{"class":884},[502,1995,1914],{"class":763},[502,1997,1917],{"class":580},[502,1999,2000],{"class":884}," color",[502,2002,888],{"class":580},[502,2004,594],{"class":580},[502,2006,2008],{"class":2007},"s113S","#666",[502,2010,658],{"class":580},[502,2012,644],{"class":580},[502,2014,2015],{"class":884}," fontSize",[502,2017,888],{"class":580},[502,2019,594],{"class":580},[502,2021,2022],{"class":511},"14px",[502,2024,658],{"class":580},[502,2026,1946],{"class":580},[502,2028,2030],{"class":504,"line":2029},75,[502,2031,2032],{"class":584},"        Note: This app must be opened inside Bitrix24 as a frame application.\n",[502,2034,2036,2039,2041],{"class":504,"line":2035},76,[502,2037,2038],{"class":580},"      \u003C\u002F",[502,2040,469],{"class":884},[502,2042,1968],{"class":580},[502,2044,2046,2049,2051],{"class":504,"line":2045},77,[502,2047,2048],{"class":580},"    \u003C\u002F",[502,2050,1911],{"class":884},[502,2052,1968],{"class":580},[502,2054,2056,2059],{"class":504,"line":2055},78,[502,2057,2058],{"class":884},"  )",[502,2060,661],{"class":580},[502,2062,2064],{"class":504,"line":2063},79,[502,2065,1494],{"class":580},[502,2067,2069],{"class":504,"line":2068},80,[502,2070,757],{"emptyLinePlaceholder":756},[502,2072,2074,2077,2080,2082],{"class":504,"line":2073},81,[502,2075,2076],{"class":577},"export",[502,2078,2079],{"class":577}," default",[502,2081,1508],{"class":584},[502,2083,661],{"class":580},[469,2085,2086],{},"Ключевые особенности React:",[2088,2089,2090,2098,2104,2110],"ul",{},[2091,2092,2093,2097],"li",{},[2094,2095,2096],"strong",{},"Используйте React-хуки:"," инициализируйте B24Frame в useEffect с функцией очистки",[2091,2099,2100,2103],{},[2094,2101,2102],{},"Используйте Refs:"," храните экземпляр B24Frame в ref, чтобы он сохранялся между рендерами",[2091,2105,2106,2109],{},[2094,2107,2108],{},"Очистка:"," всегда вызывайте destroy() при размонтировании компонента, чтобы избежать утечек памяти",[2091,2111,2112,2115],{},[2094,2113,2114],{},"Окружение:"," помните, что B24Frame работает только внутри iframe Bitrix24",[608,2117,2118,2147,2152],{"label":117},[2119,2120,2122,2131],"caution",{"title":2121},"⚠️ БЕЗОПАСНОСТЬ",[469,2123,2124,2125,2127,2128,615],{},"Объект ",[499,2126,117],{}," предназначен ",[2094,2129,2130],{},"исключительно для использования на сервере",[2088,2132,2133,2140],{},[2091,2134,2135,2136,2139],{},"Вебхук содержит секретный ключ доступа, который ",[2094,2137,2138],{},"НЕЛЬЗЯ"," использовать в клиентском коде (браузер, мобильное приложение).",[2091,2141,2142,2143],{},"Для клиентской стороны используйте ",[502,2144,2145],{},[499,2146,133],{},[469,2148,2149,2150,615],{},"Для работы с Bitrix24 из автономного серверного приложения используйте объект ",[499,2151,117],{},[491,2153,2155],{"className":568,"code":2154,"language":570,"meta":497,"style":497},"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\n",[499,2156,2157,2176,2180,2186,2191,2196,2201,2206,2210,2215,2243,2247],{"__ignoreMap":497},[502,2158,2159,2161,2163,2166,2168,2170,2172,2174],{"class":504,"line":505},[502,2160,561],{"class":577},[502,2162,581],{"class":580},[502,2164,2165],{"class":584}," B24Hook",[502,2167,588],{"class":580},[502,2169,591],{"class":577},[502,2171,594],{"class":580},[502,2173,597],{"class":511},[502,2175,600],{"class":580},[502,2177,2178],{"class":504,"line":664},[502,2179,757],{"emptyLinePlaceholder":756},[502,2181,2182],{"class":504,"line":689},[502,2183,2185],{"class":2184},"sHwdD","\u002F\u002F 1. Получите URL вебхука в Bitrix24:\n",[502,2187,2188],{"class":504,"line":717},[502,2189,2190],{"class":2184},"\u002F\u002F    - Перейдите в Bitrix24\n",[502,2192,2193],{"class":504,"line":753},[502,2194,2195],{"class":2184},"\u002F\u002F    - Настройки → Разработчикам → Вебхуки\n",[502,2197,2198],{"class":504,"line":760},[502,2199,2200],{"class":2184},"\u002F\u002F    - Создайте новый вебхук с необходимыми правами\n",[502,2202,2203],{"class":504,"line":830},[502,2204,2205],{"class":2184},"\u002F\u002F    - Скопируйте URL в формате: https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F\n",[502,2207,2208],{"class":504,"line":865},[502,2209,757],{"emptyLinePlaceholder":756},[502,2211,2212],{"class":504,"line":870},[502,2213,2214],{"class":2184},"\u002F\u002F 2. Инициализируйте B24Hook\n",[502,2216,2217,2219,2222,2224,2226,2228,2231,2233,2235,2238,2240],{"class":504,"line":917},[502,2218,764],{"class":763},[502,2220,2221],{"class":584}," $b24 ",[502,2223,770],{"class":580},[502,2225,2165],{"class":584},[502,2227,615],{"class":580},[502,2229,2230],{"class":844},"fromWebhookUrl",[502,2232,848],{"class":584},[502,2234,658],{"class":580},[502,2236,2237],{"class":511},"https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F1\u002Fyour-token\u002F",[502,2239,658],{"class":580},[502,2241,2242],{"class":584},")\n",[502,2244,2245],{"class":504,"line":961},[502,2246,757],{"emptyLinePlaceholder":756},[502,2248,2249],{"class":504,"line":966},[502,2250,2251],{"class":2184},"\u002F\u002F 3. Используйте методы API\n",[608,2253,2254,2275,2279],{"label":180},[2119,2255,2256,2262],{"title":2121},[469,2257,2124,2258,2127,2260,615],{},[499,2259,180],{},[2094,2261,2130],{},[2088,2263,2264,2269],{},[2091,2265,2266,2267,2139],{},"B24OAuth содержит секретный ключ доступа, который ",[2094,2268,2138],{},[2091,2270,2142,2271],{},[502,2272,2273],{},[499,2274,133],{},[469,2276,2149,2277,615],{},[499,2278,180],{},[491,2280,2282],{"className":568,"code":2281,"language":570,"meta":497,"style":497},"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 см. на \u002Fdocs\u002Fworking-with-the-rest-api\u002Foauth\u002F.\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\n\n\u002F\u002F B24OAuth автоматически обновляет токены при их истечении\n",[499,2283,2284,2303,2307,2312,2316,2321,2326,2331,2335,2340,2345,2364,2368,2383,2388,2404,2417,2433,2449,2465,2480,2492,2508,2524,2540,2556,2570,2575,2579,2595,2609,2613,2617,2621,2625,2629],{"__ignoreMap":497},[502,2285,2286,2288,2290,2293,2295,2297,2299,2301],{"class":504,"line":505},[502,2287,561],{"class":577},[502,2289,581],{"class":580},[502,2291,2292],{"class":584}," B24OAuth",[502,2294,588],{"class":580},[502,2296,591],{"class":577},[502,2298,594],{"class":580},[502,2300,597],{"class":511},[502,2302,600],{"class":580},[502,2304,2305],{"class":504,"line":664},[502,2306,757],{"emptyLinePlaceholder":756},[502,2308,2309],{"class":504,"line":689},[502,2310,2311],{"class":2184},"\u002F\u002F 1. Зарегистрируйте приложение в Bitrix24:\n",[502,2313,2314],{"class":504,"line":717},[502,2315,2190],{"class":2184},[502,2317,2318],{"class":504,"line":753},[502,2319,2320],{"class":2184},"\u002F\u002F    - Настройки → Разработчикам → Приложения\n",[502,2322,2323],{"class":504,"line":760},[502,2324,2325],{"class":2184},"\u002F\u002F    - Создайте новое приложение\n",[502,2327,2328],{"class":504,"line":830},[502,2329,2330],{"class":2184},"\u002F\u002F    - Получите Client ID и Client Secret\n",[502,2332,2333],{"class":504,"line":865},[502,2334,757],{"emptyLinePlaceholder":756},[502,2336,2337],{"class":504,"line":870},[502,2338,2339],{"class":2184},"\u002F\u002F 2. Инициализируйте B24OAuth — передайте данные токена и OAuth-учётные данные отдельно.\n",[502,2341,2342],{"class":504,"line":917},[502,2343,2344],{"class":2184},"\u002F\u002F    Полную форму B24OAuthParams см. на \u002Fdocs\u002Fworking-with-the-rest-api\u002Foauth\u002F.\n",[502,2346,2347,2349,2351,2354,2356,2358,2360,2362],{"class":504,"line":961},[502,2348,561],{"class":577},[502,2350,581],{"class":580},[502,2352,2353],{"class":584}," EnumAppStatus",[502,2355,588],{"class":580},[502,2357,591],{"class":577},[502,2359,594],{"class":580},[502,2361,597],{"class":511},[502,2363,600],{"class":580},[502,2365,2366],{"class":504,"line":966},[502,2367,757],{"emptyLinePlaceholder":756},[502,2369,2370,2372,2374,2376,2378,2380],{"class":504,"line":1007},[502,2371,764],{"class":763},[502,2373,2221],{"class":584},[502,2375,770],{"class":580},[502,2377,1250],{"class":580},[502,2379,2292],{"class":844},[502,2381,2382],{"class":584},"(\n",[502,2384,2385],{"class":504,"line":1030},[502,2386,2387],{"class":580},"  {\n",[502,2389,2390,2393,2395,2397,2400,2402],{"class":504,"line":1035},[502,2391,2392],{"class":884},"    applicationToken",[502,2394,888],{"class":580},[502,2396,594],{"class":580},[502,2398,2399],{"class":511},"current_application_token",[502,2401,658],{"class":580},[502,2403,1105],{"class":580},[502,2405,2406,2409,2411,2415],{"class":504,"line":1090},[502,2407,2408],{"class":884},"    userId",[502,2410,888],{"class":580},[502,2412,2414],{"class":2413},"sbssI"," 1",[502,2416,1105],{"class":580},[502,2418,2419,2422,2424,2426,2429,2431],{"class":504,"line":1108},[502,2420,2421],{"class":884},"    memberId",[502,2423,888],{"class":580},[502,2425,594],{"class":580},[502,2427,2428],{"class":511},"portal_member_id",[502,2430,658],{"class":580},[502,2432,1105],{"class":580},[502,2434,2435,2438,2440,2442,2445,2447],{"class":504,"line":1118},[502,2436,2437],{"class":884},"    accessToken",[502,2439,888],{"class":580},[502,2441,594],{"class":580},[502,2443,2444],{"class":511},"current_access_token",[502,2446,658],{"class":580},[502,2448,1105],{"class":580},[502,2450,2451,2454,2456,2458,2461,2463],{"class":504,"line":1135},[502,2452,2453],{"class":884},"    refreshToken",[502,2455,888],{"class":580},[502,2457,594],{"class":580},[502,2459,2460],{"class":511},"refresh_token",[502,2462,658],{"class":580},[502,2464,1105],{"class":580},[502,2466,2467,2470,2472,2475,2477],{"class":504,"line":1159},[502,2468,2469],{"class":884},"    expires",[502,2471,888],{"class":580},[502,2473,2474],{"class":2413}," 1745997853",[502,2476,644],{"class":580},[502,2478,2479],{"class":2184}," \u002F\u002F unix timestamp, секунды\n",[502,2481,2482,2485,2487,2490],{"class":504,"line":1199},[502,2483,2484],{"class":884},"    expiresIn",[502,2486,888],{"class":580},[502,2488,2489],{"class":2413}," 3600",[502,2491,1105],{"class":580},[502,2493,2494,2497,2499,2501,2504,2506],{"class":504,"line":1205},[502,2495,2496],{"class":884},"    scope",[502,2498,888],{"class":580},[502,2500,594],{"class":580},[502,2502,2503],{"class":511},"crm,user_brief",[502,2505,658],{"class":580},[502,2507,1105],{"class":580},[502,2509,2510,2513,2515,2517,2520,2522],{"class":504,"line":1215},[502,2511,2512],{"class":884},"    domain",[502,2514,888],{"class":580},[502,2516,594],{"class":580},[502,2518,2519],{"class":511},"your-domain.bitrix24.com",[502,2521,658],{"class":580},[502,2523,1105],{"class":580},[502,2525,2526,2529,2531,2533,2536,2538],{"class":504,"line":1220},[502,2527,2528],{"class":884},"    clientEndpoint",[502,2530,888],{"class":580},[502,2532,594],{"class":580},[502,2534,2535],{"class":511},"https:\u002F\u002Fyour-domain.bitrix24.com\u002Frest\u002F",[502,2537,658],{"class":580},[502,2539,1105],{"class":580},[502,2541,2542,2545,2547,2549,2552,2554],{"class":504,"line":1244},[502,2543,2544],{"class":884},"    serverEndpoint",[502,2546,888],{"class":580},[502,2548,594],{"class":580},[502,2550,2551],{"class":511},"https:\u002F\u002Foauth.bitrix.info\u002Frest\u002F",[502,2553,658],{"class":580},[502,2555,1105],{"class":580},[502,2557,2558,2561,2563,2565,2567],{"class":504,"line":1300},[502,2559,2560],{"class":884},"    status",[502,2562,888],{"class":580},[502,2564,2353],{"class":584},[502,2566,615],{"class":580},[502,2568,2569],{"class":584},"Free\n",[502,2571,2572],{"class":504,"line":1306},[502,2573,2574],{"class":580},"  },\n",[502,2576,2577],{"class":504,"line":1311},[502,2578,2387],{"class":580},[502,2580,2581,2584,2586,2588,2591,2593],{"class":504,"line":1352},[502,2582,2583],{"class":884},"    clientId",[502,2585,888],{"class":580},[502,2587,594],{"class":580},[502,2589,2590],{"class":511},"your_client_id",[502,2592,658],{"class":580},[502,2594,1105],{"class":580},[502,2596,2597,2600,2602,2604,2607],{"class":504,"line":1382},[502,2598,2599],{"class":884},"    clientSecret",[502,2601,888],{"class":580},[502,2603,594],{"class":580},[502,2605,2606],{"class":511},"your_client_secret",[502,2608,600],{"class":580},[502,2610,2611],{"class":504,"line":1397},[502,2612,1303],{"class":580},[502,2614,2615],{"class":504,"line":1414},[502,2616,2242],{"class":584},[502,2618,2619],{"class":504,"line":1430},[502,2620,757],{"emptyLinePlaceholder":756},[502,2622,2623],{"class":504,"line":1457},[502,2624,2251],{"class":2184},[502,2626,2627],{"class":504,"line":1467},[502,2628,757],{"emptyLinePlaceholder":756},[502,2630,2631],{"class":504,"line":1476},[502,2632,2633],{"class":2184},"\u002F\u002F B24OAuth автоматически обновляет токены при их истечении\n",[2635,2636,2637],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .s113S, html code.shiki .s113S{background-color:#666;color:#ffffff;display:inline-block;padding:0 0.15em;margin:0 -0.15em;border-radius:0.2em}",{"title":497,"searchDepth":664,"depth":664,"links":2639},[2640],{"id":475,"depth":664,"text":476,"children":2641},[2642,2643,2644],{"id":484,"depth":689,"text":485},{"id":561,"depth":689,"text":562},{"id":603,"depth":689,"text":136},"md",{},{"title":33},{"title":461,"description":36},"cn0cPjVQcSR3-05Crgy1E23XygGrwJtq5P9If7eBZio",{"data":2651,"body":2652},{},{"type":2653,"children":2654},"root",[2655],{"type":2656,"tag":469,"props":2657,"children":2658},"element",{},[2659],{"type":2660,"value":36},"text",1783080215110]