Обмен с 1С:ЗУП — это не про каталог и заказы, а про людей: сотрудников, должности, подразделения и их иерархию. В отличие от типового CommerceML для интернет-магазина, здесь нужен отдельный сценарий, потому что данные ЗУП ложатся не в инфоблок товаров, а в структуру компании портала, пользователей и кадровые справочники.
Зачем выгружать кадры из ЗУП на сайт
1С:Битрикс в редакциях «Бизнес-процессы» и особенно «Битрикс24 в коробке» хранит собственную структуру компании: подразделения, руководителей, пользователей с должностями. Если кадровый учёт ведётся в 1С:Зарплата и управление персоналом, поддерживать эти данные вручную на двух сторонах — источник постоянных расхождений.
Типовые задачи, которые решает обмен с ЗУП:
- автоматическое заведение и деактивация пользователей портала при приёме и увольнении;
- ведение единой оргструктуры (дерева подразделений) как в кадровом учёте;
- заполнение карточки сотрудника: ФИО, должность, подразделение, табельный номер, телефон, e-mail;
- корректное отображение руководителей для согласований в бизнес-процессах.
В каком формате идёт обмен
Стандартного «протокола ЗУП→Битрикс», аналогичного CommerceML для каталога, у платформы нет. На практике используют один из трёх подходов:
| Способ | Когда применяют |
|---|---|
| Выгрузка в XML/CSV из ЗУП + импортный скрипт на стороне Битрикс | Простая односторонняя синхронизация справочников |
REST API Битрикс24 (методы user.* и department.*) | Коробочный Битрикс24, регулярное обновление из обработки 1С |
| Прямая обработка на стороне 1С с записью через веб-сервис/HTTP-сервис Битрикс | Гибкая логика на стороне ЗУП, сложные правила |
Для порталов на Битрикс24 базовым инструментом остаётся REST: подразделения создаются методом department.add, а сотрудники — через user.add с указанием UF_DEPARTMENT. Односторонний импорт из выгруженного файла проще, но требует собственного парсера и планировщика.
Сопоставление оргструктуры и подразделений
Оргструктура в Битрикс — это инфоблок «Структура компании» (тип structure), где каждое подразделение является элементом с родителем. В ЗУП подразделения хранятся в справочнике Подразделения с иерархией. Задача обмена — сопоставить эти два дерева.
- Заведите в подразделениях Битрикс пользовательское поле или используйте внешний код для хранения GUID подразделения из 1С — это ключ синхронизации.
- При обмене ищите подразделение по GUID; если не найдено — создавайте, если найдено — обновляйте название и родителя.
- Обрабатывайте дерево сверху вниз, чтобы родитель существовал раньше дочернего элемента.
- Руководителя подразделения записывайте отдельным полем после того, как все пользователи заведены.
Загрузка сотрудников и карточек
Сотрудник в Битрикс — это пользователь (b_user) с привязкой к подразделению через поле UF_DEPARTMENT (массив ID подразделений). Из ЗУП сюда переносят как минимум:
- ФИО — раскладывается в поля
NAME,LAST_NAME,SECOND_NAME; - должность — поле
WORK_POSITION; - подразделение —
UF_DEPARTMENTпо сопоставленным GUID; - табельный номер, служебный телефон, рабочий e-mail;
- GUID сотрудника из 1С — в отдельное пользовательское поле
UF_1C_GUIDкак ключ.
Логин и e-mail — обязательные для пользователя Битрикс, поэтому продумайте их генерацию, если в ЗУП почта не заполнена. Пароль при первичном заведении обычно ставят случайный, а сотрудник восстанавливает его по стандартной процедуре либо входит через SSO.
Приём, перевод и увольнение
Кадровое движение — самая ответственная часть обмена, потому что от неё зависит доступ к порталу. Обрабатывать нужно три события:
| Событие в ЗУП | Действие в Битрикс |
|---|---|
| Приём | Создать пользователя, активировать, привязать к подразделению |
| Перевод | Обновить UF_DEPARTMENT и должность |
| Увольнение | Деактивировать (ACTIVE=N), а не удалять |
Уволенных сотрудников не удаляют из базы: за пользователем остаются задачи, авторства в бизнес-процессах и история. Правильный сценарий — деактивация с сохранением записи. Удаление порождает битые ссылки и ошибки в порталах.
Регулярность и производительность
Кадровые данные меняются медленно, поэтому ежеминутный обмен не нужен. Оптимально — раз в сутки ночью или по событию кадрового приказа. Запуск ставят на агента Битрикс или на планировщик 1С, инициирующий обработку в сторону сайта.
- Полная выгрузка нескольких сотен сотрудников проходит за секунды, поэтому чаще выбирают полный обмен, а не инкрементный — он проще и надёжнее.
- Для крупных холдингов с тысячами сотрудников имеет смысл передавать только изменённые записи по дате последнего изменения.
- Пишите лог обмена: сколько создано, обновлено, деактивировано — это единственный способ быстро заметить, что синхронизация «поехала».
Отдельно проверяйте кодировку: выгрузки из 1С по умолчанию идут в UTF-8, но при ручной подготовке файлов легко получить windows-1251 и кракозябры в ФИО.
Частые проблемы
Опыт внедрений показывает повторяющийся набор граблей:
- Дубли подразделений и людей — почти всегда следствие поиска по названию/ФИО вместо GUID.
- «Осиротевшие» подразделения — дочерний элемент создан раньше родителя; лечится обработкой дерева по уровням.
- Слетевшая иерархия руководителей — руководителя назначают до того, как заведён его пользователь.
- Конфликт с внешними пользователями — в Битрикс24 есть гости и экстранет-пользователи, их нельзя затирать кадровой выгрузкой; фильтруйте по признаку сотрудника.
- Потеря доступа у активных — слишком агрессивная деактивация «всех, кого нет в файле» при неполной выгрузке.
Итог
Обмен с 1С:ЗУП — это отдельный кадровый сценарий, а не разновидность товарного CommerceML. Ключевые принципы: синхронизация по неизменному GUID, обработка дерева подразделений сверху вниз, деактивация вместо удаления уволенных и обязательное логирование. Тогда оргструктура и список сотрудников на портале остаются актуальными без ручной поддержки.
Такой обмен почти всегда требует индивидуальной обработки на стороне 1С и аккуратной настройки сопоставлений на стороне Битрикс. Мы проектируем и внедряем эти интеграции под конкретную конфигурацию ЗУП и редакцию портала, а затем берём синхронизацию на сопровождение, чтобы кадровые движения доходили до сайта без сбоев.
Частые вопросы
Чем обмен с ЗУП отличается от обычного обмена с 1С?
Обычный обмен с 1С работает по протоколу CommerceML и наполняет каталог товаров и заказы. Обмен с ЗУП переносит сотрудников и подразделения в структуру компании и пользователей портала, для чего нужен отдельный сценарий и другие приёмники данных.
Нужен ли обмен с ЗУП интернет-магазину?
Как правило, нет. Магазину важны каталог, цены и заказы из УТ или УНФ. Обмен с ЗУП актуален для корпоративных порталов и интранетов на Битрикс24, где сотрудники — это пользователи рабочей среды.
По какому ключу сопоставлять сотрудников и отделы?
Только по GUID из 1С, сохранённому в отдельном пользовательском поле. Поиск по ФИО или названию подразделения приводит к дублям при переименованиях и совпадениях.
Что делать с уволенными сотрудниками?
Их нужно деактивировать (ACTIVE=N), а не удалять. За пользователем остаются задачи, авторства и история в бизнес-процессах, и удаление породит битые ссылки.
Как часто запускать обмен кадрами?
Кадровые данные меняются медленно, поэтому обычно достаточно одного запуска в сутки ночью или обмена по событию кадрового приказа. Ежеминутный обмен здесь не требуется.
Через что технически ведётся обмен с порталом Битрикс24?
Чаще всего через REST API: подразделения создаются методом department.add, сотрудники — user.add с указанием UF_DEPARTMENT. Альтернатива — импорт выгруженного из ЗУП файла собственным скриптом.
Почему после обмена появляются дубли подразделений?
Обычно причина в поиске подразделения по названию вместо GUID: переименованный отдел не находится и создаётся заново. Решение — синхронизация по неизменному внешнему коду из 1С.
Можно ли протестировать обмен без риска для доступов?
Да. Первый запуск делают на тестовом портале либо в режиме, когда обработка только формирует лог планируемых изменений без их записи, чтобы проверить план перед применением.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.