[{"data":1,"prerenderedAt":3664},["ShallowReactive",2],{"navigation":3,"-docs-working-with-the-rest-api-fetch-list-rest-api-ver2":459,"-docs-working-with-the-rest-api-fetch-list-rest-api-ver2-description":3653},[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":91,"description":111,"extension":3634,"links":3635,"meta":3649,"navigation":3650,"path":109,"restApiVersion":90,"seo":3651,"stem":110,"__hash__":3652},"docs\u002Fdocs\u002F2.working-with-the-rest-api\u002F2.fetch-list-rest-api-ver2.md","FetchListV2.make","2026-07-01",{"type":464,"value":465,"toc":3611},"minimark",[466,493,498,521,524,838,843,864,868,926,930,937,1197,1201,1219,1222,1234,1238,1242,1249,1267,1270,1274,1289,1366,1370,1379,1412,1416,1419,1477,1485,1488,1531,1534,1548,1922,1924,1928,3185,3192,3222,3510,3523,3527,3607],[467,468,470,478],"caution",{"title":469},"⚠️ УСТАРЕВАНИЕ REST API",[471,472,473,477],"p",{},[474,475,476],"strong",{},"Bitrix24 постепенно переходит на REST API версии 3",".",[479,480,481],"ul",{},[482,483,484,485,492],"li",{},"При вызове методов, ",[486,487,491],"a",{"href":488,"rel":489},"https:\u002F\u002Fapidocs.bitrix24.ru\u002Fapi-reference\u002Frest-v3\u002Findex.html",[490],"nofollow","доступных в REST API v3",", метод автоматически выводит предупреждение.",[494,495,497],"h2",{"id":496},"overview","Обзор",[471,499,500,501,477],{},"Когда нужно обработать большие объёмы данных из list-методов REST API версии 2 по частям (чанками), используйте ",[502,503,507,512,515,518],"code",{"className":504,"language":505,"style":506},"language-ts-type shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ts-type","",[508,509,511],"span",{"class":510},"sBMFI","FetchListV2",[508,513,477],{"class":514},"sMK4o",[508,516,517],{"class":510},"make",[508,519,520],{"class":514},"()",[471,522,523],{},"Метод реализует быстрый алгоритм итерации по большим наборам данных без загрузки всех данных в память сразу. Каждая итерация возвращает следующую страницу\u002Fпакет результатов, пока не получены все данные.",[525,526,530],"pre",{"className":527,"code":528,"language":529,"meta":506,"style":506},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Базовое использование\nimport { EnumCrmEntityTypeId } from '@bitrix24\u002Fb24jssdk'\n\nconst generator = $b24.actions.v2.fetchList.make({\n  method: 'crm.item.list',\n  params: {\n    entityTypeId: EnumCrmEntityTypeId.deal,\n    filter: { '>opportunity': 10000 }\n  },\n  idKey: 'id',\n  customKeyForResult: 'items',\n  requestId: 'unique-request-id'\n})\n\nfor await (const chunk of generator) {\n  \u002F\u002F Обработка чанка (например, сохранение в БД, анализ и т.д.)\n  console.log(`Processing ${chunk.length} items`)\n}\n","ts",[502,531,532,540,570,577,618,639,650,667,693,699,716,733,748,757,762,787,793,832],{"__ignoreMap":506},[508,533,536],{"class":534,"line":535},"line",1,[508,537,539],{"class":538},"sHwdD","\u002F\u002F Базовое использование\n",[508,541,543,547,550,554,557,560,563,567],{"class":534,"line":542},2,[508,544,546],{"class":545},"s7zQu","import",[508,548,549],{"class":514}," {",[508,551,553],{"class":552},"sTEyZ"," EnumCrmEntityTypeId",[508,555,556],{"class":514}," }",[508,558,559],{"class":545}," from",[508,561,562],{"class":514}," '",[508,564,566],{"class":565},"sfazB","@bitrix24\u002Fb24jssdk",[508,568,569],{"class":514},"'\n",[508,571,573],{"class":534,"line":572},3,[508,574,576],{"emptyLinePlaceholder":575},true,"\n",[508,578,580,584,587,590,593,595,597,599,602,604,607,609,612,615],{"class":534,"line":579},4,[508,581,583],{"class":582},"spNyl","const",[508,585,586],{"class":552}," generator ",[508,588,589],{"class":514},"=",[508,591,592],{"class":552}," $b24",[508,594,477],{"class":514},[508,596,91],{"class":552},[508,598,477],{"class":514},[508,600,601],{"class":552},"v2",[508,603,477],{"class":514},[508,605,606],{"class":552},"fetchList",[508,608,477],{"class":514},[508,610,517],{"class":611},"s2Zo4",[508,613,614],{"class":552},"(",[508,616,617],{"class":514},"{\n",[508,619,621,625,628,630,633,636],{"class":534,"line":620},5,[508,622,624],{"class":623},"swJcz","  method",[508,626,627],{"class":514},":",[508,629,562],{"class":514},[508,631,632],{"class":565},"crm.item.list",[508,634,635],{"class":514},"'",[508,637,638],{"class":514},",\n",[508,640,642,645,647],{"class":534,"line":641},6,[508,643,644],{"class":623},"  params",[508,646,627],{"class":514},[508,648,649],{"class":514}," {\n",[508,651,653,656,658,660,662,665],{"class":534,"line":652},7,[508,654,655],{"class":623},"    entityTypeId",[508,657,627],{"class":514},[508,659,553],{"class":552},[508,661,477],{"class":514},[508,663,664],{"class":552},"deal",[508,666,638],{"class":514},[508,668,670,673,675,677,679,682,684,686,690],{"class":534,"line":669},8,[508,671,672],{"class":623},"    filter",[508,674,627],{"class":514},[508,676,549],{"class":514},[508,678,562],{"class":514},[508,680,681],{"class":623},">opportunity",[508,683,635],{"class":514},[508,685,627],{"class":514},[508,687,689],{"class":688},"sbssI"," 10000",[508,691,692],{"class":514}," }\n",[508,694,696],{"class":534,"line":695},9,[508,697,698],{"class":514},"  },\n",[508,700,702,705,707,709,712,714],{"class":534,"line":701},10,[508,703,704],{"class":623},"  idKey",[508,706,627],{"class":514},[508,708,562],{"class":514},[508,710,711],{"class":565},"id",[508,713,635],{"class":514},[508,715,638],{"class":514},[508,717,719,722,724,726,729,731],{"class":534,"line":718},11,[508,720,721],{"class":623},"  customKeyForResult",[508,723,627],{"class":514},[508,725,562],{"class":514},[508,727,728],{"class":565},"items",[508,730,635],{"class":514},[508,732,638],{"class":514},[508,734,736,739,741,743,746],{"class":534,"line":735},12,[508,737,738],{"class":623},"  requestId",[508,740,627],{"class":514},[508,742,562],{"class":514},[508,744,745],{"class":565},"unique-request-id",[508,747,569],{"class":514},[508,749,751,754],{"class":534,"line":750},13,[508,752,753],{"class":514},"}",[508,755,756],{"class":552},")\n",[508,758,760],{"class":534,"line":759},14,[508,761,576],{"emptyLinePlaceholder":575},[508,763,765,768,771,774,776,779,782,785],{"class":534,"line":764},15,[508,766,767],{"class":545},"for",[508,769,770],{"class":545}," await",[508,772,773],{"class":552}," (",[508,775,583],{"class":582},[508,777,778],{"class":552}," chunk ",[508,780,781],{"class":514},"of",[508,783,784],{"class":552}," generator) ",[508,786,617],{"class":514},[508,788,790],{"class":534,"line":789},16,[508,791,792],{"class":538},"  \u002F\u002F Обработка чанка (например, сохранение в БД, анализ и т.д.)\n",[508,794,796,799,801,804,806,809,812,815,818,820,823,825,828,830],{"class":534,"line":795},17,[508,797,798],{"class":552},"  console",[508,800,477],{"class":514},[508,802,803],{"class":611},"log",[508,805,614],{"class":623},[508,807,808],{"class":514},"`",[508,810,811],{"class":565},"Processing ",[508,813,814],{"class":514},"${",[508,816,817],{"class":552},"chunk",[508,819,477],{"class":514},[508,821,822],{"class":552},"length",[508,824,753],{"class":514},[508,826,827],{"class":565}," items",[508,829,808],{"class":514},[508,831,756],{"class":623},[508,833,835],{"class":534,"line":834},18,[508,836,837],{"class":514},"}\n",[839,840,842],"h3",{"id":841},"when-to-use-fetchlistv2make","Когда использовать FetchListV2.make()",[844,845,846,852,858],"ol",{},[482,847,848,851],{},[474,849,850],{},"Очень большие объёмы данных",": когда число записей в тысячах или десятках тысяч.",[482,853,854,857],{},[474,855,856],{},"Потоковая обработка",": когда данные нужно обрабатывать по мере поступления.",[482,859,860,863],{},[474,861,862],{},"Длительные операции",": когда обработка каждой записи требует значительного времени.",[494,865,867],{"id":866},"method-signature","Сигнатура метода",[525,869,871],{"className":504,"code":870,"language":505,"meta":506,"style":506},"make\u003CT = unknown>(\n  options: ActionFetchListV2\n): AsyncGenerator\u003CT[]>\n",[502,872,873,895,906],{"__ignoreMap":506},[508,874,875,877,880,883,886,889,892],{"class":534,"line":535},[508,876,517],{"class":510},[508,878,879],{"class":514},"\u003C",[508,881,882],{"class":510},"T",[508,884,885],{"class":552}," = ",[508,887,888],{"class":510},"unknown",[508,890,891],{"class":514},">",[508,893,894],{"class":552},"(\n",[508,896,897,901,903],{"class":534,"line":542},[508,898,900],{"class":899},"sHdIc","  options",[508,902,627],{"class":514},[508,904,905],{"class":510}," ActionFetchListV2\n",[508,907,908,911,913,916,918,920,923],{"class":534,"line":572},[508,909,910],{"class":552},")",[508,912,627],{"class":514},[508,914,915],{"class":510}," AsyncGenerator",[508,917,879],{"class":514},[508,919,882],{"class":510},[508,921,922],{"class":552},"[]",[508,924,925],{"class":514},">\n",[839,927,929],{"id":928},"parameters","Параметры",[471,931,932,933,936],{},"Объект ",[502,934,935],{},"options"," содержит следующие свойства:",[938,939,940,959],"table",{},[941,942,943],"thead",{},[944,945,946,950,953,956],"tr",{},[947,948,949],"th",{},"Параметр",[947,951,952],{},"Тип",[947,954,955],{},"Обязательный",[947,957,958],{},"Описание",[960,961,962,993,1073,1109,1154,1177],"tbody",{},[944,963,964,972,979,982],{},[965,966,967],"td",{},[474,968,969],{},[502,970,971],{},"method",[965,973,974],{},[502,975,976],{"className":504,"language":505,"style":506},[508,977,978],{"class":510},"string",[965,980,981],{},"Да",[965,983,984,985,988,989,992],{},"Имя метода REST API, возвращающего список данных (например, ",[502,986,987],{},"crm.contact.list",", ",[502,990,991],{},"tasks.task.list",").",[944,994,995,1002,1036,1039],{},[965,996,997],{},[474,998,999],{},[502,1000,1001],{},"params",[965,1003,1004],{},[502,1005,1006,1009,1011,1014,1017,1019,1022,1024,1027,1029,1032,1034],{"className":504,"language":505,"style":506},[508,1007,1008],{"class":510},"Omit",[508,1010,879],{"class":514},[508,1012,1013],{"class":510},"TypeCallParams",[508,1015,1016],{"class":514},",",[508,1018,562],{"class":514},[508,1020,1021],{"class":565},"start",[508,1023,635],{"class":514},[508,1025,1026],{"class":514}," |",[508,1028,562],{"class":514},[508,1030,1031],{"class":565},"order",[508,1033,635],{"class":514},[508,1035,891],{"class":514},[965,1037,1038],{},"Нет",[965,1040,1041,1042,1044,1045,1047,1048,1050,1051,1053,1054,1057,1058,1061,1062,1066,1067,1044,1070,477],{},"Параметры запроса без параметров ",[502,1043,1021],{}," и ",[502,1046,1031],{},". Параметр ",[502,1049,1021],{}," зарезервирован, так как метод получает все данные одним вызовом. Параметр ",[502,1052,1031],{}," зарезервирован, так как курсорной пагинации нужна строгая сортировка по ",[502,1055,1056],{},"cursorIdKey"," (по умолчанию равен ",[502,1059,1060],{},"idKey",") по возрастанию — см. ",[486,1063,1065],{"href":1064},"#limitations","Ограничения",". Для сужения выборки используйте ",[502,1068,1069],{},"filter",[502,1071,1072],{},"select",[944,1074,1075,1081,1087,1089],{},[965,1076,1077],{},[474,1078,1079],{},[502,1080,1060],{},[965,1082,1083],{},[502,1084,1085],{"className":504,"language":505,"style":506},[508,1086,978],{"class":510},[965,1088,1038],{},[965,1090,1091,1092,1095,1096,1099,1100,1102,1103,1105,1106,477],{},"Имя поля id ",[474,1093,1094],{},"так, как оно приходит в каждом элементе ответа","; его значение управляет курсором. По умолчанию: ",[502,1097,1098],{},"'ID'"," (верхний регистр). Для методов, возвращающих id в нижнем\u002FcamelCase (например, ",[502,1101,991],{}," возвращает ",[502,1104,711],{},"), задайте ",[502,1107,1108],{},"'id'",[944,1110,1111,1117,1123,1125],{},[965,1112,1113],{},[474,1114,1115],{},[502,1116,1056],{},[965,1118,1119],{},[502,1120,1121],{"className":504,"language":505,"style":506},[508,1122,978],{"class":510},[965,1124,1038],{},[965,1126,1127,1128,1131,1132,1134,1135,1137,1138,1140,1141,1143,1144,1147,1148,1150,1151,477],{},"Имя поля, используемое в ",[474,1129,1130],{},"запросе"," для ",[502,1133,1031],{}," и постраничного фильтра ",[502,1136,891],{},". По умолчанию равно ",[502,1139,1060],{},". Задавайте, только когда имя сортируемого \u002F фильтруемого поля отличается от поля в ответе — например, ",[502,1142,991],{}," сортирует и фильтрует по ",[502,1145,1146],{},"ID",", но возвращает ",[502,1149,711],{},": передайте ",[502,1152,1153],{},"idKey: 'id', cursorIdKey: 'ID'",[944,1155,1156,1163,1169,1171],{},[965,1157,1158],{},[474,1159,1160],{},[502,1161,1162],{},"customKeyForResult",[965,1164,1165],{},[502,1166,1167],{"className":504,"language":505,"style":506},[508,1168,978],{"class":510},[965,1170,1038],{},[965,1172,1173,1174,1176],{},"Ключ, по которому в ответе REST API будет выбран массив данных. Например: ",[502,1175,728],{}," для списка элементов CRM.",[944,1178,1179,1186,1192,1194],{},[965,1180,1181],{},[474,1182,1183],{},[502,1184,1185],{},"requestId",[965,1187,1188],{},[502,1189,1190],{"className":504,"language":505,"style":506},[508,1191,978],{"class":510},[965,1193,1038],{},[965,1195,1196],{},"Уникальный идентификатор запроса для отслеживания. Используется для дедупликации запросов и отладки.",[839,1198,1200],{"id":1199},"return-value","Возвращаемое значение",[471,1202,1203,1216,1217,477],{},[502,1204,1205,1208,1210,1212,1214],{"className":504,"language":505,"style":506},[508,1206,1207],{"class":510},"AsyncGenerator",[508,1209,879],{"class":514},[508,1211,882],{"class":510},[508,1213,922],{"class":552},[508,1215,891],{"class":514}," — асинхронный генератор, возвращающий чанки данных в виде массивов типа ",[502,1218,882],{},[471,1220,1221],{},"Каждая итерация генератора возвращает:",[479,1223,1224,1231],{},[482,1225,1226,1227,1230],{},"Массив элементов (чанк) до ",[502,1228,1229],{},"50"," записей.",[482,1232,1233],{},"Генератор завершается, когда все данные получены.",[494,1235,1237],{"id":1236},"key-concepts","Ключевые понятия",[839,1239,1241],{"id":1240},"automatic-warning","Автоматическое предупреждение",[471,1243,1244,1245,1248],{},"При вызове методов, которые ",[474,1246,1247],{},"доступны в REST API версии 3",", система автоматически выводит предупреждение:",[525,1250,1254],{"className":1251,"code":1252,"language":1253,"meta":506,"style":506},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\"The method {method_name} is available in restApi:v3. It's worth migrating to the new API.\"\n","json",[502,1255,1256],{"__ignoreMap":506},[508,1257,1258,1261,1264],{"class":534,"line":535},[508,1259,1260],{"class":514},"\"",[508,1262,1263],{"class":565},"The method {method_name} is available in restApi:v3. It's worth migrating to the new API.",[508,1265,1266],{"class":514},"\"\n",[471,1268,1269],{},"Это указывает на то, что стоит рассмотреть миграцию на более новую версию REST API.",[839,1271,1273],{"id":1272},"asyncgenerator-vs-promise","AsyncGenerator vs Promise",[471,1275,1276,1277,1280,1281,1284,1285,1288],{},"В отличие от ",[502,1278,1279],{},"CallListV2.make()",", который возвращает ",[502,1282,1283],{},"Promise"," со всеми данными сразу, ",[502,1286,1287],{},"FetchListV2.make()"," возвращает асинхронный генератор:",[938,1290,1291,1306],{},[941,1292,1293],{},[944,1294,1295,1298,1302],{},[947,1296,1297],{},"Аспект",[947,1299,1300],{},[502,1301,1279],{},[947,1303,1304],{},[502,1305,1287],{},[960,1307,1308,1324,1337,1354],{},[944,1309,1310,1314,1319],{},[965,1311,1312],{},[474,1313,1200],{},[965,1315,1316],{},[502,1317,1318],{},"Promise\u003CResult\u003CT[]>>",[965,1320,1321],{},[502,1322,1323],{},"AsyncGenerator\u003CT[]>",[944,1325,1326,1331,1334],{},[965,1327,1328],{},[474,1329,1330],{},"Память",[965,1332,1333],{},"Загружает все данные в память",[965,1335,1336],{},"Обрабатывает данные по частям",[944,1338,1339,1344,1349],{},[965,1340,1341],{},[474,1342,1343],{},"Использование",[965,1345,1346],{},[502,1347,1348],{},"await response.getData()",[965,1350,1351],{},[502,1352,1353],{},"for await (const chunk of generator)",[944,1355,1356,1361,1364],{},[965,1357,1358],{},[474,1359,1360],{},"Подходит для",[965,1362,1363],{},"Малые и средние объёмы данных",[965,1365,850],{},[839,1367,1369],{"id":1368},"performance-optimization","Оптимизация производительности",[471,1371,1372,1373,1378],{},"Метод реализует ",[486,1374,1377],{"href":1375,"rel":1376},"https:\u002F\u002Fapidocs.bitrix24.ru\u002Fsettings\u002Fperformance\u002Fhuge-data.html",[490],"рекомендованный Bitrix24 алгоритм"," для эффективной работы с большими объёмами данных:",[844,1380,1381,1387,1399,1404],{},[482,1382,1383,1386],{},[502,1384,1385],{},"start: -1",": отключает подсчёт общего числа записей, значительно ускоряет выполнение запроса.",[482,1388,1389,1392,1393,1396,1397,992],{},[474,1390,1391],{},"Фильтрация по возрастающему id",": каждый следующий запрос использует фильтр ",[502,1394,1395],{},">cursorIdKey"," с id последнего полученного элемента (читается через ",[502,1398,1060],{},[482,1400,1401,1403],{},[474,1402,856],{},": данные обрабатываются по мере поступления, экономя память.",[482,1405,1406,1409,1410,992],{},[474,1407,1408],{},"Автоматическое определение конца данных",": запросы останавливаются при получении пустого массива или если число элементов меньше размера страницы (",[502,1411,1229],{},[839,1413,1415],{"id":1414},"rest-api-v2-response-structure","Структура ответа REST API v2",[471,1417,1418],{},"В REST API версии 2 разные методы могут возвращать данные в разных структурах:",[479,1420,1421,1448],{},[482,1422,1423,1426,1427],{},[474,1424,1425],{},"Прямой массив",": ",[502,1428,1429,1432,1435,1437,1440,1443,1446],{"className":504,"language":505,"style":506},[508,1430,1431],{"class":514},"{",[508,1433,1434],{"class":623}," result",[508,1436,627],{"class":514},[508,1438,1439],{"class":552}," [",[508,1441,1442],{"class":514},"...",[508,1444,1445],{"class":552},"] ",[508,1447,753],{"class":514},[482,1449,1450,1426,1453],{},[474,1451,1452],{},"Сгруппированный массив",[502,1454,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475],{"className":504,"language":505,"style":506},[508,1456,1431],{"class":514},[508,1458,1434],{"class":623},[508,1460,627],{"class":514},[508,1462,549],{"class":514},[508,1464,827],{"class":623},[508,1466,627],{"class":514},[508,1468,1439],{"class":552},[508,1470,1442],{"class":514},[508,1472,1445],{"class":552},[508,1474,753],{"class":514},[508,1476,556],{"class":514},[471,1478,1479,1480,1484],{},"Параметр ",[502,1481,1482],{"className":504,"language":505,"style":506},[508,1483,1162],{"class":510}," позволяет указать ключ, по которому расположены данные в ответе.",[839,1486,1065],{"id":1487},"limitations",[479,1489,1490,1499,1525],{},[482,1491,1492,1495,1496,1498],{},[474,1493,1494],{},"Размер страницы",": фиксированное ограничение Bitrix24 REST API версии 2 — ",[502,1497,1229],{}," записей на запрос.",[482,1500,1501,1504,1505,1057,1507,1509,1510,1512,1513,1515,1516,1518,1519,1522,1523,477],{},[474,1502,1503],{},"Сортировка фиксирована",": метод всегда сортирует по ",[502,1506,1056],{},[502,1508,1060],{},") по возрастанию, потому что курсорная пагинация опирается на фильтр ",[502,1511,1395],{}," для прохождения по набору. Пользовательское значение ",[502,1514,1031],{}," нарушило бы этот инвариант, поэтому сигнатура типа исключает ",[502,1517,1031],{},", а любое значение, переданное в runtime, отбрасывается с записью ",[502,1520,1521],{},"warning"," в лог. Для сужения выборки используйте ",[502,1524,1069],{},[482,1526,1527,1530],{},[474,1528,1529],{},"Только для list-методов",": предназначен только для методов, возвращающих массивы данных.",[494,1532,375],{"id":1533},"error-handling",[471,1535,1536,1537,627],{},"Поскольку метод возвращает асинхронный генератор, ошибки обрабатываются иначе, чем в ",[502,1538,1539,1542,1544,1546],{"className":504,"language":505,"style":506},[508,1540,1541],{"class":510},"CallListV2",[508,1543,477],{"class":514},[508,1545,517],{"class":510},[508,1547,520],{"class":514},[525,1549,1551],{"className":527,"code":1550,"language":529,"meta":506,"style":506},"import { SdkError } from '@bitrix24\u002Fb24jssdk'\n\ntry {\n  const generator = $b24.actions.v2.fetchList.make({\n    method: 'some.method',\n    params: { \u002F* some_params *\u002F },\n    idKey: 'id',\n    customKeyForResult: 'items',\n    requestId: 'unique-request-id'\n  })\n\n  for await (const chunk of generator) {\n    \u002F\u002F Обработка чанка (например, сохранение в БД, анализ и т.д.)\n    console.log(`Processing ${chunk.length} items`)\n  }\n} catch (error) {\n  \u002F\u002F Обработка ошибки\n  if (\n    error instanceof SdkError\n    && error.code === 'JSSDK_CORE_B24_FETCH_LIST_METHOD_API_V2'\n  ) {\n    console.error(`${error.message}`, { code: error.code })\n  } else {\n    console.error('Some error', error)\n  }\n}\n",[502,1552,1553,1572,1576,1583,1616,1632,1647,1662,1677,1690,1697,1701,1725,1730,1761,1766,1778,1783,1791,1803,1826,1834,1878,1888,1912,1917],{"__ignoreMap":506},[508,1554,1555,1557,1559,1562,1564,1566,1568,1570],{"class":534,"line":535},[508,1556,546],{"class":545},[508,1558,549],{"class":514},[508,1560,1561],{"class":552}," SdkError",[508,1563,556],{"class":514},[508,1565,559],{"class":545},[508,1567,562],{"class":514},[508,1569,566],{"class":565},[508,1571,569],{"class":514},[508,1573,1574],{"class":534,"line":542},[508,1575,576],{"emptyLinePlaceholder":575},[508,1577,1578,1581],{"class":534,"line":572},[508,1579,1580],{"class":545},"try",[508,1582,649],{"class":514},[508,1584,1585,1588,1591,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614],{"class":534,"line":579},[508,1586,1587],{"class":582},"  const",[508,1589,1590],{"class":552}," generator",[508,1592,1593],{"class":514}," =",[508,1595,592],{"class":552},[508,1597,477],{"class":514},[508,1599,91],{"class":552},[508,1601,477],{"class":514},[508,1603,601],{"class":552},[508,1605,477],{"class":514},[508,1607,606],{"class":552},[508,1609,477],{"class":514},[508,1611,517],{"class":611},[508,1613,614],{"class":623},[508,1615,617],{"class":514},[508,1617,1618,1621,1623,1625,1628,1630],{"class":534,"line":620},[508,1619,1620],{"class":623},"    method",[508,1622,627],{"class":514},[508,1624,562],{"class":514},[508,1626,1627],{"class":565},"some.method",[508,1629,635],{"class":514},[508,1631,638],{"class":514},[508,1633,1634,1637,1639,1641,1644],{"class":534,"line":641},[508,1635,1636],{"class":623},"    params",[508,1638,627],{"class":514},[508,1640,549],{"class":514},[508,1642,1643],{"class":538}," \u002F* some_params *\u002F",[508,1645,1646],{"class":514}," },\n",[508,1648,1649,1652,1654,1656,1658,1660],{"class":534,"line":652},[508,1650,1651],{"class":623},"    idKey",[508,1653,627],{"class":514},[508,1655,562],{"class":514},[508,1657,711],{"class":565},[508,1659,635],{"class":514},[508,1661,638],{"class":514},[508,1663,1664,1667,1669,1671,1673,1675],{"class":534,"line":669},[508,1665,1666],{"class":623},"    customKeyForResult",[508,1668,627],{"class":514},[508,1670,562],{"class":514},[508,1672,728],{"class":565},[508,1674,635],{"class":514},[508,1676,638],{"class":514},[508,1678,1679,1682,1684,1686,1688],{"class":534,"line":695},[508,1680,1681],{"class":623},"    requestId",[508,1683,627],{"class":514},[508,1685,562],{"class":514},[508,1687,745],{"class":565},[508,1689,569],{"class":514},[508,1691,1692,1695],{"class":534,"line":701},[508,1693,1694],{"class":514},"  }",[508,1696,756],{"class":623},[508,1698,1699],{"class":534,"line":718},[508,1700,576],{"emptyLinePlaceholder":575},[508,1702,1703,1706,1708,1710,1712,1715,1718,1720,1723],{"class":534,"line":735},[508,1704,1705],{"class":545},"  for",[508,1707,770],{"class":545},[508,1709,773],{"class":623},[508,1711,583],{"class":582},[508,1713,1714],{"class":552}," chunk",[508,1716,1717],{"class":514}," of",[508,1719,1590],{"class":552},[508,1721,1722],{"class":623},") ",[508,1724,617],{"class":514},[508,1726,1727],{"class":534,"line":750},[508,1728,1729],{"class":538},"    \u002F\u002F Обработка чанка (например, сохранение в БД, анализ и т.д.)\n",[508,1731,1732,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759],{"class":534,"line":759},[508,1733,1734],{"class":552},"    console",[508,1736,477],{"class":514},[508,1738,803],{"class":611},[508,1740,614],{"class":623},[508,1742,808],{"class":514},[508,1744,811],{"class":565},[508,1746,814],{"class":514},[508,1748,817],{"class":552},[508,1750,477],{"class":514},[508,1752,822],{"class":552},[508,1754,753],{"class":514},[508,1756,827],{"class":565},[508,1758,808],{"class":514},[508,1760,756],{"class":623},[508,1762,1763],{"class":534,"line":764},[508,1764,1765],{"class":514},"  }\n",[508,1767,1768,1770,1773,1776],{"class":534,"line":789},[508,1769,753],{"class":514},[508,1771,1772],{"class":545}," catch",[508,1774,1775],{"class":552}," (error) ",[508,1777,617],{"class":514},[508,1779,1780],{"class":534,"line":795},[508,1781,1782],{"class":538},"  \u002F\u002F Обработка ошибки\n",[508,1784,1785,1788],{"class":534,"line":834},[508,1786,1787],{"class":545},"  if",[508,1789,1790],{"class":623}," (\n",[508,1792,1794,1797,1800],{"class":534,"line":1793},19,[508,1795,1796],{"class":552},"    error",[508,1798,1799],{"class":514}," instanceof",[508,1801,1802],{"class":510}," SdkError\n",[508,1804,1806,1809,1812,1814,1816,1819,1821,1824],{"class":534,"line":1805},20,[508,1807,1808],{"class":514},"    &&",[508,1810,1811],{"class":552}," error",[508,1813,477],{"class":514},[508,1815,502],{"class":552},[508,1817,1818],{"class":514}," ===",[508,1820,562],{"class":514},[508,1822,1823],{"class":565},"JSSDK_CORE_B24_FETCH_LIST_METHOD_API_V2",[508,1825,569],{"class":514},[508,1827,1829,1832],{"class":534,"line":1828},21,[508,1830,1831],{"class":623},"  ) ",[508,1833,617],{"class":514},[508,1835,1837,1839,1841,1844,1846,1849,1851,1853,1856,1859,1861,1863,1866,1868,1870,1872,1874,1876],{"class":534,"line":1836},22,[508,1838,1734],{"class":552},[508,1840,477],{"class":514},[508,1842,1843],{"class":611},"error",[508,1845,614],{"class":623},[508,1847,1848],{"class":514},"`${",[508,1850,1843],{"class":552},[508,1852,477],{"class":514},[508,1854,1855],{"class":552},"message",[508,1857,1858],{"class":514},"}`",[508,1860,1016],{"class":514},[508,1862,549],{"class":514},[508,1864,1865],{"class":623}," code",[508,1867,627],{"class":514},[508,1869,1811],{"class":552},[508,1871,477],{"class":514},[508,1873,502],{"class":552},[508,1875,556],{"class":514},[508,1877,756],{"class":623},[508,1879,1881,1883,1886],{"class":534,"line":1880},23,[508,1882,1694],{"class":514},[508,1884,1885],{"class":545}," else",[508,1887,649],{"class":514},[508,1889,1891,1893,1895,1897,1899,1901,1904,1906,1908,1910],{"class":534,"line":1890},24,[508,1892,1734],{"class":552},[508,1894,477],{"class":514},[508,1896,1843],{"class":611},[508,1898,614],{"class":623},[508,1900,635],{"class":514},[508,1902,1903],{"class":565},"Some error",[508,1905,635],{"class":514},[508,1907,1016],{"class":514},[508,1909,1811],{"class":552},[508,1911,756],{"class":623},[508,1913,1915],{"class":534,"line":1914},25,[508,1916,1765],{"class":514},[508,1918,1920],{"class":534,"line":1919},26,[508,1921,837],{"class":514},[494,1923,352],{"id":362},[839,1925,1927],{"id":1926},"step-by-step-processing-of-a-large-number-of-companies","Поэтапная обработка большого числа компаний",[525,1929,1932],{"className":527,"code":1930,"filename":1931,"language":529,"meta":506,"style":506},"import { B24Hook, EnumCrmEntityTypeId, LoggerFactory, Text, SdkError, AjaxError } from '@bitrix24\u002Fb24jssdk'\n\ntype Company = {\n  id: number\n  title: string\n}\n\nconst devMode = !!(typeof import.meta !== 'undefined' && (import.meta.dev || import.meta.env?.DEV))\nconst $logger = LoggerFactory.createForBrowser('Example:ProcessCrmItems', devMode)\nconst $b24 = B24Hook.fromWebhookUrl('https:\u002F\u002Fyour_domain.bitrix24.com\u002Frest\u002F1\u002Fwebhook_code\u002F')\n\nasync function processCrmItemList(): Promise\u003Cvoid> {\n  let batchNumber = 0\n  let totalItems = 0\n\n  const sixMonthAgo = new Date()\n  sixMonthAgo.setMonth((new Date()).getMonth() - 6)\n  sixMonthAgo.setHours(0, 0, 0)\n  \n  const requestId = 'some-crm-item-list'\n  \n  try {\n    const generator = $b24.actions.v2.fetchList.make\u003CCompany>({\n      method: 'crm.item.list',\n      params: {\n        entityTypeId: EnumCrmEntityTypeId.company,\n        filter: {\n          \u002F\u002F фильтрация по названию\n          '=%title': 'Prime%',\n          '>=createdTime': Text.toB24Format(sixMonthAgo) \u002F\u002F созданы как минимум 6 месяцев назад\n        },\n        select: ['id', 'title']\n      },\n      idKey: 'id',\n      customKeyForResult: 'items',\n      requestId\n    })\n    \n    for await (const chunk of generator) {\n      batchNumber++\n      totalItems += chunk.length\n\n      $logger.info(`Processing batch #${batchNumber}`, {\n        batchSize: chunk.length,\n        totalSoFar: totalItems\n      })\n      \n      \u002F\u002F Пример: сохранение в базу данных\n      await saveToDatabase(chunk)\n      \n      \u002F\u002F Пример: отправка в очередь сообщений\n      await sendToMessageQueue(chunk)\n    }\n    \n    $logger.notice(`Processed ${totalItems} elements in ${batchNumber} batches`)\n  } catch (error) {\n    if (error instanceof SdkError) {\n      $logger.error(`Processing error: ${error.message}`, {\n        code: error.code,\n        batchNumber,\n        totalItems\n      })\n    } else {\n      $logger.error('Unknown error', { error, batchNumber, totalItems })\n    }\n    throw error\n  }\n}\n\n\u002F\u002F Вспомогательные функции\n\u002F\u002F Реализация сохранения в базу данных\nasync function saveToDatabase(items: Company[]): Promise\u003Cvoid> {\n  await new Promise(resolve => setTimeout(resolve, 100)) \u002F\u002F Simulation\n}\n\n\u002F\u002F Реализация отправки в очередь сообщений\nasync function sendToMessageQueue(items: Company[]): Promise\u003Cvoid> {\n  await new Promise(resolve => setTimeout(resolve, 50)) \u002F\u002F Simulation\n}\n\n\u002F\u002F Использование\ntry {\n  await processCrmItemList()\n} catch (error) {\n  $logger.critical('A problem occurred', { error })\n}\n","ProcessCrmItems.ts",[502,1933,1934,1976,1980,1992,2002,2012,2016,2020,2092,2122,2149,2153,2179,2192,2203,2207,2225,2262,2287,2292,2308,2312,2319,2357,2372,2381,2397,2407,2413,2435,2464,2470,2498,2504,2520,2536,2542,2550,2556,2578,2587,2603,2608,2637,2653,2664,2672,2678,2684,2699,2704,2710,2724,2730,2735,2776,2791,2809,2839,2855,2863,2869,2876,2885,2921,2926,2935,2940,2945,2950,2956,2962,2994,3030,3035,3040,3046,3077,3107,3112,3117,3123,3130,3139,3150,3180],{"__ignoreMap":506},[508,1935,1936,1938,1940,1943,1945,1947,1949,1952,1954,1957,1959,1961,1963,1966,1968,1970,1972,1974],{"class":534,"line":535},[508,1937,546],{"class":545},[508,1939,549],{"class":514},[508,1941,1942],{"class":552}," B24Hook",[508,1944,1016],{"class":514},[508,1946,553],{"class":552},[508,1948,1016],{"class":514},[508,1950,1951],{"class":552}," LoggerFactory",[508,1953,1016],{"class":514},[508,1955,1956],{"class":552}," Text",[508,1958,1016],{"class":514},[508,1960,1561],{"class":552},[508,1962,1016],{"class":514},[508,1964,1965],{"class":552}," AjaxError",[508,1967,556],{"class":514},[508,1969,559],{"class":545},[508,1971,562],{"class":514},[508,1973,566],{"class":565},[508,1975,569],{"class":514},[508,1977,1978],{"class":534,"line":542},[508,1979,576],{"emptyLinePlaceholder":575},[508,1981,1982,1985,1988,1990],{"class":534,"line":572},[508,1983,1984],{"class":582},"type",[508,1986,1987],{"class":510}," Company",[508,1989,1593],{"class":514},[508,1991,649],{"class":514},[508,1993,1994,1997,1999],{"class":534,"line":579},[508,1995,1996],{"class":623},"  id",[508,1998,627],{"class":514},[508,2000,2001],{"class":510}," number\n",[508,2003,2004,2007,2009],{"class":534,"line":620},[508,2005,2006],{"class":623},"  title",[508,2008,627],{"class":514},[508,2010,2011],{"class":510}," string\n",[508,2013,2014],{"class":534,"line":641},[508,2015,837],{"class":514},[508,2017,2018],{"class":534,"line":652},[508,2019,576],{"emptyLinePlaceholder":575},[508,2021,2022,2024,2027,2029,2032,2034,2037,2040,2042,2045,2048,2050,2053,2055,2058,2060,2062,2064,2067,2069,2072,2075,2077,2079,2081,2083,2086,2089],{"class":534,"line":669},[508,2023,583],{"class":582},[508,2025,2026],{"class":552}," devMode ",[508,2028,589],{"class":514},[508,2030,2031],{"class":514}," !!",[508,2033,614],{"class":552},[508,2035,2036],{"class":514},"typeof",[508,2038,2039],{"class":545}," import",[508,2041,477],{"class":514},[508,2043,2044],{"class":552},"meta ",[508,2046,2047],{"class":514},"!==",[508,2049,562],{"class":514},[508,2051,2052],{"class":565},"undefined",[508,2054,635],{"class":514},[508,2056,2057],{"class":514}," &&",[508,2059,773],{"class":552},[508,2061,546],{"class":545},[508,2063,477],{"class":514},[508,2065,2066],{"class":552},"meta",[508,2068,477],{"class":514},[508,2070,2071],{"class":552},"dev ",[508,2073,2074],{"class":514},"||",[508,2076,2039],{"class":545},[508,2078,477],{"class":514},[508,2080,2066],{"class":552},[508,2082,477],{"class":514},[508,2084,2085],{"class":552},"env",[508,2087,2088],{"class":514},"?.",[508,2090,2091],{"class":552},"DEV))\n",[508,2093,2094,2096,2099,2101,2103,2105,2108,2110,2112,2115,2117,2119],{"class":534,"line":695},[508,2095,583],{"class":582},[508,2097,2098],{"class":552}," $logger ",[508,2100,589],{"class":514},[508,2102,1951],{"class":552},[508,2104,477],{"class":514},[508,2106,2107],{"class":611},"createForBrowser",[508,2109,614],{"class":552},[508,2111,635],{"class":514},[508,2113,2114],{"class":565},"Example:ProcessCrmItems",[508,2116,635],{"class":514},[508,2118,1016],{"class":514},[508,2120,2121],{"class":552}," devMode)\n",[508,2123,2124,2126,2129,2131,2133,2135,2138,2140,2142,2145,2147],{"class":534,"line":701},[508,2125,583],{"class":582},[508,2127,2128],{"class":552}," $b24 ",[508,2130,589],{"class":514},[508,2132,1942],{"class":552},[508,2134,477],{"class":514},[508,2136,2137],{"class":611},"fromWebhookUrl",[508,2139,614],{"class":552},[508,2141,635],{"class":514},[508,2143,2144],{"class":565},"https:\u002F\u002Fyour_domain.bitrix24.com\u002Frest\u002F1\u002Fwebhook_code\u002F",[508,2146,635],{"class":514},[508,2148,756],{"class":552},[508,2150,2151],{"class":534,"line":718},[508,2152,576],{"emptyLinePlaceholder":575},[508,2154,2155,2158,2161,2164,2167,2170,2172,2175,2177],{"class":534,"line":735},[508,2156,2157],{"class":582},"async",[508,2159,2160],{"class":582}," function",[508,2162,2163],{"class":611}," processCrmItemList",[508,2165,2166],{"class":514},"():",[508,2168,2169],{"class":510}," Promise",[508,2171,879],{"class":514},[508,2173,2174],{"class":510},"void",[508,2176,891],{"class":514},[508,2178,649],{"class":514},[508,2180,2181,2184,2187,2189],{"class":534,"line":750},[508,2182,2183],{"class":582},"  let",[508,2185,2186],{"class":552}," batchNumber",[508,2188,1593],{"class":514},[508,2190,2191],{"class":688}," 0\n",[508,2193,2194,2196,2199,2201],{"class":534,"line":759},[508,2195,2183],{"class":582},[508,2197,2198],{"class":552}," totalItems",[508,2200,1593],{"class":514},[508,2202,2191],{"class":688},[508,2204,2205],{"class":534,"line":764},[508,2206,576],{"emptyLinePlaceholder":575},[508,2208,2209,2211,2214,2216,2219,2222],{"class":534,"line":789},[508,2210,1587],{"class":582},[508,2212,2213],{"class":552}," sixMonthAgo",[508,2215,1593],{"class":514},[508,2217,2218],{"class":514}," new",[508,2220,2221],{"class":611}," Date",[508,2223,2224],{"class":623},"()\n",[508,2226,2227,2230,2232,2235,2238,2241,2243,2246,2248,2251,2254,2257,2260],{"class":534,"line":795},[508,2228,2229],{"class":552},"  sixMonthAgo",[508,2231,477],{"class":514},[508,2233,2234],{"class":611},"setMonth",[508,2236,2237],{"class":623},"((",[508,2239,2240],{"class":514},"new",[508,2242,2221],{"class":611},[508,2244,2245],{"class":623},"())",[508,2247,477],{"class":514},[508,2249,2250],{"class":611},"getMonth",[508,2252,2253],{"class":623},"() ",[508,2255,2256],{"class":514},"-",[508,2258,2259],{"class":688}," 6",[508,2261,756],{"class":623},[508,2263,2264,2266,2268,2271,2273,2276,2278,2281,2283,2285],{"class":534,"line":834},[508,2265,2229],{"class":552},[508,2267,477],{"class":514},[508,2269,2270],{"class":611},"setHours",[508,2272,614],{"class":623},[508,2274,2275],{"class":688},"0",[508,2277,1016],{"class":514},[508,2279,2280],{"class":688}," 0",[508,2282,1016],{"class":514},[508,2284,2280],{"class":688},[508,2286,756],{"class":623},[508,2288,2289],{"class":534,"line":1793},[508,2290,2291],{"class":623},"  \n",[508,2293,2294,2296,2299,2301,2303,2306],{"class":534,"line":1805},[508,2295,1587],{"class":582},[508,2297,2298],{"class":552}," requestId",[508,2300,1593],{"class":514},[508,2302,562],{"class":514},[508,2304,2305],{"class":565},"some-crm-item-list",[508,2307,569],{"class":514},[508,2309,2310],{"class":534,"line":1828},[508,2311,2291],{"class":623},[508,2313,2314,2317],{"class":534,"line":1836},[508,2315,2316],{"class":545},"  try",[508,2318,649],{"class":514},[508,2320,2321,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2351,2353,2355],{"class":534,"line":1880},[508,2322,2323],{"class":582},"    const",[508,2325,1590],{"class":552},[508,2327,1593],{"class":514},[508,2329,592],{"class":552},[508,2331,477],{"class":514},[508,2333,91],{"class":552},[508,2335,477],{"class":514},[508,2337,601],{"class":552},[508,2339,477],{"class":514},[508,2341,606],{"class":552},[508,2343,477],{"class":514},[508,2345,517],{"class":611},[508,2347,879],{"class":514},[508,2349,2350],{"class":510},"Company",[508,2352,891],{"class":514},[508,2354,614],{"class":623},[508,2356,617],{"class":514},[508,2358,2359,2362,2364,2366,2368,2370],{"class":534,"line":1890},[508,2360,2361],{"class":623},"      method",[508,2363,627],{"class":514},[508,2365,562],{"class":514},[508,2367,632],{"class":565},[508,2369,635],{"class":514},[508,2371,638],{"class":514},[508,2373,2374,2377,2379],{"class":534,"line":1914},[508,2375,2376],{"class":623},"      params",[508,2378,627],{"class":514},[508,2380,649],{"class":514},[508,2382,2383,2386,2388,2390,2392,2395],{"class":534,"line":1919},[508,2384,2385],{"class":623},"        entityTypeId",[508,2387,627],{"class":514},[508,2389,553],{"class":552},[508,2391,477],{"class":514},[508,2393,2394],{"class":552},"company",[508,2396,638],{"class":514},[508,2398,2400,2403,2405],{"class":534,"line":2399},27,[508,2401,2402],{"class":623},"        filter",[508,2404,627],{"class":514},[508,2406,649],{"class":514},[508,2408,2410],{"class":534,"line":2409},28,[508,2411,2412],{"class":538},"          \u002F\u002F фильтрация по названию\n",[508,2414,2416,2419,2422,2424,2426,2428,2431,2433],{"class":534,"line":2415},29,[508,2417,2418],{"class":514},"          '",[508,2420,2421],{"class":623},"=%title",[508,2423,635],{"class":514},[508,2425,627],{"class":514},[508,2427,562],{"class":514},[508,2429,2430],{"class":565},"Prime%",[508,2432,635],{"class":514},[508,2434,638],{"class":514},[508,2436,2438,2440,2443,2445,2447,2449,2451,2454,2456,2459,2461],{"class":534,"line":2437},30,[508,2439,2418],{"class":514},[508,2441,2442],{"class":623},">=createdTime",[508,2444,635],{"class":514},[508,2446,627],{"class":514},[508,2448,1956],{"class":552},[508,2450,477],{"class":514},[508,2452,2453],{"class":611},"toB24Format",[508,2455,614],{"class":623},[508,2457,2458],{"class":552},"sixMonthAgo",[508,2460,1722],{"class":623},[508,2462,2463],{"class":538},"\u002F\u002F созданы как минимум 6 месяцев назад\n",[508,2465,2467],{"class":534,"line":2466},31,[508,2468,2469],{"class":514},"        },\n",[508,2471,2473,2476,2478,2480,2482,2484,2486,2488,2490,2493,2495],{"class":534,"line":2472},32,[508,2474,2475],{"class":623},"        select",[508,2477,627],{"class":514},[508,2479,1439],{"class":623},[508,2481,635],{"class":514},[508,2483,711],{"class":565},[508,2485,635],{"class":514},[508,2487,1016],{"class":514},[508,2489,562],{"class":514},[508,2491,2492],{"class":565},"title",[508,2494,635],{"class":514},[508,2496,2497],{"class":623},"]\n",[508,2499,2501],{"class":534,"line":2500},33,[508,2502,2503],{"class":514},"      },\n",[508,2505,2507,2510,2512,2514,2516,2518],{"class":534,"line":2506},34,[508,2508,2509],{"class":623},"      idKey",[508,2511,627],{"class":514},[508,2513,562],{"class":514},[508,2515,711],{"class":565},[508,2517,635],{"class":514},[508,2519,638],{"class":514},[508,2521,2523,2526,2528,2530,2532,2534],{"class":534,"line":2522},35,[508,2524,2525],{"class":623},"      customKeyForResult",[508,2527,627],{"class":514},[508,2529,562],{"class":514},[508,2531,728],{"class":565},[508,2533,635],{"class":514},[508,2535,638],{"class":514},[508,2537,2539],{"class":534,"line":2538},36,[508,2540,2541],{"class":552},"      requestId\n",[508,2543,2545,2548],{"class":534,"line":2544},37,[508,2546,2547],{"class":514},"    }",[508,2549,756],{"class":623},[508,2551,2553],{"class":534,"line":2552},38,[508,2554,2555],{"class":623},"    \n",[508,2557,2559,2562,2564,2566,2568,2570,2572,2574,2576],{"class":534,"line":2558},39,[508,2560,2561],{"class":545},"    for",[508,2563,770],{"class":545},[508,2565,773],{"class":623},[508,2567,583],{"class":582},[508,2569,1714],{"class":552},[508,2571,1717],{"class":514},[508,2573,1590],{"class":552},[508,2575,1722],{"class":623},[508,2577,617],{"class":514},[508,2579,2581,2584],{"class":534,"line":2580},40,[508,2582,2583],{"class":552},"      batchNumber",[508,2585,2586],{"class":514},"++\n",[508,2588,2590,2593,2596,2598,2600],{"class":534,"line":2589},41,[508,2591,2592],{"class":552},"      totalItems",[508,2594,2595],{"class":514}," +=",[508,2597,1714],{"class":552},[508,2599,477],{"class":514},[508,2601,2602],{"class":552},"length\n",[508,2604,2606],{"class":534,"line":2605},42,[508,2607,576],{"emptyLinePlaceholder":575},[508,2609,2611,2614,2616,2619,2621,2623,2626,2628,2631,2633,2635],{"class":534,"line":2610},43,[508,2612,2613],{"class":552},"      $logger",[508,2615,477],{"class":514},[508,2617,2618],{"class":611},"info",[508,2620,614],{"class":623},[508,2622,808],{"class":514},[508,2624,2625],{"class":565},"Processing batch #",[508,2627,814],{"class":514},[508,2629,2630],{"class":552},"batchNumber",[508,2632,1858],{"class":514},[508,2634,1016],{"class":514},[508,2636,649],{"class":514},[508,2638,2640,2643,2645,2647,2649,2651],{"class":534,"line":2639},44,[508,2641,2642],{"class":623},"        batchSize",[508,2644,627],{"class":514},[508,2646,1714],{"class":552},[508,2648,477],{"class":514},[508,2650,822],{"class":552},[508,2652,638],{"class":514},[508,2654,2656,2659,2661],{"class":534,"line":2655},45,[508,2657,2658],{"class":623},"        totalSoFar",[508,2660,627],{"class":514},[508,2662,2663],{"class":552}," totalItems\n",[508,2665,2667,2670],{"class":534,"line":2666},46,[508,2668,2669],{"class":514},"      }",[508,2671,756],{"class":623},[508,2673,2675],{"class":534,"line":2674},47,[508,2676,2677],{"class":623},"      \n",[508,2679,2681],{"class":534,"line":2680},48,[508,2682,2683],{"class":538},"      \u002F\u002F Пример: сохранение в базу данных\n",[508,2685,2687,2690,2693,2695,2697],{"class":534,"line":2686},49,[508,2688,2689],{"class":545},"      await",[508,2691,2692],{"class":611}," saveToDatabase",[508,2694,614],{"class":623},[508,2696,817],{"class":552},[508,2698,756],{"class":623},[508,2700,2702],{"class":534,"line":2701},50,[508,2703,2677],{"class":623},[508,2705,2707],{"class":534,"line":2706},51,[508,2708,2709],{"class":538},"      \u002F\u002F Пример: отправка в очередь сообщений\n",[508,2711,2713,2715,2718,2720,2722],{"class":534,"line":2712},52,[508,2714,2689],{"class":545},[508,2716,2717],{"class":611}," sendToMessageQueue",[508,2719,614],{"class":623},[508,2721,817],{"class":552},[508,2723,756],{"class":623},[508,2725,2727],{"class":534,"line":2726},53,[508,2728,2729],{"class":514},"    }\n",[508,2731,2733],{"class":534,"line":2732},54,[508,2734,2555],{"class":623},[508,2736,2738,2741,2743,2746,2748,2750,2753,2755,2758,2760,2763,2765,2767,2769,2772,2774],{"class":534,"line":2737},55,[508,2739,2740],{"class":552},"    $logger",[508,2742,477],{"class":514},[508,2744,2745],{"class":611},"notice",[508,2747,614],{"class":623},[508,2749,808],{"class":514},[508,2751,2752],{"class":565},"Processed ",[508,2754,814],{"class":514},[508,2756,2757],{"class":552},"totalItems",[508,2759,753],{"class":514},[508,2761,2762],{"class":565}," elements in ",[508,2764,814],{"class":514},[508,2766,2630],{"class":552},[508,2768,753],{"class":514},[508,2770,2771],{"class":565}," batches",[508,2773,808],{"class":514},[508,2775,756],{"class":623},[508,2777,2779,2781,2783,2785,2787,2789],{"class":534,"line":2778},56,[508,2780,1694],{"class":514},[508,2782,1772],{"class":545},[508,2784,773],{"class":623},[508,2786,1843],{"class":552},[508,2788,1722],{"class":623},[508,2790,617],{"class":514},[508,2792,2794,2797,2799,2801,2803,2805,2807],{"class":534,"line":2793},57,[508,2795,2796],{"class":545},"    if",[508,2798,773],{"class":623},[508,2800,1843],{"class":552},[508,2802,1799],{"class":514},[508,2804,1561],{"class":510},[508,2806,1722],{"class":623},[508,2808,617],{"class":514},[508,2810,2812,2814,2816,2818,2820,2822,2825,2827,2829,2831,2833,2835,2837],{"class":534,"line":2811},58,[508,2813,2613],{"class":552},[508,2815,477],{"class":514},[508,2817,1843],{"class":611},[508,2819,614],{"class":623},[508,2821,808],{"class":514},[508,2823,2824],{"class":565},"Processing error: ",[508,2826,814],{"class":514},[508,2828,1843],{"class":552},[508,2830,477],{"class":514},[508,2832,1855],{"class":552},[508,2834,1858],{"class":514},[508,2836,1016],{"class":514},[508,2838,649],{"class":514},[508,2840,2842,2845,2847,2849,2851,2853],{"class":534,"line":2841},59,[508,2843,2844],{"class":623},"        code",[508,2846,627],{"class":514},[508,2848,1811],{"class":552},[508,2850,477],{"class":514},[508,2852,502],{"class":552},[508,2854,638],{"class":514},[508,2856,2858,2861],{"class":534,"line":2857},60,[508,2859,2860],{"class":552},"        batchNumber",[508,2862,638],{"class":514},[508,2864,2866],{"class":534,"line":2865},61,[508,2867,2868],{"class":552},"        totalItems\n",[508,2870,2872,2874],{"class":534,"line":2871},62,[508,2873,2669],{"class":514},[508,2875,756],{"class":623},[508,2877,2879,2881,2883],{"class":534,"line":2878},63,[508,2880,2547],{"class":514},[508,2882,1885],{"class":545},[508,2884,649],{"class":514},[508,2886,2888,2890,2892,2894,2896,2898,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919],{"class":534,"line":2887},64,[508,2889,2613],{"class":552},[508,2891,477],{"class":514},[508,2893,1843],{"class":611},[508,2895,614],{"class":623},[508,2897,635],{"class":514},[508,2899,2900],{"class":565},"Unknown error",[508,2902,635],{"class":514},[508,2904,1016],{"class":514},[508,2906,549],{"class":514},[508,2908,1811],{"class":552},[508,2910,1016],{"class":514},[508,2912,2186],{"class":552},[508,2914,1016],{"class":514},[508,2916,2198],{"class":552},[508,2918,556],{"class":514},[508,2920,756],{"class":623},[508,2922,2924],{"class":534,"line":2923},65,[508,2925,2729],{"class":514},[508,2927,2929,2932],{"class":534,"line":2928},66,[508,2930,2931],{"class":545},"    throw",[508,2933,2934],{"class":552}," error\n",[508,2936,2938],{"class":534,"line":2937},67,[508,2939,1765],{"class":514},[508,2941,2943],{"class":534,"line":2942},68,[508,2944,837],{"class":514},[508,2946,2948],{"class":534,"line":2947},69,[508,2949,576],{"emptyLinePlaceholder":575},[508,2951,2953],{"class":534,"line":2952},70,[508,2954,2955],{"class":538},"\u002F\u002F Вспомогательные функции\n",[508,2957,2959],{"class":534,"line":2958},71,[508,2960,2961],{"class":538},"\u002F\u002F Реализация сохранения в базу данных\n",[508,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2984,2986,2988,2990,2992],{"class":534,"line":2964},72,[508,2966,2157],{"class":582},[508,2968,2160],{"class":582},[508,2970,2692],{"class":611},[508,2972,614],{"class":514},[508,2974,728],{"class":899},[508,2976,627],{"class":514},[508,2978,1987],{"class":510},[508,2980,922],{"class":552},[508,2982,2983],{"class":514},"):",[508,2985,2169],{"class":510},[508,2987,879],{"class":514},[508,2989,2174],{"class":510},[508,2991,891],{"class":514},[508,2993,649],{"class":514},[508,2995,2997,3000,3002,3004,3006,3009,3012,3015,3017,3019,3021,3024,3027],{"class":534,"line":2996},73,[508,2998,2999],{"class":545},"  await",[508,3001,2218],{"class":514},[508,3003,2169],{"class":510},[508,3005,614],{"class":623},[508,3007,3008],{"class":899},"resolve",[508,3010,3011],{"class":582}," =>",[508,3013,3014],{"class":611}," setTimeout",[508,3016,614],{"class":623},[508,3018,3008],{"class":552},[508,3020,1016],{"class":514},[508,3022,3023],{"class":688}," 100",[508,3025,3026],{"class":623},")) ",[508,3028,3029],{"class":538},"\u002F\u002F Simulation\n",[508,3031,3033],{"class":534,"line":3032},74,[508,3034,837],{"class":514},[508,3036,3038],{"class":534,"line":3037},75,[508,3039,576],{"emptyLinePlaceholder":575},[508,3041,3043],{"class":534,"line":3042},76,[508,3044,3045],{"class":538},"\u002F\u002F Реализация отправки в очередь сообщений\n",[508,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075],{"class":534,"line":3048},77,[508,3050,2157],{"class":582},[508,3052,2160],{"class":582},[508,3054,2717],{"class":611},[508,3056,614],{"class":514},[508,3058,728],{"class":899},[508,3060,627],{"class":514},[508,3062,1987],{"class":510},[508,3064,922],{"class":552},[508,3066,2983],{"class":514},[508,3068,2169],{"class":510},[508,3070,879],{"class":514},[508,3072,2174],{"class":510},[508,3074,891],{"class":514},[508,3076,649],{"class":514},[508,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3103,3105],{"class":534,"line":3079},78,[508,3081,2999],{"class":545},[508,3083,2218],{"class":514},[508,3085,2169],{"class":510},[508,3087,614],{"class":623},[508,3089,3008],{"class":899},[508,3091,3011],{"class":582},[508,3093,3014],{"class":611},[508,3095,614],{"class":623},[508,3097,3008],{"class":552},[508,3099,1016],{"class":514},[508,3101,3102],{"class":688}," 50",[508,3104,3026],{"class":623},[508,3106,3029],{"class":538},[508,3108,3110],{"class":534,"line":3109},79,[508,3111,837],{"class":514},[508,3113,3115],{"class":534,"line":3114},80,[508,3116,576],{"emptyLinePlaceholder":575},[508,3118,3120],{"class":534,"line":3119},81,[508,3121,3122],{"class":538},"\u002F\u002F Использование\n",[508,3124,3126,3128],{"class":534,"line":3125},82,[508,3127,1580],{"class":545},[508,3129,649],{"class":514},[508,3131,3133,3135,3137],{"class":534,"line":3132},83,[508,3134,2999],{"class":545},[508,3136,2163],{"class":611},[508,3138,2224],{"class":623},[508,3140,3142,3144,3146,3148],{"class":534,"line":3141},84,[508,3143,753],{"class":514},[508,3145,1772],{"class":545},[508,3147,1775],{"class":552},[508,3149,617],{"class":514},[508,3151,3153,3156,3158,3161,3163,3165,3168,3170,3172,3174,3176,3178],{"class":534,"line":3152},85,[508,3154,3155],{"class":552},"  $logger",[508,3157,477],{"class":514},[508,3159,3160],{"class":611},"critical",[508,3162,614],{"class":623},[508,3164,635],{"class":514},[508,3166,3167],{"class":565},"A problem occurred",[508,3169,635],{"class":514},[508,3171,1016],{"class":514},[508,3173,549],{"class":514},[508,3175,1811],{"class":552},[508,3177,556],{"class":514},[508,3179,756],{"class":623},[508,3181,3183],{"class":534,"line":3182},86,[508,3184,837],{"class":514},[839,3186,3188,3189,3191],{"id":3187},"paginating-taskstasklist-request-field-response-field","Пагинация ",[502,3190,991],{}," (поле запроса ≠ поле ответа)",[471,3193,3194,1143,3196,3198,3199,3201,3202,3204,3205,3208,3209,3211,3212,3215,3216,3218,3219,627],{},[502,3195,991],{},[502,3197,1146],{}," (верхний регистр), но возвращает каждую задачу с ",[502,3200,711],{}," в нижнем регистре. Задайте ",[502,3203,1060],{}," на поле ",[474,3206,3207],{},"ответа",", а ",[502,3210,1056],{}," — на поле ",[474,3213,3214],{},"запроса",": курсор тогда читает последний ",[502,3217,711],{}," со страницы и запрашивает следующий с ",[502,3220,3221],{},">ID",[525,3223,3226],{"className":527,"code":3224,"filename":3225,"language":529,"meta":506,"style":506},"type TaskListItem = { id: string, title: string }\n\nconst generator = $b24.actions.v2.fetchList.make\u003CTaskListItem>({\n  method: 'tasks.task.list',\n  params: {\n    filter: { RESPONSIBLE_ID: 1 }, \u002F\u002F поля фильтра задач в верхнем регистре\n    select: ['ID', 'TITLE'] \u002F\u002F выбираем в верхнем регистре, но в ответе id \u002F title в нижнем\n  },\n  idKey: 'id', \u002F\u002F читаем task.id из ответа\n  cursorIdKey: 'ID', \u002F\u002F order + постраничный фильтр \">ID\" в запросе\n  customKeyForResult: 'tasks'\n})\n\nlet total = 0\nfor await (const chunk of generator) {\n  total += chunk.length\n}\nconsole.log(`Processed ${total} tasks`)\n","ProcessAllTasks.ts",[502,3227,3228,3258,3262,3299,3313,3321,3343,3372,3376,3393,3411,3424,3430,3434,3446,3464,3477,3481],{"__ignoreMap":506},[508,3229,3230,3232,3235,3237,3239,3242,3244,3247,3249,3252,3254,3256],{"class":534,"line":535},[508,3231,1984],{"class":582},[508,3233,3234],{"class":510}," TaskListItem",[508,3236,1593],{"class":514},[508,3238,549],{"class":514},[508,3240,3241],{"class":623}," id",[508,3243,627],{"class":514},[508,3245,3246],{"class":510}," string",[508,3248,1016],{"class":514},[508,3250,3251],{"class":623}," title",[508,3253,627],{"class":514},[508,3255,3246],{"class":510},[508,3257,692],{"class":514},[508,3259,3260],{"class":534,"line":542},[508,3261,576],{"emptyLinePlaceholder":575},[508,3263,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3293,3295,3297],{"class":534,"line":572},[508,3265,583],{"class":582},[508,3267,586],{"class":552},[508,3269,589],{"class":514},[508,3271,592],{"class":552},[508,3273,477],{"class":514},[508,3275,91],{"class":552},[508,3277,477],{"class":514},[508,3279,601],{"class":552},[508,3281,477],{"class":514},[508,3283,606],{"class":552},[508,3285,477],{"class":514},[508,3287,517],{"class":611},[508,3289,879],{"class":514},[508,3291,3292],{"class":510},"TaskListItem",[508,3294,891],{"class":514},[508,3296,614],{"class":552},[508,3298,617],{"class":514},[508,3300,3301,3303,3305,3307,3309,3311],{"class":534,"line":579},[508,3302,624],{"class":623},[508,3304,627],{"class":514},[508,3306,562],{"class":514},[508,3308,991],{"class":565},[508,3310,635],{"class":514},[508,3312,638],{"class":514},[508,3314,3315,3317,3319],{"class":534,"line":620},[508,3316,644],{"class":623},[508,3318,627],{"class":514},[508,3320,649],{"class":514},[508,3322,3323,3325,3327,3329,3332,3334,3337,3340],{"class":534,"line":641},[508,3324,672],{"class":623},[508,3326,627],{"class":514},[508,3328,549],{"class":514},[508,3330,3331],{"class":623}," RESPONSIBLE_ID",[508,3333,627],{"class":514},[508,3335,3336],{"class":688}," 1",[508,3338,3339],{"class":514}," },",[508,3341,3342],{"class":538}," \u002F\u002F поля фильтра задач в верхнем регистре\n",[508,3344,3345,3348,3350,3352,3354,3356,3358,3360,3362,3365,3367,3369],{"class":534,"line":652},[508,3346,3347],{"class":623},"    select",[508,3349,627],{"class":514},[508,3351,1439],{"class":552},[508,3353,635],{"class":514},[508,3355,1146],{"class":565},[508,3357,635],{"class":514},[508,3359,1016],{"class":514},[508,3361,562],{"class":514},[508,3363,3364],{"class":565},"TITLE",[508,3366,635],{"class":514},[508,3368,1445],{"class":552},[508,3370,3371],{"class":538},"\u002F\u002F выбираем в верхнем регистре, но в ответе id \u002F title в нижнем\n",[508,3373,3374],{"class":534,"line":669},[508,3375,698],{"class":514},[508,3377,3378,3380,3382,3384,3386,3388,3390],{"class":534,"line":695},[508,3379,704],{"class":623},[508,3381,627],{"class":514},[508,3383,562],{"class":514},[508,3385,711],{"class":565},[508,3387,635],{"class":514},[508,3389,1016],{"class":514},[508,3391,3392],{"class":538}," \u002F\u002F читаем task.id из ответа\n",[508,3394,3395,3398,3400,3402,3404,3406,3408],{"class":534,"line":701},[508,3396,3397],{"class":623},"  cursorIdKey",[508,3399,627],{"class":514},[508,3401,562],{"class":514},[508,3403,1146],{"class":565},[508,3405,635],{"class":514},[508,3407,1016],{"class":514},[508,3409,3410],{"class":538}," \u002F\u002F order + постраничный фильтр \">ID\" в запросе\n",[508,3412,3413,3415,3417,3419,3422],{"class":534,"line":718},[508,3414,721],{"class":623},[508,3416,627],{"class":514},[508,3418,562],{"class":514},[508,3420,3421],{"class":565},"tasks",[508,3423,569],{"class":514},[508,3425,3426,3428],{"class":534,"line":735},[508,3427,753],{"class":514},[508,3429,756],{"class":552},[508,3431,3432],{"class":534,"line":750},[508,3433,576],{"emptyLinePlaceholder":575},[508,3435,3436,3439,3442,3444],{"class":534,"line":759},[508,3437,3438],{"class":582},"let",[508,3440,3441],{"class":552}," total ",[508,3443,589],{"class":514},[508,3445,2191],{"class":688},[508,3447,3448,3450,3452,3454,3456,3458,3460,3462],{"class":534,"line":764},[508,3449,767],{"class":545},[508,3451,770],{"class":545},[508,3453,773],{"class":552},[508,3455,583],{"class":582},[508,3457,778],{"class":552},[508,3459,781],{"class":514},[508,3461,784],{"class":552},[508,3463,617],{"class":514},[508,3465,3466,3469,3471,3473,3475],{"class":534,"line":789},[508,3467,3468],{"class":552},"  total",[508,3470,2595],{"class":514},[508,3472,1714],{"class":552},[508,3474,477],{"class":514},[508,3476,2602],{"class":552},[508,3478,3479],{"class":534,"line":795},[508,3480,837],{"class":514},[508,3482,3483,3486,3488,3490,3492,3494,3496,3498,3501,3503,3506,3508],{"class":534,"line":834},[508,3484,3485],{"class":552},"console",[508,3487,477],{"class":514},[508,3489,803],{"class":611},[508,3491,614],{"class":552},[508,3493,808],{"class":514},[508,3495,2752],{"class":565},[508,3497,814],{"class":514},[508,3499,3500],{"class":552},"total",[508,3502,753],{"class":514},[508,3504,3505],{"class":565}," tasks",[508,3507,808],{"class":514},[508,3509,756],{"class":552},[471,3511,3512,3513,3515,3516,3519,3520,3522],{},"Без ",[502,3514,1056],{}," значение ",[502,3517,3518],{},"idKey: 'ID'"," по умолчанию невозможно прочитать из ответа в нижнем регистре, поэтому пагинация остановится после первых 50 задач — и SDK залогирует ",[502,3521,1521],{},", указывающий сюда.",[494,3524,3526],{"id":3525},"alternatives-and-recommendations","Альтернативы и рекомендации",[479,3528,3529,3535,3541,3550,3556,3568,3580,3591],{},[482,3530,3531,3534],{},[474,3532,3533],{},"Размер чанка",": Bitrix24 REST API версии 2 всегда возвращает до 50 записей на запрос.",[482,3536,3537,3540],{},[474,3538,3539],{},"Оптимальная параллельность",": при обработке данных из генератора рекомендуется ограниченная параллельность (3–5 одновременных операций).",[482,3542,3543,3545,3546,3549],{},[474,3544,375],{},": всегда обрабатывайте ошибки внутри цикла ",[502,3547,3548],{},"for await...of",", чтобы предотвратить прерывание всего процесса.",[482,3551,3552,3555],{},[474,3553,3554],{},"Мониторинг прогресса",": внедряйте логирование прогресса для длительных операций.",[482,3557,3558,3561,3562,3567],{},[474,3559,3560],{},"Для последовательных запросов",": используйте ",[486,3563,3565],{"href":3564},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fcall-rest-api-ver2\u002F",[502,3566,87],{}," для одиночных вызовов.",[482,3569,3570,3573,3574,3579],{},[474,3571,3572],{},"Для пакетных операций:"," используйте ",[486,3575,3577],{"href":3576},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Fbatch-rest-api-ver2\u002F",[502,3578,122],{}," для выполнения до 50 команд в одном запросе.",[482,3581,3582,3585,3586,477],{},[474,3583,3584],{},"На стороне клиента (браузер):"," используйте встроенный объект ",[486,3587,3589],{"href":3588},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fvue\u002F#init",[502,3590,133],{},[482,3592,3593,3596,3597,3600,3601,3603,3604,3606],{},[474,3594,3595],{},"См. также:"," ",[486,3598,190],{"href":3599},"\u002Fdocs\u002Fworking-with-the-rest-api\u002Ffiltering\u002F"," — построение ",[502,3602,1069],{}," (и почему ",[502,3605,1031],{}," отбрасывается).",[3608,3609,3610],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .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 .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}",{"title":506,"searchDepth":542,"depth":542,"links":3612},[3613,3616,3620,3627,3628,3633],{"id":496,"depth":542,"text":497,"children":3614},[3615],{"id":841,"depth":572,"text":842},{"id":866,"depth":542,"text":867,"children":3617},[3618,3619],{"id":928,"depth":572,"text":929},{"id":1199,"depth":572,"text":1200},{"id":1236,"depth":542,"text":1237,"children":3621},[3622,3623,3624,3625,3626],{"id":1240,"depth":572,"text":1241},{"id":1272,"depth":572,"text":1273},{"id":1368,"depth":572,"text":1369},{"id":1414,"depth":572,"text":1415},{"id":1487,"depth":572,"text":1065},{"id":1533,"depth":542,"text":375},{"id":362,"depth":542,"text":352,"children":3629},[3630,3631],{"id":1926,"depth":572,"text":1927},{"id":3187,"depth":572,"text":3632},"Пагинация tasks.task.list (поле запроса ≠ поле ответа)",{"id":3525,"depth":542,"text":3526},"md",[3636,3639,3642,3646],{"label":511,"iconName":3637,"to":3638},"GitHubIcon","https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fcore\u002Factions\u002Fv2\u002Ffetch-list.ts",{"label":3640,"iconName":3637,"to":3641},"SdkError","https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fpackages\u002Fjssdk\u002Fsrc\u002Fcore\u002Fsdk-error.ts",{"label":3643,"iconName":3644,"to":3645},"Async Generator","MdnwebdocsIcon","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FAsyncGenerator",{"label":3647,"iconName":3637,"to":3648},"Skill — b24jssdk-rest","https:\u002F\u002Fgithub.com\u002Fbitrix24\u002Fb24jssdk\u002Fblob\u002Fmain\u002Fskills\u002Fb24jssdk-rest\u002FSKILL.md",{},{"title":108},{"title":461,"description":111},"PAJeOjFdwUlU4HdhbNAsLEPeBa3flMOfHUlaQ8inZw0",{"data":3654,"body":3655},{},{"type":3656,"children":3657},"root",[3658],{"type":3659,"tag":471,"props":3660,"children":3661},"element",{},[3662],{"type":3663,"value":111},"text",1783080217586]