Есть ли быстрый способ решить эту проблему?
Чтобы был "быстрый" способ, нужно хотя бы иметь "2 способа" решения, а вы даже проблему (т.е. собственно почему происходит деактивация) не локализовали.
Как посмотреть пользователей которые пришли во время обмена с AD?
Таких логов не ведется, но можно подписаться на событие OnLdapUserFields модуля ldap и посмотреть какие приходят данные во время обмена.
Как записать в лог всех пользователей которые есть в xml с 1с?
Если мы говорим про штатный импорт, то файл последнего импорта находится в `/upload/1c_intranet/`
Судя по тому что вы привели код - у вас кастомный импорт и здесь вам нужно обратиться к разработчикам.
Что касается вашей проблемы, я кажется знаю ее корень: изменение пользователей из 1С.
В механизме сихнронизации битрикса происходит оперирование тремя датами:
- Дата последней синхронизации в Битрикс24
- Дата последнего изменения сотрудника в Битрикс24
- Дата последнего изменения учетки в AD
Синхронизация происходит при трех ключевых условиях:
1. LDAP Query вернул учетку.
2. Изменение учетке в AD (либо в Б24) произошли ПОСЛЕ последней успешной синхронизации.
3. Учетка не должна входить в "неимпортируемые группы"
Соответственно типовые ошибки:
1. Рассинхрон времени (например по какой-то причине время на сервере Б24 бежит впереди времени AD).
2. Шаманство с датами (иногда учетки отключают задним числом)
3. Неправильные условия (ldap query с активностью)
4. После увольнению учетку добавляют в группу, которая в Б24 помечена как несинхронизируемая