Это руководство перечисляет всё, что помечено @deprecated в 2.0.0 и удаляется в 3.0.0, с канонической заменой для каждого символа.
2.0.0 — они продолжают работать, но при каждом вызове выводят рантайм-предупреждение об устаревании. В 3.0.0 они удалены. Мигрируйте до перехода на 3.0.0.diff-примеры для каждого метода — в руководстве v0 → v1 в разделе «Deprecated». Эта страница — сжатый чеклист удалений.Что удаляется в 3.0.0
Legacy REST-шорткаты на AbstractB24
Эти шорткаты экземпляра игнорируют разделение restApi:v2 / restApi:v3 и заменяются явной поверхностью действий:
- await b24.callMethod('crm.deal.list', { filter: { '>id': 123 } }, 100)
+ await b24.actions.v2.call.make({
+ method: 'crm.deal.list',
+ params: { filter: { '>id': 123 }, start: 100 },
+ requestId: 'unique-request-id'
+ })
AbstractB24.batchSize
Максимальная длина ответа батча.
Статическая константа удалена. Впишите значение 50 вручную, если полагались на неё.
- if (size < AbstractB24.batchSize) {
+ if (size < 50) {
// some code ...
}
Хелперы пагинации AjaxResult
Они завязаны на поля конверта restApi:v2 next / total, которые restApi:v3 не возвращает:
Замените ручную пагинацию на callList.make (собрать всё) или fetchList.make (асинхронный генератор):
- // ручная пагинация на устаревшей поверхности
- const res = await b24.callMethod('crm.deal.list', {})
- let list = res.getData().result
- while (res.isMore()) { res = await res.getNext(http); list.push(...res.getData().result) }
+ // хелпер списка итерирует за вас — `chunk` это очередной массив элементов
+ for await (const chunk of b24.actions.v2.fetchList.make({ method: 'crm.deal.list' })) {
+ // обрабатываем chunk
+ }
LoggerBrowser и LoggerType
Заменены универсальной системой Logger / LoggerFactory. Enum LoggerType удалён без замены — LoggerFactory управляет уровнями сам, поэтому просто уберите импорт:
- import { LoggerBrowser, LoggerType } from '@bitrix24/b24jssdk'
+ import { LoggerFactory } from '@bitrix24/b24jssdk'
- const $logger = LoggerBrowser.build('MyApp', import.meta.env?.DEV === true)
+ const $logger = LoggerFactory.createForBrowser('MyApp', import.meta.env?.DEV === true)
- $logger.info('response', dataList)
+ $logger.info('response', { someInfo: dataList })
Как найти все места вызова
Устаревшие символы выводят предупреждение JSSDK_CORE_DEPRECATED_METHOD в рантайме, а LoggerBrowser логирует @deprecated: use Logger. Быстрая статическая проверка:
grep -rnE 'callMethod|callListMethod|fetchListMethod|callBatch|callBatchByChunk|\.isMore\(|\.hasMore\(|\.getNext\(|\.fetchNext\(|\.getTotal\(|LoggerBrowser|LoggerType' src
Get-ChildItem -Recurse src -Include *.ts,*.js |
Select-String -Pattern 'callMethod|callListMethod|fetchListMethod|callBatch|callBatchByChunk|\.isMore\(|\.hasMore\(|\.getNext\(|\.fetchNext\(|\.getTotal\(|LoggerBrowser|LoggerType'
Как только это ничего не вернёт — вы готовы к 3.0.0.