crm 26.1900.0 Безопасность

Crm 26.1800.0–26.1900.0: описания стадий, обязательные поля и проверка согласий

1 мин чтения Устаревших API: 11
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Обновление безопасности

Закрыта уязвимость или ослабленная проверка прав. Ставить в первую очередь.

В CRM 26.1800.0 и 26.1900.0 появились описания стадий, команды обязательности полей и новые методы REST 3.0. Обновления закрывают ошибки доступа и обработки фильтров; интеграторам придётся проверить веб-формы, документные дела и шаблоны БП.

Новое

Опишите правила работы на стадии

С 26.1800.0 поле DESCRIPTION у стадий и статусов хранит до 65 535 байт. В описании работают BB-коды b, i, u, s и ссылки. Менеджеры видят текст в подсказках канбана и карточки CRM; редактируют его в попапе стадии.

Регламент воронки можно загрузить через crm.status.add/crm.status.update, CCrmStatus или ORM StatusTable. REST принимает только строку. При обновлении через CCrmStatus::Update() без SORT прежняя сортировка теперь сохраняется.

Задайте обязательность поля из PHP

В 26.1800.0 появились публичные SetRequirementCommand и ClearRequirementCommand. Они требуют права на управление полями. Пример для уже созданного пользовательского поля сделки, после подключения пролога:

        <?php declare(strict_types=1);

use Bitrix\Crm\V2\Public\Command\Field\SetRequirementCommand;
use Bitrix\Crm\V2\Public\Entity\Field\Requirement\SetInput;
use Bitrix\Crm\V2\Public\EntityType;
use Bitrix\Main\Engine\CurrentUser;
use Bitrix\Main\Loader;

Loader::requireModule('crm');

$result = (new SetRequirementCommand(
    EntityType::deal(),
    (int)CurrentUser::get()->getId(),
    'UF_CRM_CONTRACT_NO',
    0,
    SetInput::withRequiredStageIds(['PREPAYMENT_INVOICE', 'EXECUTING']),
))->run();

if (!$result->isSuccess()) {
    echo implode('; ', $result->getErrorMessages());
}

    

0 означает основную воронку сделки. Для лидов и предложений categoryId равен null. Пустой список стадий снимает правило, а SetInput::withoutRequiredStageIds() делает поле обязательным во всей воронке. Недоступность настройки по лицензии возвращается как STAGE_REQUIREMENT_NOT_AVAILABLE; технические сбои могут бросить RuntimeException.

С 26.1900.0 REST 3.0 читает настройку через crm.deal.field.required.get и аналогичные методы других сущностей за флагом RestV3CrudDeal. У действий set и clear в этой версии нет маршрутов, хотя методы контроллера уже написаны.

Читайте дела и записывайте трейсы через REST 3.0

В 26.1800.0 добавлены crm.activity.get, crm.activity.field.list/get и контекстные методы вроде crm.deal.activity.get. Нужен флаг RestV3CrudDeal. Коммуникации недоступных пользователю клиентов маскируются.

В 26.1900.0 отдельный флаг RestV3Tracking открывает crm.tracking.trace.get/list/add/delete. Трейсы содержат источник, UTM, страницы и каналы и связываются с сущностями CRM. list фильтрует по entityTypeId и entityId, delete обрабатывает максимум 500 привязок. У элементов появилось поле trackingSourceId. Флаг по умолчанию выключен.

В новом дизайнере БП с 26.1800.0 есть действие «Получить информацию о товаре»: по ID возвращает поля товара или предложения, картинки и выбранные свойства. Без доступа к каталогу действие скрыто.

Что сломается

Документы перестанут создавать дела

В 26.1800.0 удалён провайдер CRM_DOCUMENT и публичные методы DocumentGeneratorManager::createDocumentActivity(), actualizeDocumentImmediately() и enqueueItemScheduledDocumentsForActualization(). Старые дела-документы таймлайн показывает недоступными. Шаблоны БП с CreateActivity = Y в действии «Создать документ» больше не создают дело.

У триггера CBPCrmEntityCreateTrigger исчезли выходы EntityTypeId и EntityId; остался документ ReturnDocument. Перепроверьте ссылки на эти выходы в новом дизайнере. Поле COMPANY_ID документа «Контакт» сменило тип со строки на селектор компании.

Обновите импорты Requirement и управление флагом форм

В 26.1800.0 классы V2 Public обязательности полей переехали в Bitrix\Crm\V2\Public\Entity\Field\Requirement. Старые импорты и исключения замените по списку removed.

С 26.1900.0 у RestV3WebForm удалены публичные enable()/disable(). Используйте \Bitrix\Crm\Feature::enable('RestV3WebForm') и disable(). Состояние читается из флагов main; проверьте включённость REST 3.0 форм после обновления.

Передавайте согласия на сервер

В 26.1900.0 crm.site.form.fill и Fill::save() с включённой проверкой полей сверяют согласия с документами сохранённой формы. Без обязательного согласия результат не создаётся, возвращается CRM_WEBFORM_AGREEMENT_REQUIRED. Собственный фронтенд должен передавать в consents JSON вида {"AGREEMENT_5":"Y"} для нужного документа. При setFieldChecking(false) согласия больше не записываются в результат.

В новых формах чекбокс согласия по умолчанию снят, даже при LICENCE_BUTTON_IS_CHECKED = 'Y', пока выключен WebFormConsentBySubmit. Так же создаются предустановленные формы.

Флаг TwoPhaseDocumentCreation в 26.1900.0 включён по умолчанию: новый документ открывается в слайдере-оболочке и создаётся отдельным запросом. Проверьте доработки слайдера. CCrmDocument::AddDocumentField() при ошибке теперь возвращает false; текст ошибки доступен через GetLastAddDocumentFieldError().

Исправления безопасности

В 26.1800.0 AJAX-мастер crm.config.checker получил проверку права настройки CRM и ограничение POST. Вложения БП-письма принимают только ID существующих файлов вместо произвольного пути или URL. Кеш прав на изменение дел разделён по пользователям.

Вход в Zoom теперь проверяет пару linkCode/joinToken, если socialservices поддерживает токены. Легаси-путь оставлен для коротких ссылок на незавершённые встречи в пределах длительности встречи плюс семь дней.

В 26.1900.0 фильтры гридов CRM и crm.item.list удаляют служебные ключи __* и CHECK_PERMISSIONS. В списке дел проверка повторяется после снятия префикса вкладки, закрывая передачу сырого SQL через такой ключ.

Устаревшие и удалённые API в этой версии

Символ Статус Чем заменять
Bitrix\Crm\Activity\Provider\Document Удалено —
Bitrix\Crm\Integration\DocumentGeneratorManager::createDocumentActivity() Удалено —
Bitrix\Crm\Integration\DocumentGeneratorManager::actualizeDocumentImmediately() Удалено —
Bitrix\Crm\Integration\DocumentGeneratorManager::enqueueItemScheduledDocumentsForActualization() Удалено —
Bitrix\Crm\Feature\RestV3WebForm::enable() Удалено Bitrix\Crm\Feature::enable()
Bitrix\Crm\Feature\RestV3WebForm::disable() Удалено Bitrix\Crm\Feature::disable()
Bitrix\Crm\V2\Public\Entity\Field\Requirement Удалено Bitrix\Crm\V2\Public\Entity\Field\Requirement\Requirement
Bitrix\Crm\V2\Public\Entity\Field\RequirementException Удалено Bitrix\Crm\V2\Public\Entity\Field\Requirement\Exception
Bitrix\Crm\V2\Public\Entity\Field\RequirementMode Удалено Bitrix\Crm\V2\Public\Entity\Field\Requirement\Mode
Bitrix\Crm\V2\Public\Entity\Field\RequirementError Удалено Bitrix\Crm\V2\Public\Entity\Field\Requirement\Error
Bitrix\Crm\V2\Public\Entity\Field\RequirementTechnicalException Удалено \RuntimeException

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

crm 26.1750.0 Рутинное Свежее

Crm 26.1750.0: маршруты превью ссылок регистрируются в InstallDB()

В Crm 26.1750.0 от 20 октября 2026 года API и схема БД не менялись, а в установщике вызов `\Bitrix\Crm\Preview\Route::setCrmRoutes()` переехал из конца `InstallFiles()` в `InstallDB()`, сразу после установки пользовательских полей. Этот метод регистрирует через `Bitrix\Main\UrlPreview\Router` обрабо…

1 мин
crm 26.1700.0 Ломающее Свежее

Crm 26.1450.0–26.1700.0: права на настройку без админства, белый список обработчиков печати и RequirementProvider

В коробочный Битрикс24 пришли четыре версии CRM: 26.1450.0, 26.1500.0, 26.1600.0 и 26.1700.0. Настройку CRM можно раздать по семи правам, а `RequirementProvider` возвращает стадии, на которых поле обязательно. Обновление закрывает дыры в правах, но сначала проверьте обработчики печати и оплаты, копи…

2 мин
crm 26.1400.0 Ломающее

Crm 26.900.0–26.1400.0: CRM V2 для PHP, CCrmDeal::Add только через Operation и белый список фильтра в crm.item.productrow.list

В коробочный Битрикс24 одним днём пришли шесть версий CRM: 26.900.0, 26.1000.0, 26.1100.0, 26.1200.0, 26.1300.0 и 26.1400.0. PHP-разработчику достался типизированный слой CRM V2, на котором строится и REST 3.0, а интеграции перед обновлением стоит проверить на `crm.item.productrow.list`, записи в та…

1 мин
voximplant 26.900.0 Заметное Свежее

Voximplant 26.900.0: подписанные параметры экспорта статистики

Voximplant 26.900.0 подписывает имя компонента при экспорте детализации статистики. Обновление также исправляет REST-сценарии, отметку пропущенного переадресованного звонка и чтение настроек прокси.

1 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти