[{"data":1,"prerenderedAt":2908},["ShallowReactive",2],{"navigation":3,"-docs-working-with-the-rest-api-errors":459,"-docs-working-with-the-rest-api-errors-description":2897},[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":462,"badge":15,"body":463,"category":15,"description":239,"extension":2882,"links":2883,"meta":2893,"navigation":2894,"path":237,"restApiVersion":15,"seo":2895,"stem":238,"__hash__":2896},"docs\u002Fdocs\u002F2.working-with-the-rest-api\u002F6.errors.md","Коды ошибок и обработка","2026-05-29",{"type":464,"value":465,"toc":2867},"minimark",[466,471,475,533,566,832,836,839,1351,1358,1368,1540,1553,1557,1562,1574,2078,2086,2102,2364,2384,2393,2714,2718,2792,2796,2863],[467,468,470],"h2",{"id":469},"overview","Обзор",[472,473,474],"p",{},"SDK выбрасывает ошибки через два связанных класса:",[476,477,478,497],"ul",{},[479,480,481,485,486,488,489,492,493,496],"li",{},[482,483,484],"code",{},"SdkError"," — выбрасывается самим кодом SDK (валидация, конфигурация, устаревшие пути, внутренние инварианты). Всегда несёт ",[482,487,482],{},", ",[482,490,491],{},"status"," (HTTP-подобный) и необязательный ",[482,494,495],{},"originalError",".",[479,498,499,502,503,506,507,488,510,513,514,516,517,521,522,525,526,529,530,496],{},[482,500,501],{},"AjaxError extends SdkError"," — выбрасывается, когда HTTP-вызов к Bitrix24 завершается неудачей. Добавляет ",[482,504,505],{},"requestInfo"," (",[482,508,509],{},"method",[482,511,512],{},"requestId",", параметры запроса), чтобы вы могли сопоставлять с логами на стороне портала. Начиная с v1.1.2 (#39), ",[482,515,505],{}," ",[518,519,520],"strong",{},"не"," включает полный URL запроса, а поля с учётными данными внутри ",[482,523,524],{},"params"," редактируются — цель в том, чтобы секреты вебхуков не попадали в вывод ",[482,527,528],{},"toJSON()"," \u002F ",[482,531,532],{},"toString()",[472,534,535,536,488,538,488,540,488,542,544,545,547,548,550,551,554,555,558,559,561,562,565],{},"Методы, которые не выбрасывают исключения — ",[482,537,87],{},[482,539,99],{},[482,541,122],{},[482,543,171],{}," — сообщают о сбоях через ",[482,546,283],{},"\u002F",[482,549,262],{},": проверяйте ",[482,552,553],{},".isSuccess"," и читайте ",[482,556,557],{},".getErrorMessages()",". ",[482,560,108],{},", напротив, ",[518,563,564],{},"выбрасывает"," исключение при сбое (генератор не может завершиться частично).",[567,568,573],"pre",{"className":569,"code":570,"language":571,"meta":572,"style":572},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { SdkError, AjaxError } from '@bitrix24\u002Fb24jssdk'\n\ntry {\n  \u002F\u002F …вызовы SDK\n}\ncatch (error) {\n  if (error instanceof AjaxError) {\n    \u002F\u002F сетевой \u002F портальный сбой; error.code — это код Bitrix24\n    console.error(error.code, error.status, error.requestInfo?.method, error.requestInfo?.requestId)\n  }\n  else if (error instanceof SdkError) {\n    \u002F\u002F проблема на стороне SDK; error.code начинается с JSSDK_\n    console.error(error.code, error.status)\n  }\n  else {\n    throw error\n  }\n}\n","ts","",[482,574,575,614,621,630,637,643,655,678,684,741,747,768,774,801,806,813,822,827],{"__ignoreMap":572},[576,577,580,584,588,592,595,598,601,604,607,611],"span",{"class":578,"line":579},"line",1,[576,581,583],{"class":582},"s7zQu","import",[576,585,587],{"class":586},"sMK4o"," {",[576,589,591],{"class":590},"sTEyZ"," SdkError",[576,593,594],{"class":586},",",[576,596,597],{"class":590}," AjaxError",[576,599,600],{"class":586}," }",[576,602,603],{"class":582}," from",[576,605,606],{"class":586}," '",[576,608,610],{"class":609},"sfazB","@bitrix24\u002Fb24jssdk",[576,612,613],{"class":586},"'\n",[576,615,617],{"class":578,"line":616},2,[576,618,620],{"emptyLinePlaceholder":619},true,"\n",[576,622,624,627],{"class":578,"line":623},3,[576,625,626],{"class":582},"try",[576,628,629],{"class":586}," {\n",[576,631,633],{"class":578,"line":632},4,[576,634,636],{"class":635},"sHwdD","  \u002F\u002F …вызовы SDK\n",[576,638,640],{"class":578,"line":639},5,[576,641,642],{"class":586},"}\n",[576,644,646,649,652],{"class":578,"line":645},6,[576,647,648],{"class":582},"catch",[576,650,651],{"class":590}," (error) ",[576,653,654],{"class":586},"{\n",[576,656,658,661,664,667,670,673,676],{"class":578,"line":657},7,[576,659,660],{"class":582},"  if",[576,662,506],{"class":663},"swJcz",[576,665,666],{"class":590},"error",[576,668,669],{"class":586}," instanceof",[576,671,597],{"class":672},"sBMFI",[576,674,675],{"class":663},") ",[576,677,654],{"class":586},[576,679,681],{"class":578,"line":680},8,[576,682,683],{"class":635},"    \u002F\u002F сетевой \u002F портальный сбой; error.code — это код Bitrix24\n",[576,685,687,690,692,695,698,700,702,704,706,709,711,713,715,717,719,721,724,726,728,730,732,734,736,738],{"class":578,"line":686},9,[576,688,689],{"class":590},"    console",[576,691,496],{"class":586},[576,693,666],{"class":694},"s2Zo4",[576,696,697],{"class":663},"(",[576,699,666],{"class":590},[576,701,496],{"class":586},[576,703,482],{"class":590},[576,705,594],{"class":586},[576,707,708],{"class":590}," error",[576,710,496],{"class":586},[576,712,491],{"class":590},[576,714,594],{"class":586},[576,716,708],{"class":590},[576,718,496],{"class":586},[576,720,505],{"class":590},[576,722,723],{"class":586},"?.",[576,725,509],{"class":590},[576,727,594],{"class":586},[576,729,708],{"class":590},[576,731,496],{"class":586},[576,733,505],{"class":590},[576,735,723],{"class":586},[576,737,512],{"class":590},[576,739,740],{"class":663},")\n",[576,742,744],{"class":578,"line":743},10,[576,745,746],{"class":586},"  }\n",[576,748,750,753,756,758,760,762,764,766],{"class":578,"line":749},11,[576,751,752],{"class":582},"  else",[576,754,755],{"class":582}," if",[576,757,506],{"class":663},[576,759,666],{"class":590},[576,761,669],{"class":586},[576,763,591],{"class":672},[576,765,675],{"class":663},[576,767,654],{"class":586},[576,769,771],{"class":578,"line":770},12,[576,772,773],{"class":635},"    \u002F\u002F проблема на стороне SDK; error.code начинается с JSSDK_\n",[576,775,777,779,781,783,785,787,789,791,793,795,797,799],{"class":578,"line":776},13,[576,778,689],{"class":590},[576,780,496],{"class":586},[576,782,666],{"class":694},[576,784,697],{"class":663},[576,786,666],{"class":590},[576,788,496],{"class":586},[576,790,482],{"class":590},[576,792,594],{"class":586},[576,794,708],{"class":590},[576,796,496],{"class":586},[576,798,491],{"class":590},[576,800,740],{"class":663},[576,802,804],{"class":578,"line":803},14,[576,805,746],{"class":586},[576,807,809,811],{"class":578,"line":808},15,[576,810,752],{"class":582},[576,812,629],{"class":586},[576,814,816,819],{"class":578,"line":815},16,[576,817,818],{"class":582},"    throw",[576,820,821],{"class":590}," error\n",[576,823,825],{"class":578,"line":824},17,[576,826,746],{"class":586},[576,828,830],{"class":578,"line":829},18,[576,831,642],{"class":586},[467,833,835],{"id":834},"sdkerror-codes-raised-by-the-sdk","Коды SdkError, выбрасываемые SDK",[472,837,838],{},"Коды — стабильные строки; сопоставляйте по ним, не парсите сообщения.",[840,841,842,861],"table",{},[843,844,845],"thead",{},[846,847,848,852,855,858],"tr",{},[849,850,851],"th",{},"Код",[849,853,854],{},"Статус",[849,856,857],{},"Где выбрасывается",[849,859,860],{},"Что означает",[862,863,864,898,915,932,952,994,1012,1035,1057,1073,1090,1108,1125,1140,1155,1173,1188,1202,1216,1231,1249,1264,1282,1297,1314,1331],"tbody",{},[846,865,866,872,875,881],{},[867,868,869],"td",{},[482,870,871],{},"JSSDK_CORE_B24_NOT_INIT",[867,873,874],{},"500",[867,876,877,878],{},"геттеры ",[482,879,880],{},"AbstractB24",[867,882,883,884,887,888,890,891,894,895,897],{},"Вы вызвали метод на экземпляре ",[482,885,886],{},"B24",", конструктор которого не завершился. Для ",[482,889,133],{}," дождитесь ",[482,892,893],{},"initializeB24Frame()","; для ",[482,896,117],{}," URL был некорректным.",[846,899,900,905,907,912],{},[867,901,902],{},[482,903,904],{},"JSSDK_CORE_B24_HTTP_V2_NOT_INIT",[867,906,874],{},[867,908,909],{},[482,910,911],{},"getHttpClient(ApiVersion.v2)",[867,913,914],{},"HTTP-клиент v2 не был создан (обычно ошибка конфигурации).",[846,916,917,922,924,929],{},[867,918,919],{},[482,920,921],{},"JSSDK_CORE_B24_HTTP_V3_NOT_INIT",[867,923,874],{},[867,925,926],{},[482,927,928],{},"getHttpClient(ApiVersion.v3)",[867,930,931],{},"То же, для v3.",[846,933,934,939,941,946],{},[867,935,936],{},[482,937,938],{},"JSSDK_CORE_B24_API_WRONG",[867,940,874],{},[867,942,943],{},[482,944,945],{},"getHttpClient",[867,947,948,949,496],{},"Запрошена неизвестная ",[482,950,951],{},"ApiVersion",[846,953,954,959,962,965],{},[867,955,956],{},[482,957,958],{},"JSSDK_CORE_DEPRECATED_METHOD",[867,960,961],{},"—",[867,963,964],{},"только логгер",[867,966,967,968,971,972,529,975,529,978,529,981,529,984,987,988,529,991,496],{},"Не выбрасывается — выводится как ",[482,969,970],{},"warning","-лог при вызове устаревших ",[482,973,974],{},"callMethod",[482,976,977],{},"callBatch",[482,979,980],{},"callListMethod",[482,982,983],{},"fetchListMethod",[482,985,986],{},"callBatchByChunk",". Перейдите на ",[482,989,990],{},"b24.actions.v2.*",[482,992,993],{},"v3.*",[846,995,996,1001,1003,1005],{},[867,997,998],{},[482,999,1000],{},"JSSDK_CORE_METHOD_AVAILABLE_IN_API_V3",[867,1002,961],{},[867,1004,964],{},[867,1006,1007,1008,1011],{},"Предупреждение, выводимое ",[482,1009,1010],{},"CallV2.make()",", когда метод также существует в v3. Перейдите, когда сможете.",[846,1013,1014,1019,1021,1032],{},[867,1015,1016],{},[482,1017,1018],{},"JSSDK_CORE_METHOD_NOT_SUPPORT_IN_API_V3",[867,1020,874],{},[867,1022,1023,488,1026,488,1029],{},[482,1024,1025],{},"CallV3.make()",[482,1027,1028],{},"BatchV3.make()",[482,1030,1031],{},"AjaxResult.getNext()",[867,1033,1034],{},"Вы попросили v3 выполнить метод, которого нет в поверхности v3. Используйте v2 или разбейте батч по версиям API.",[846,1036,1037,1042,1044,1050],{},[867,1038,1039],{},[482,1040,1041],{},"JSSDK_CORE_B24_FETCH_LIST_METHOD_API_V2",[867,1043,874],{},[867,1045,1046,1047],{},"генератор ",[482,1048,1049],{},"FetchListV2.make()",[867,1051,1052,1053,1056],{},"Нижележащий запрос страницы завершился неудачей; генератор останавливается. Оборачивайте ",[482,1054,1055],{},"for await"," в try\u002Fcatch.",[846,1058,1059,1064,1066,1071],{},[867,1060,1061],{},[482,1062,1063],{},"JSSDK_CORE_B24_FETCH_LIST_METHOD_API_V3",[867,1065,874],{},[867,1067,1046,1068],{},[482,1069,1070],{},"FetchListV3.make()",[867,1072,931],{},[846,1074,1075,1080,1082,1087],{},[867,1076,1077],{},[482,1078,1079],{},"JSSDK_VERSION_MANAGER_NOT_DETECT_FOR_METHOD",[867,1081,961],{},[867,1083,1084],{},[482,1085,1086],{},"versionManager",[867,1088,1089],{},"Внутренний — не удалось определить версию API метода. Обычно идёт в паре с одним из кодов выше.",[846,1091,1092,1097,1100,1103],{},[867,1093,1094],{},[482,1095,1096],{},"JSSDK_BATCH_TOO_LARGE",[867,1098,1099],{},"400",[867,1101,1102],{},"HTTP-клиент v2",[867,1104,1105,1106,496],{},"В один батч передано более 50 команд. Используйте ",[482,1107,171],{},[846,1109,1110,1115,1117,1119],{},[867,1111,1112],{},[482,1113,1114],{},"JSSDK_BATCH_EMPTY",[867,1116,1099],{},[867,1118,1102],{},[867,1120,1121,1122,496],{},"Пустой ",[482,1123,1124],{},"calls",[846,1126,1127,1132,1134,1137],{},[867,1128,1129],{},[482,1130,1131],{},"JSSDK_BATCH_SUB_ERROR",[867,1133,874],{},[867,1135,1136],{},"обработка батча",[867,1138,1139],{},"Обёртка для сбоя вложенного вызова внутри батча. Проверьте результат конкретного вызова.",[846,1141,1142,1147,1149,1152],{},[867,1143,1144],{},[482,1145,1146],{},"JSSDK_INTERACTION_BATCH_BUILD_STRATEGY_V3_EMPTY_COMMAND",[867,1148,1099],{},[867,1150,1151],{},"обработка батча v3",[867,1153,1154],{},"Отдельная команда в v3-батче была пустой\u002Fнекорректной.",[846,1156,1157,1162,1164,1166],{},[867,1158,1159],{},[482,1160,1161],{},"JSSDK_INTERACTION_BATCH_BUILD_STRATEGY_V3_EMPTY_COMMANDS",[867,1163,1099],{},[867,1165,1151],{},[867,1167,1168,1169,1172],{},"Весь массив ",[482,1170,1171],{},"commands"," был пуст.",[846,1174,1175,1180,1182,1185],{},[867,1176,1177],{},[482,1178,1179],{},"JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMANDS",[867,1181,1099],{},[867,1183,1184],{},"обработка батча v2",[867,1186,1187],{},"То же, для v2.",[846,1189,1190,1195,1197,1199],{},[867,1191,1192],{},[482,1193,1194],{},"JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMAND_RESPONSE",[867,1196,874],{},[867,1198,1184],{},[867,1200,1201],{},"У команды в ответе не было тела — обычно на стороне портала.",[846,1203,1204,1209,1211,1213],{},[867,1205,1206],{},[482,1207,1208],{},"JSSDK_INTERACTION_BATCH_EMPTY_PROCESSING_STRATEGY",[867,1210,874],{},[867,1212,1136],{},[867,1214,1215],{},"Внутренний — не удалось найти стратегию.",[846,1217,1218,1223,1225,1228],{},[867,1219,1220],{},[482,1221,1222],{},"JSSDK_INTERACTION_BATCH_ROW_FAIL",[867,1224,874],{},[867,1226,1227],{},"парсер строки батча",[867,1229,1230],{},"Не удалось разобрать одну строку батча.",[846,1232,1233,1238,1240,1243],{},[867,1234,1235],{},[482,1236,1237],{},"JSSDK_INVALID_PARAMS",[867,1239,1099],{},[867,1241,1242],{},"HTTP-транспорт",[867,1244,1245,1246,1248],{},"Форма ",[482,1247,524],{}," была отклонена до отправки запроса.",[846,1250,1251,1256,1259,1261],{},[867,1252,1253],{},[482,1254,1255],{},"JSSDK_PARAMS_TOO_LARGE",[867,1257,1258],{},"413",[867,1260,1242],{},[867,1262,1263],{},"Сериализованное тело запроса превысило лимит размера. Разбейте вызов.",[846,1265,1266,1271,1273,1275],{},[867,1267,1268],{},[482,1269,1270],{},"JSSDK_CALL_ALL_ATTEMPTS_EXHAUSTED",[867,1272,874],{},[867,1274,1242],{},[867,1276,1277,1278,1281],{},"Повторы (по умолчанию 3, настраивается через ",[482,1279,1280],{},"RestrictionParams.maxRetries",") исчерпаны до того, как вызов удался.",[846,1283,1284,1289,1291,1294],{},[867,1285,1286],{},[482,1287,1288],{},"JSSDK_UNKNOWN_ERROR",[867,1290,874],{},[867,1292,1293],{},"разное",[867,1295,1296],{},"Запасной вариант, когда не подходит более конкретный код.",[846,1298,1299,1304,1306,1311],{},[867,1300,1301],{},[482,1302,1303],{},"JSSDK_INTERNAL_ERROR",[867,1305,874],{},[867,1307,1308],{},[482,1309,1310],{},"SdkError.fromException",[867,1312,1313],{},"Код по умолчанию при оборачивании неизвестного исключения.",[846,1315,1316,1321,1323,1328],{},[867,1317,1318],{},[482,1319,1320],{},"JSSDK_INTERNAL_AJAX_ERROR",[867,1322,874],{},[867,1324,1325],{},[482,1326,1327],{},"AjaxError.fromException",[867,1329,1330],{},"Код по умолчанию при оборачивании неизвестной HTTP-ошибки.",[846,1332,1333,1338,1340,1345],{},[867,1334,1335],{},[482,1336,1337],{},"JSSDK_CLIENT_SIDE_WARNING",[867,1339,961],{},[867,1341,1342,1343],{},"конструктор ",[482,1344,117],{},[867,1346,1347,1348,1350],{},"Предупреждение при создании ",[482,1349,117],{}," в браузере — вебхуки раскрывают секрет уровня портала и не должны попадать в клиентские бандлы.",[467,1352,1354,1355,572],{"id":1353},"rest-side-codes-that-come-back-as-ajaxerror","Коды со стороны REST, возвращаемые как ",[482,1356,1357],{},"AjaxError",[472,1359,1360,1361,1363,1364,1367],{},"Bitrix24 возвращает их в поле ",[482,1362,666],{}," HTTP-ответа. SDK переносит их в ",[482,1365,1366],{},"AjaxError.code"," как есть — сопоставляйте по строке.",[840,1369,1370,1385],{},[843,1371,1372],{},[846,1373,1374,1376,1379,1382],{},[849,1375,851],{},[849,1377,1378],{},"HTTP-статус",[849,1380,1381],{},"Значение",[849,1383,1384],{},"Типичное решение",[862,1386,1387,1409,1424,1440,1455,1479,1498,1521],{},[846,1388,1389,1394,1397,1400],{},[867,1390,1391],{},[482,1392,1393],{},"expired_token",[867,1395,1396],{},"401",[867,1398,1399],{},"OAuth access token истёк.",[867,1401,1402,1403,1405,1406,1408],{},"SDK автообновляет для ",[482,1404,133],{}," и ",[482,1407,180],{},"; для кастомных транспортов — обновите и повторите один раз.",[846,1410,1411,1416,1418,1421],{},[867,1412,1413],{},[482,1414,1415],{},"invalid_token",[867,1417,1396],{},[867,1419,1420],{},"Токен некорректен или отозван.",[867,1422,1423],{},"Пользователь должен переавторизоваться (OAuth-флоу); URL вебхука неверен.",[846,1425,1426,1431,1434,1437],{},[867,1427,1428],{},[482,1429,1430],{},"AUTHORIZE_ERROR",[867,1432,1433],{},"403",[867,1435,1436],{},"Вызывающему не разрешено выполнять это действие.",[867,1438,1439],{},"Неверный scope у вебхука\u002Fприложения, или у пользователя нет права доступа (например, права CRM).",[846,1441,1442,1447,1449,1452],{},[867,1443,1444],{},[482,1445,1446],{},"WRONG_AUTH_TYPE",[867,1448,1433],{},[867,1450,1451],{},"Тип токена не соответствует endpoint (например, вебхук использован там, где требуется OAuth).",[867,1453,1454],{},"Используйте правильный метод аутентификации для endpoint.",[846,1456,1457,1462,1465,1468],{},[867,1458,1459],{},[482,1460,1461],{},"QUERY_LIMIT_EXCEEDED",[867,1463,1464],{},"503",[867,1466,1467],{},"Достигнут rate limit (на секунду \u002F на метод).",[867,1469,1470,1471,1474,1475,1478],{},"Уже обрабатывается встроенным ",[482,1472,1473],{},"RateLimiter"," — увеличивайте ",[482,1476,1477],{},"restrictionParams.maxConcurrent"," только если понимаете цену.",[846,1480,1481,1486,1488,1491],{},[867,1482,1483],{},[482,1484,1485],{},"OVERLOAD_LIMIT",[867,1487,1464],{},[867,1489,1490],{},"Сброс нагрузки на уровне всего портала.",[867,1492,1493,1494,1497],{},"Сделайте паузу, повторите через несколько секунд. ",[482,1495,1496],{},"AdaptiveDelayer"," SDK уже это делает.",[846,1499,1500,1505,1507,1510],{},[867,1501,1502],{},[482,1503,1504],{},"ERROR_METHOD_NOT_FOUND",[867,1506,1099],{},[867,1508,1509],{},"Неверное имя метода, или у приложения нет scope, чтобы его видеть.",[867,1511,1512,1513,1516,1517,1520],{},"Проверьте написание; сверьте ",[482,1514,1515],{},"SCOPE"," из ",[482,1518,1519],{},"app.info"," с требуемым scope метода.",[846,1522,1523,1528,1530,1533],{},[867,1524,1525],{},[482,1526,1527],{},"INVALID_REQUEST",[867,1529,1099],{},[867,1531,1532],{},"Плохие параметры (отсутствует обязательное поле, неверный тип).",[867,1534,1535,1536,1539],{},"Проверьте ",[482,1537,1538],{},"error.message"," — описание Bitrix24 называет проблемное поле.",[472,1541,1542,1543,1550,1551,496],{},"Это не исчерпывающий список — полный список по методам Bitrix24 публикует на ",[1544,1545,1549],"a",{"href":1546,"rel":1547},"https:\u002F\u002Fapidocs.bitrix24.ru\u002F",[1548],"nofollow","apidocs.bitrix24.ru",". Всё, что здесь не перечислено, проходит как есть в ",[482,1552,1366],{},[467,1554,1556],{"id":1555},"handling-patterns","Паттерны обработки",[1558,1559,1561],"h3",{"id":1560},"distinguish-sdk-bugs-from-portal-side-failures","Отличить баги SDK от сбоев на стороне портала",[472,1563,1564,1566,1567,1569,1570,1573],{},[482,1565,1357],{}," наследует ",[482,1568,484],{},", поэтому располагайте проверки ",[482,1571,1572],{},"instanceof"," от частного к общему:",[1575,1576,1577,1840],"rest-api-version-only",{},[1578,1579,1580,1583],"template",{"v-slot:rest-api-ver2":572},[472,1581,1582],{},"\u002F\u002F @check-ignore: top-level try\u002Fcatch with return, not valid at module scope",[567,1584,1586],{"className":569,"code":1585,"language":571,"meta":572,"style":572},"import { AjaxError, SdkError } from '@bitrix24\u002Fb24jssdk'\n\ntry {\n  await $b24.actions.v2.call.make({ method: 'crm.deal.get', params: { id: 1 } })\n}\ncatch (error) {\n  if (error instanceof AjaxError) {\n    \u002F\u002F Сторона портала: error.code — это код Bitrix24 (например, expired_token)\n    if (error.code === 'expired_token') return refreshAndRetry()\n    if (error.code === 'AUTHORIZE_ERROR') return showPermissionDenied()\n    throw error\n  }\n  if (error instanceof SdkError) {\n    \u002F\u002F Сторона SDK: error.code начинается с JSSDK_\n    throw error \u002F\u002F это ошибки программиста, показывайте их\n  }\n  throw error\n}\n",[482,1587,1588,1610,1614,1620,1690,1694,1702,1718,1723,1756,1785,1791,1795,1811,1816,1825,1829,1836],{"__ignoreMap":572},[576,1589,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608],{"class":578,"line":579},[576,1591,583],{"class":582},[576,1593,587],{"class":586},[576,1595,597],{"class":590},[576,1597,594],{"class":586},[576,1599,591],{"class":590},[576,1601,600],{"class":586},[576,1603,603],{"class":582},[576,1605,606],{"class":586},[576,1607,610],{"class":609},[576,1609,613],{"class":586},[576,1611,1612],{"class":578,"line":616},[576,1613,620],{"emptyLinePlaceholder":619},[576,1615,1616,1618],{"class":578,"line":623},[576,1617,626],{"class":582},[576,1619,629],{"class":586},[576,1621,1622,1625,1628,1630,1632,1634,1637,1639,1642,1644,1647,1649,1652,1655,1658,1660,1663,1666,1668,1671,1673,1675,1678,1680,1684,1686,1688],{"class":578,"line":632},[576,1623,1624],{"class":582},"  await",[576,1626,1627],{"class":590}," $b24",[576,1629,496],{"class":586},[576,1631,91],{"class":590},[576,1633,496],{"class":586},[576,1635,1636],{"class":590},"v2",[576,1638,496],{"class":586},[576,1640,1641],{"class":590},"call",[576,1643,496],{"class":586},[576,1645,1646],{"class":694},"make",[576,1648,697],{"class":663},[576,1650,1651],{"class":586},"{",[576,1653,1654],{"class":663}," method",[576,1656,1657],{"class":586},":",[576,1659,606],{"class":586},[576,1661,1662],{"class":609},"crm.deal.get",[576,1664,1665],{"class":586},"'",[576,1667,594],{"class":586},[576,1669,1670],{"class":663}," params",[576,1672,1657],{"class":586},[576,1674,587],{"class":586},[576,1676,1677],{"class":663}," id",[576,1679,1657],{"class":586},[576,1681,1683],{"class":1682},"sbssI"," 1",[576,1685,600],{"class":586},[576,1687,600],{"class":586},[576,1689,740],{"class":663},[576,1691,1692],{"class":578,"line":639},[576,1693,642],{"class":586},[576,1695,1696,1698,1700],{"class":578,"line":645},[576,1697,648],{"class":582},[576,1699,651],{"class":590},[576,1701,654],{"class":586},[576,1703,1704,1706,1708,1710,1712,1714,1716],{"class":578,"line":657},[576,1705,660],{"class":582},[576,1707,506],{"class":663},[576,1709,666],{"class":590},[576,1711,669],{"class":586},[576,1713,597],{"class":672},[576,1715,675],{"class":663},[576,1717,654],{"class":586},[576,1719,1720],{"class":578,"line":680},[576,1721,1722],{"class":635},"    \u002F\u002F Сторона портала: error.code — это код Bitrix24 (например, expired_token)\n",[576,1724,1725,1728,1730,1732,1734,1736,1739,1741,1743,1745,1747,1750,1753],{"class":578,"line":686},[576,1726,1727],{"class":582},"    if",[576,1729,506],{"class":663},[576,1731,666],{"class":590},[576,1733,496],{"class":586},[576,1735,482],{"class":590},[576,1737,1738],{"class":586}," ===",[576,1740,606],{"class":586},[576,1742,1393],{"class":609},[576,1744,1665],{"class":586},[576,1746,675],{"class":663},[576,1748,1749],{"class":582},"return",[576,1751,1752],{"class":694}," refreshAndRetry",[576,1754,1755],{"class":663},"()\n",[576,1757,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1783],{"class":578,"line":743},[576,1759,1727],{"class":582},[576,1761,506],{"class":663},[576,1763,666],{"class":590},[576,1765,496],{"class":586},[576,1767,482],{"class":590},[576,1769,1738],{"class":586},[576,1771,606],{"class":586},[576,1773,1430],{"class":609},[576,1775,1665],{"class":586},[576,1777,675],{"class":663},[576,1779,1749],{"class":582},[576,1781,1782],{"class":694}," showPermissionDenied",[576,1784,1755],{"class":663},[576,1786,1787,1789],{"class":578,"line":749},[576,1788,818],{"class":582},[576,1790,821],{"class":590},[576,1792,1793],{"class":578,"line":770},[576,1794,746],{"class":586},[576,1796,1797,1799,1801,1803,1805,1807,1809],{"class":578,"line":776},[576,1798,660],{"class":582},[576,1800,506],{"class":663},[576,1802,666],{"class":590},[576,1804,669],{"class":586},[576,1806,591],{"class":672},[576,1808,675],{"class":663},[576,1810,654],{"class":586},[576,1812,1813],{"class":578,"line":803},[576,1814,1815],{"class":635},"    \u002F\u002F Сторона SDK: error.code начинается с JSSDK_\n",[576,1817,1818,1820,1822],{"class":578,"line":808},[576,1819,818],{"class":582},[576,1821,708],{"class":590},[576,1823,1824],{"class":635}," \u002F\u002F это ошибки программиста, показывайте их\n",[576,1826,1827],{"class":578,"line":815},[576,1828,746],{"class":586},[576,1830,1831,1834],{"class":578,"line":824},[576,1832,1833],{"class":582},"  throw",[576,1835,821],{"class":590},[576,1837,1838],{"class":578,"line":829},[576,1839,642],{"class":586},[1578,1841,1842,1844],{"v-slot:rest-api-ver3":572},[472,1843,1582],{},[567,1845,1847],{"className":569,"code":1846,"language":571,"meta":572,"style":572},"import { AjaxError, SdkError } from '@bitrix24\u002Fb24jssdk'\n\ntry {\n  await $b24.actions.v3.call.make({ method: 'crm.deal.get', params: { id: 1 } })\n}\ncatch (error) {\n  if (error instanceof AjaxError) {\n    \u002F\u002F Сторона портала: error.code — это код Bitrix24 (например, expired_token)\n    if (error.code === 'expired_token') return refreshAndRetry()\n    if (error.code === 'AUTHORIZE_ERROR') return showPermissionDenied()\n    throw error\n  }\n  if (error instanceof SdkError) {\n    \u002F\u002F Сторона SDK: error.code начинается с JSSDK_\n    throw error \u002F\u002F это ошибки программиста, показывайте их\n  }\n  throw error\n}\n",[482,1848,1849,1871,1875,1881,1938,1942,1950,1966,1970,1998,2026,2032,2036,2052,2056,2064,2068,2074],{"__ignoreMap":572},[576,1850,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869],{"class":578,"line":579},[576,1852,583],{"class":582},[576,1854,587],{"class":586},[576,1856,597],{"class":590},[576,1858,594],{"class":586},[576,1860,591],{"class":590},[576,1862,600],{"class":586},[576,1864,603],{"class":582},[576,1866,606],{"class":586},[576,1868,610],{"class":609},[576,1870,613],{"class":586},[576,1872,1873],{"class":578,"line":616},[576,1874,620],{"emptyLinePlaceholder":619},[576,1876,1877,1879],{"class":578,"line":623},[576,1878,626],{"class":582},[576,1880,629],{"class":586},[576,1882,1883,1885,1887,1889,1891,1893,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936],{"class":578,"line":632},[576,1884,1624],{"class":582},[576,1886,1627],{"class":590},[576,1888,496],{"class":586},[576,1890,91],{"class":590},[576,1892,496],{"class":586},[576,1894,1895],{"class":590},"v3",[576,1897,496],{"class":586},[576,1899,1641],{"class":590},[576,1901,496],{"class":586},[576,1903,1646],{"class":694},[576,1905,697],{"class":663},[576,1907,1651],{"class":586},[576,1909,1654],{"class":663},[576,1911,1657],{"class":586},[576,1913,606],{"class":586},[576,1915,1662],{"class":609},[576,1917,1665],{"class":586},[576,1919,594],{"class":586},[576,1921,1670],{"class":663},[576,1923,1657],{"class":586},[576,1925,587],{"class":586},[576,1927,1677],{"class":663},[576,1929,1657],{"class":586},[576,1931,1683],{"class":1682},[576,1933,600],{"class":586},[576,1935,600],{"class":586},[576,1937,740],{"class":663},[576,1939,1940],{"class":578,"line":639},[576,1941,642],{"class":586},[576,1943,1944,1946,1948],{"class":578,"line":645},[576,1945,648],{"class":582},[576,1947,651],{"class":590},[576,1949,654],{"class":586},[576,1951,1952,1954,1956,1958,1960,1962,1964],{"class":578,"line":657},[576,1953,660],{"class":582},[576,1955,506],{"class":663},[576,1957,666],{"class":590},[576,1959,669],{"class":586},[576,1961,597],{"class":672},[576,1963,675],{"class":663},[576,1965,654],{"class":586},[576,1967,1968],{"class":578,"line":680},[576,1969,1722],{"class":635},[576,1971,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996],{"class":578,"line":686},[576,1973,1727],{"class":582},[576,1975,506],{"class":663},[576,1977,666],{"class":590},[576,1979,496],{"class":586},[576,1981,482],{"class":590},[576,1983,1738],{"class":586},[576,1985,606],{"class":586},[576,1987,1393],{"class":609},[576,1989,1665],{"class":586},[576,1991,675],{"class":663},[576,1993,1749],{"class":582},[576,1995,1752],{"class":694},[576,1997,1755],{"class":663},[576,1999,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024],{"class":578,"line":743},[576,2001,1727],{"class":582},[576,2003,506],{"class":663},[576,2005,666],{"class":590},[576,2007,496],{"class":586},[576,2009,482],{"class":590},[576,2011,1738],{"class":586},[576,2013,606],{"class":586},[576,2015,1430],{"class":609},[576,2017,1665],{"class":586},[576,2019,675],{"class":663},[576,2021,1749],{"class":582},[576,2023,1782],{"class":694},[576,2025,1755],{"class":663},[576,2027,2028,2030],{"class":578,"line":749},[576,2029,818],{"class":582},[576,2031,821],{"class":590},[576,2033,2034],{"class":578,"line":770},[576,2035,746],{"class":586},[576,2037,2038,2040,2042,2044,2046,2048,2050],{"class":578,"line":776},[576,2039,660],{"class":582},[576,2041,506],{"class":663},[576,2043,666],{"class":590},[576,2045,669],{"class":586},[576,2047,591],{"class":672},[576,2049,675],{"class":663},[576,2051,654],{"class":586},[576,2053,2054],{"class":578,"line":803},[576,2055,1815],{"class":635},[576,2057,2058,2060,2062],{"class":578,"line":808},[576,2059,818],{"class":582},[576,2061,708],{"class":590},[576,2063,1824],{"class":635},[576,2065,2066],{"class":578,"line":815},[576,2067,746],{"class":586},[576,2069,2070,2072],{"class":578,"line":824},[576,2071,1833],{"class":582},[576,2073,821],{"class":590},[576,2075,2076],{"class":578,"line":829},[576,2077,642],{"class":586},[1558,2079,2081,2082,2085],{"id":2080},"use-issuccess-for-non-throwing-methods","Используйте ",[482,2083,2084],{},"isSuccess"," для невыбрасывающих методов",[472,2087,2088,488,2090,488,2092,488,2094,2096,2097,529,2099,2101],{},[482,2089,87],{},[482,2091,99],{},[482,2093,122],{},[482,2095,171],{}," возвращают ",[482,2098,283],{},[482,2100,262],{}," вместо выброса исключения:",[1575,2103,2104,2245],{},[1578,2105,2106,2109],{"v-slot:rest-api-ver2":572},[472,2107,2108],{},"\u002F\u002F @check-ignore: top-level return in callList error-handling illustration",[567,2110,2112],{"className":569,"code":2111,"language":571,"meta":572,"style":572},"const response = await $b24.actions.v2.callList.make({ \u002F* … *\u002F })\nif (!response.isSuccess) {\n  console.error(response.getErrorMessages().join('; '))\n  return\n}\nconst items = response.getData()\n",[482,2113,2114,2159,2179,2217,2222,2226],{"__ignoreMap":572},[576,2115,2116,2120,2123,2126,2129,2131,2133,2135,2137,2139,2141,2144,2146,2148,2150,2152,2155,2157],{"class":578,"line":579},[576,2117,2119],{"class":2118},"spNyl","const",[576,2121,2122],{"class":590}," response ",[576,2124,2125],{"class":586},"=",[576,2127,2128],{"class":582}," await",[576,2130,1627],{"class":590},[576,2132,496],{"class":586},[576,2134,91],{"class":590},[576,2136,496],{"class":586},[576,2138,1636],{"class":590},[576,2140,496],{"class":586},[576,2142,2143],{"class":590},"callList",[576,2145,496],{"class":586},[576,2147,1646],{"class":694},[576,2149,697],{"class":590},[576,2151,1651],{"class":586},[576,2153,2154],{"class":635}," \u002F* … *\u002F",[576,2156,600],{"class":586},[576,2158,740],{"class":590},[576,2160,2161,2164,2166,2169,2172,2174,2177],{"class":578,"line":616},[576,2162,2163],{"class":582},"if",[576,2165,506],{"class":590},[576,2167,2168],{"class":586},"!",[576,2170,2171],{"class":590},"response",[576,2173,496],{"class":586},[576,2175,2176],{"class":590},"isSuccess) ",[576,2178,654],{"class":586},[576,2180,2181,2184,2186,2188,2190,2192,2194,2197,2200,2202,2205,2207,2209,2212,2214],{"class":578,"line":623},[576,2182,2183],{"class":590},"  console",[576,2185,496],{"class":586},[576,2187,666],{"class":694},[576,2189,697],{"class":663},[576,2191,2171],{"class":590},[576,2193,496],{"class":586},[576,2195,2196],{"class":694},"getErrorMessages",[576,2198,2199],{"class":663},"()",[576,2201,496],{"class":586},[576,2203,2204],{"class":694},"join",[576,2206,697],{"class":663},[576,2208,1665],{"class":586},[576,2210,2211],{"class":609},"; ",[576,2213,1665],{"class":586},[576,2215,2216],{"class":663},"))\n",[576,2218,2219],{"class":578,"line":632},[576,2220,2221],{"class":582},"  return\n",[576,2223,2224],{"class":578,"line":639},[576,2225,642],{"class":586},[576,2227,2228,2230,2233,2235,2238,2240,2243],{"class":578,"line":645},[576,2229,2119],{"class":2118},[576,2231,2232],{"class":590}," items ",[576,2234,2125],{"class":586},[576,2236,2237],{"class":590}," response",[576,2239,496],{"class":586},[576,2241,2242],{"class":694},"getData",[576,2244,1755],{"class":590},[1578,2246,2247,2249],{"v-slot:rest-api-ver3":572},[472,2248,2108],{},[567,2250,2252],{"className":569,"code":2251,"language":571,"meta":572,"style":572},"const response = await $b24.actions.v3.callList.make({ \u002F* … *\u002F })\nif (!response.isSuccess) {\n  console.error(response.getErrorMessages().join('; '))\n  return\n}\nconst items = response.getData()\n",[482,2253,2254,2292,2308,2340,2344,2348],{"__ignoreMap":572},[576,2255,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290],{"class":578,"line":579},[576,2257,2119],{"class":2118},[576,2259,2122],{"class":590},[576,2261,2125],{"class":586},[576,2263,2128],{"class":582},[576,2265,1627],{"class":590},[576,2267,496],{"class":586},[576,2269,91],{"class":590},[576,2271,496],{"class":586},[576,2273,1895],{"class":590},[576,2275,496],{"class":586},[576,2277,2143],{"class":590},[576,2279,496],{"class":586},[576,2281,1646],{"class":694},[576,2283,697],{"class":590},[576,2285,1651],{"class":586},[576,2287,2154],{"class":635},[576,2289,600],{"class":586},[576,2291,740],{"class":590},[576,2293,2294,2296,2298,2300,2302,2304,2306],{"class":578,"line":616},[576,2295,2163],{"class":582},[576,2297,506],{"class":590},[576,2299,2168],{"class":586},[576,2301,2171],{"class":590},[576,2303,496],{"class":586},[576,2305,2176],{"class":590},[576,2307,654],{"class":586},[576,2309,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338],{"class":578,"line":623},[576,2311,2183],{"class":590},[576,2313,496],{"class":586},[576,2315,666],{"class":694},[576,2317,697],{"class":663},[576,2319,2171],{"class":590},[576,2321,496],{"class":586},[576,2323,2196],{"class":694},[576,2325,2199],{"class":663},[576,2327,496],{"class":586},[576,2329,2204],{"class":694},[576,2331,697],{"class":663},[576,2333,1665],{"class":586},[576,2335,2211],{"class":609},[576,2337,1665],{"class":586},[576,2339,2216],{"class":663},[576,2341,2342],{"class":578,"line":632},[576,2343,2221],{"class":582},[576,2345,2346],{"class":578,"line":639},[576,2347,642],{"class":586},[576,2349,2350,2352,2354,2356,2358,2360,2362],{"class":578,"line":645},[576,2351,2119],{"class":2118},[576,2353,2232],{"class":590},[576,2355,2125],{"class":586},[576,2357,2237],{"class":590},[576,2359,496],{"class":586},[576,2361,2242],{"class":694},[576,2363,1755],{"class":590},[472,2365,2366,2367,516,2370,2372,2373,2376,2377,2380,2381,2383],{},"Для батчей с ",[482,2368,2369],{},"isHaltOnError: false",[482,2371,2084],{}," становится false при ",[518,2374,2375],{},"любом"," сбое вложенного вызова, но ",[482,2378,2379],{},"getData()"," всё равно содержит успешные записи. Итерируйте и проверяйте ",[482,2382,553],{}," по каждой строке, если нужно знать, какие вызовы прошли.",[1558,2385,2387,2388,2390,2391,572],{"id":2386},"catch-around-for-await-for-fetchlist","Оборачивайте ",[482,2389,1055],{}," в try\u002Fcatch для ",[482,2392,108],{},[1575,2394,2395,2563],{},[1578,2396,2397,2400],{"v-slot:rest-api-ver2":572},[472,2398,2399],{},"\u002F\u002F @check-ignore: top-level for-await in fetchList error-handling illustration",[567,2401,2403],{"className":569,"code":2402,"language":571,"meta":572,"style":572},"try {\n  for await (const chunk of $b24.actions.v2.fetchList.make({ \u002F* … *\u002F })) {\n    await persist(chunk)\n  }\n}\ncatch (error) {\n  if (\n    error instanceof SdkError\n    && error.code === 'JSSDK_CORE_B24_FETCH_LIST_METHOD_API_V2'\n  ) {\n    \u002F\u002F запрос страницы завершился неудачей; сохранённые до этого момента чанки всё ещё валидны\n    return resumeFromLastSavedId()\n  }\n  throw error\n}\n",[482,2404,2405,2411,2460,2475,2479,2483,2491,2498,2508,2527,2534,2539,2549,2553,2559],{"__ignoreMap":572},[576,2406,2407,2409],{"class":578,"line":579},[576,2408,626],{"class":582},[576,2410,629],{"class":586},[576,2412,2413,2416,2418,2420,2422,2425,2428,2430,2432,2434,2436,2438,2440,2443,2445,2447,2449,2451,2453,2455,2458],{"class":578,"line":616},[576,2414,2415],{"class":582},"  for",[576,2417,2128],{"class":582},[576,2419,506],{"class":663},[576,2421,2119],{"class":2118},[576,2423,2424],{"class":590}," chunk",[576,2426,2427],{"class":586}," of",[576,2429,1627],{"class":590},[576,2431,496],{"class":586},[576,2433,91],{"class":590},[576,2435,496],{"class":586},[576,2437,1636],{"class":590},[576,2439,496],{"class":586},[576,2441,2442],{"class":590},"fetchList",[576,2444,496],{"class":586},[576,2446,1646],{"class":694},[576,2448,697],{"class":663},[576,2450,1651],{"class":586},[576,2452,2154],{"class":635},[576,2454,600],{"class":586},[576,2456,2457],{"class":663},")) ",[576,2459,654],{"class":586},[576,2461,2462,2465,2468,2470,2473],{"class":578,"line":623},[576,2463,2464],{"class":582},"    await",[576,2466,2467],{"class":694}," persist",[576,2469,697],{"class":663},[576,2471,2472],{"class":590},"chunk",[576,2474,740],{"class":663},[576,2476,2477],{"class":578,"line":632},[576,2478,746],{"class":586},[576,2480,2481],{"class":578,"line":639},[576,2482,642],{"class":586},[576,2484,2485,2487,2489],{"class":578,"line":645},[576,2486,648],{"class":582},[576,2488,651],{"class":590},[576,2490,654],{"class":586},[576,2492,2493,2495],{"class":578,"line":657},[576,2494,660],{"class":582},[576,2496,2497],{"class":663}," (\n",[576,2499,2500,2503,2505],{"class":578,"line":680},[576,2501,2502],{"class":590},"    error",[576,2504,669],{"class":586},[576,2506,2507],{"class":672}," SdkError\n",[576,2509,2510,2513,2515,2517,2519,2521,2523,2525],{"class":578,"line":686},[576,2511,2512],{"class":586},"    &&",[576,2514,708],{"class":590},[576,2516,496],{"class":586},[576,2518,482],{"class":590},[576,2520,1738],{"class":586},[576,2522,606],{"class":586},[576,2524,1041],{"class":609},[576,2526,613],{"class":586},[576,2528,2529,2532],{"class":578,"line":743},[576,2530,2531],{"class":663},"  ) ",[576,2533,654],{"class":586},[576,2535,2536],{"class":578,"line":749},[576,2537,2538],{"class":635},"    \u002F\u002F запрос страницы завершился неудачей; сохранённые до этого момента чанки всё ещё валидны\n",[576,2540,2541,2544,2547],{"class":578,"line":770},[576,2542,2543],{"class":582},"    return",[576,2545,2546],{"class":694}," resumeFromLastSavedId",[576,2548,1755],{"class":663},[576,2550,2551],{"class":578,"line":776},[576,2552,746],{"class":586},[576,2554,2555,2557],{"class":578,"line":803},[576,2556,1833],{"class":582},[576,2558,821],{"class":590},[576,2560,2561],{"class":578,"line":808},[576,2562,642],{"class":586},[1578,2564,2565,2567],{"v-slot:rest-api-ver3":572},[472,2566,2399],{},[567,2568,2570],{"className":569,"code":2569,"language":571,"meta":572,"style":572},"try {\n  for await (const chunk of $b24.actions.v3.fetchList.make({ \u002F* … *\u002F })) {\n    await persist(chunk)\n  }\n}\ncatch (error) {\n  if (\n    error instanceof SdkError\n    && error.code === 'JSSDK_CORE_B24_FETCH_LIST_METHOD_API_V3'\n  ) {\n    \u002F\u002F запрос страницы завершился неудачей; сохранённые до этого момента чанки всё ещё валидны\n    return resumeFromLastSavedId()\n  }\n  throw error\n}\n",[482,2571,2572,2578,2622,2634,2638,2642,2650,2656,2664,2682,2688,2692,2700,2704,2710],{"__ignoreMap":572},[576,2573,2574,2576],{"class":578,"line":579},[576,2575,626],{"class":582},[576,2577,629],{"class":586},[576,2579,2580,2582,2584,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620],{"class":578,"line":616},[576,2581,2415],{"class":582},[576,2583,2128],{"class":582},[576,2585,506],{"class":663},[576,2587,2119],{"class":2118},[576,2589,2424],{"class":590},[576,2591,2427],{"class":586},[576,2593,1627],{"class":590},[576,2595,496],{"class":586},[576,2597,91],{"class":590},[576,2599,496],{"class":586},[576,2601,1895],{"class":590},[576,2603,496],{"class":586},[576,2605,2442],{"class":590},[576,2607,496],{"class":586},[576,2609,1646],{"class":694},[576,2611,697],{"class":663},[576,2613,1651],{"class":586},[576,2615,2154],{"class":635},[576,2617,600],{"class":586},[576,2619,2457],{"class":663},[576,2621,654],{"class":586},[576,2623,2624,2626,2628,2630,2632],{"class":578,"line":623},[576,2625,2464],{"class":582},[576,2627,2467],{"class":694},[576,2629,697],{"class":663},[576,2631,2472],{"class":590},[576,2633,740],{"class":663},[576,2635,2636],{"class":578,"line":632},[576,2637,746],{"class":586},[576,2639,2640],{"class":578,"line":639},[576,2641,642],{"class":586},[576,2643,2644,2646,2648],{"class":578,"line":645},[576,2645,648],{"class":582},[576,2647,651],{"class":590},[576,2649,654],{"class":586},[576,2651,2652,2654],{"class":578,"line":657},[576,2653,660],{"class":582},[576,2655,2497],{"class":663},[576,2657,2658,2660,2662],{"class":578,"line":680},[576,2659,2502],{"class":590},[576,2661,669],{"class":586},[576,2663,2507],{"class":672},[576,2665,2666,2668,2670,2672,2674,2676,2678,2680],{"class":578,"line":686},[576,2667,2512],{"class":586},[576,2669,708],{"class":590},[576,2671,496],{"class":586},[576,2673,482],{"class":590},[576,2675,1738],{"class":586},[576,2677,606],{"class":586},[576,2679,1063],{"class":609},[576,2681,613],{"class":586},[576,2683,2684,2686],{"class":578,"line":743},[576,2685,2531],{"class":663},[576,2687,654],{"class":586},[576,2689,2690],{"class":578,"line":749},[576,2691,2538],{"class":635},[576,2693,2694,2696,2698],{"class":578,"line":770},[576,2695,2543],{"class":582},[576,2697,2546],{"class":694},[576,2699,1755],{"class":663},[576,2701,2702],{"class":578,"line":776},[576,2703,746],{"class":586},[576,2705,2706,2708],{"class":578,"line":803},[576,2707,1833],{"class":582},[576,2709,821],{"class":590},[576,2711,2712],{"class":578,"line":808},[576,2713,642],{"class":586},[1558,2715,2717],{"id":2716},"decide-what-to-retry","Решите, что повторять",[840,2719,2720,2730],{},[843,2721,2722],{},[846,2723,2724,2727],{},[849,2725,2726],{},"Условие ошибки",[849,2728,2729],{},"Безопасно повторять?",[862,2731,2732,2743,2753,2766,2777],{},[846,2733,2734,2740],{},[867,2735,2736,488,2738],{},[482,2737,1461],{},[482,2739,1485],{},[867,2741,2742],{},"Да — встроенный лимитер уже это делает.",[846,2744,2745,2750],{},[867,2746,2747,2749],{},[482,2748,1393],{}," (Frame\u002FOAuth)",[867,2751,2752],{},"Да — уже автоматически. Для кастомных транспортов: обновите, повторите один раз.",[846,2754,2755,2763],{},[867,2756,2757,488,2759,488,2761],{},[482,2758,1415],{},[482,2760,1430],{},[482,2762,1446],{},[867,2764,2765],{},"Нет — нужно вмешательство человека (переавторизация, исправление scope).",[846,2767,2768,2774],{},[867,2769,2770,488,2772],{},[482,2771,1504],{},[482,2773,1527],{},[867,2775,2776],{},"Нет — запрос некорректен; повтор даст ту же ошибку.",[846,2778,2779,2782],{},[867,2780,2781],{},"Сеть \u002F 5xx без конкретного кода",[867,2783,2784,2785,2787,2788,2791],{},"Да — но только через границу ",[482,2786,1270],{},"; увеличьте ",[482,2789,2790],{},"restrictionParams.maxRetries",", если нужно больше попыток.",[467,2793,2795],{"id":2794},"see-also","См. также",[476,2797,2798,2804,2811],{},[479,2799,2800,2803],{},[1544,2801,185],{"href":2802},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fchoosing-the-right-method\u002F"," — подбирает правильный примитив до того, как вам придётся читать эту страницу.",[479,2805,2806,2810],{},[1544,2807,2809],{"href":2808},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Flimiters\u002F","Система ограничений"," — конфигурация rate limit, времени операций и адаптивной задержки.",[479,2812,2813,2819,2820,488,2822,488,2824,2826,2827,488,2830,488,2833,488,2836,1405,2839,2842,2843,2849,2850,558,2856,2859,2860,2862],{},[1544,2814,2817],{"href":2815,"rel":2816},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fcore\u002Fhttp\u002Fajax-result.ts",[1548],[482,2818,262],{}," — полная поверхность payload (",[482,2821,2084],{},[482,2823,2242],{},[482,2825,2196],{},"). Пейджинговые хелперы только для v2 — ",[482,2828,2829],{},"isMore",[482,2831,2832],{},"hasMore",[482,2834,2835],{},"getNext",[482,2837,2838],{},"fetchNext",[482,2840,2841],{},"getTotal"," — устарели и намечены к удалению в 2.0.0; используйте вместо них ",[1544,2844,2846],{"href":2845},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-list-rest-api-ver2\u002F",[482,2847,2848],{},"b24.actions.v{2,3}.callList.make"," или ",[1544,2851,2853],{"href":2852},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffetch-list-rest-api-ver2\u002F",[482,2854,2855],{},"fetchList.make",[482,2857,2858],{},"getNext()"," продолжает выбрасывать ",[482,2861,1018],{}," на клиентах v3.",[2864,2865,2866],"style",{},"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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":572,"searchDepth":616,"depth":616,"links":2868},[2869,2870,2871,2873,2881],{"id":469,"depth":616,"text":470},{"id":834,"depth":616,"text":835},{"id":1353,"depth":616,"text":2872},"Коды со стороны REST, возвращаемые как AjaxError",{"id":1555,"depth":616,"text":1556,"children":2874},[2875,2876,2878,2880],{"id":1560,"depth":623,"text":1561},{"id":2080,"depth":623,"text":2877},"Используйте isSuccess для невыбрасывающих методов",{"id":2386,"depth":623,"text":2879},"Оборачивайте for await в try\u002Fcatch для FetchList",{"id":2716,"depth":623,"text":2717},{"id":2794,"depth":616,"text":2795},"md",[2884,2887,2889,2890],{"label":484,"iconName":2885,"to":2886},"GitHubIcon","https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fcore\u002Fsdk-error.ts",{"label":1357,"iconName":2885,"to":2888},"https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fcore\u002Fhttp\u002Fajax-error.ts",{"label":262,"iconName":2885,"to":2815},{"label":2891,"iconName":2885,"to":2892},"Skill — b24jssdk-core","https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fskills\u002Fb24jssdk-core\u002FSKILL.md",{},{"title":236},{"title":461,"description":239},"Dz97SDY6B3ckgP2rvQzsCeHVCi_DFm6Bs93OyxrvehE",{"data":2898,"body":2899},{},{"type":2900,"children":2901},"root",[2902],{"type":2903,"tag":472,"props":2904,"children":2905},"element",{},[2906],{"type":2907,"value":239},"text",1783080216843]