Пошаговая синхронизация пользователей
Стандартная синхронизация загружает пользователей из Active Directory за один запрос. Большой объем данных приводит к превышению лимитов памяти или времени выполнения скрипта. Процесс прерывается, данные не обновляются.
Пошаговая синхронизация обрабатывает список пользователей частями. Она снижает нагрузку на сервер и позволяет завершить импорт без ошибок.
Как работает режим
Пошаговая синхронизация разбивает список пользователей на части и обрабатывает их по очереди через итератор. Каждый шаг выполняется отдельно, поэтому нагрузка распределяется равномерно.
Перед настройкой на рабочем сайте проверьте синхронизацию в тестовой среде.
Ограничения продуктов
В продукты компании 1С-Битрикс можно загрузить не всех пользователей из AD/LDAP. Учитывайте ограничения:
- 1С-Битрикс: Управление сайтом — можно создать не более 1000 пользователей,
- 1С-Битрикс24 — лимит зависит от тарифного плана коробочной версии.
Включить режим
- Обновите модуль AD/LDAP до версии 26.0.0 или выше.
- В административном разделе сайта откройте страницу
/bitrix/admin/php_command_line.php: Настройки > Инструменты > Командная PHP-строка. - Выполните код, чтобы активировать режим и включить логирование:
\Bitrix\Main\Loader::includeModule('ldap'); // Включить запись логов синхронизации в файл \Bitrix\Ldap\DI\Container::getInstance()->getSettings()->enableSyncLogger( '/path/to/logs/ldap.log' ); // Активировать пошаговый режим синхронизации \Bitrix\Ldap\DI\Container::getInstance()->getSettings()->enableModernSync();Замените
/path/to/logs/ldap.logна путь к файлу лога на сервере. Убедитесь, что у веб-сервера есть права на запись в эту директорию.
Запустить синхронизацию
Синхронизацию можно запустить одним из двух способов.
Способ 1. Через настройки сервера
- В административном разделе перейдите на страницу Настройки > AD/LDAP.
- Откройте настройки нужного сервера.
- Перейдите на вкладку Синхронизация.
- Установите флаг Выполнять периодическую полную синхронизацию и сохраните изменения.

Чтобы запустить синхронизацию еще раз, отключите и заново включите синхронизацию:
- Снимите флаг Выполнять периодическую полную синхронизацию и нажмите Сохранить.
- Установите флаг Выполнять периодическую полную синхронизацию и нажмите Сохранить.
В результате импорт начнется сразу.
Способ 2. Через агент синхронизации
- Откройте страницу
/bitrix/admin/php_command_line.php: Настройки > Инструменты > Командная PHP-строка. - Укажите идентификатор настроенного сервера и выполните агент синхронизации:
\Bitrix\Main\Loader::includeModule('ldap');
$serverId = 1; // идентификатор сервера
\CLdapServer::SyncAgent($serverId);
Идентификатор сервера serverId можно получить в административном разделе на странице Настройки > AD/LDAP.

Отладить процесс и устранить ошибки
С помощью логирования можно отследить этапы работы. Процесс синхронизации проходит через состояния:
- idle — ожидание,
- import — импорт новых и обновление существующих пользователей,
- deactivate — деактивация пользователей, которых нет в AD,
- finished — завершение.
Информация о текущей сессии хранится в таблице базы данных b_ldap_sync_session. Одновременно выполняется только одна сессия синхронизации для каждого сервера.
Если процесс завис или его нужно остановить, завершите активные сессии методом killRunningSessions().
\Bitrix\Main\Loader::includeModule('ldap');
\Bitrix\Ldap\DI\Container::getInstance()->getSyncSessionManager()->killRunningSessions();
Дата и время последней синхронизации пользователя сохраняются в таблице b_ldap_user_last_sync. Эти данные помогают определить, какие записи были обработаны на последнем шаге.
Отключить режим
Чтобы вернуться к стандартному режиму синхронизации, выполните код:
\Bitrix\Main\Loader::includeModule('ldap');
\Bitrix\Ldap\DI\Container::getInstance()->getSettings()->disableSyncLogger();
\Bitrix\Ldap\DI\Container::getInstance()->getSettings()->disableModernSync();