Заметки
Как понять, уволен пользователь или просто неактивен
Как понять, уволен пользователь или просто неактивен: ACTIVE=false, экстранет/интранет, статус увольнения.
ACTIVE=false, экстранет/интранет, статус увольнения. Главное — не подменять технические сущности похожими названиями: сначала понять, какие ID, права и типы данных участвуют в задаче, а уже потом вызывать REST-метод или писать обработчик.
Задача
Эта заметка про ситуацию «как понять, уволен пользователь или просто неактивен». В Битрикс24 такие задачи часто выглядят простыми в интерфейсе, но через REST или коробочный код упираются в технические ID, права и связанные сущности.
В интерфейсе это может быть одна кнопка, поле или запись в таймлайне. В коде почти всегда появляются дополнительные слои: REST-метод, права приложения, формат поля, связанная сущность и системные ID.
Поэтому перед автоматизацией лучше сделать маленький тестовый запрос и посмотреть реальный ответ портала, а не опираться только на название поля в карточке.
Рабочий подход
Для пользователей не ограничивайтесь одним признаком. Смотрите активность, тип пользователя, подразделение и права текущего приложения.
Для устойчивой интеграции полезно разделять чтение, нормализацию и запись. Сначала получаем данные, затем приводим их к понятному внутреннему формату, и только после этого вызываем метод изменения.
Если операция может затронуть существующие данные, перед записью сохраните исходное состояние или сделайте снимок. Это особенно важно для товарных строк, мультиполей, пользовательских полей и событий удаления.
Пример
Код ниже — не универсальная готовая интеграция, а опорный пример формата запроса или обработки данных.
BX24.callMethod('user.get', { FILTER: { ID: 123 }, ADMIN_MODE: true }, function (result) {
const user = result.data()[0];
console.log(user.ACTIVE, user.UF_DEPARTMENT, user.USER_TYPE);
}); Перед использованием замените ID, названия полей и права под конкретный портал. Для массовых операций сначала проверьте поведение на одном тестовом элементе.
Нюансы
Отсутствие пользователя в одном фильтре не всегда означает увольнение. Он может быть экстранет-пользователем, приглашённым, без отдела или недоступным по правам.
- Проверяйте scope приложения или вебхука до отладки бизнес-логики.
- Не храните секреты, входящие вебхуки и access token во frontend-коде.
- Для повторяемых операций добавляйте логирование и защиту от дублей.
- Для коробки учитывайте, что часть задач проще решить через D7, но такие решения нужно проверять после обновлений.
Главный ориентир: сначала определить точную сущность и формат данных, потом выбрать метод. Большинство ошибок возникает не из-за REST как такового, а из-за смешения похожих ID и типов значений.