В российских компаниях 1С — это стандарт. Кадровый учёт, расчёт зарплаты, оргструктура, приказы о приёме и увольнении — всё живёт в 1С:ЗУП или 1С:ERP. А LMS живёт отдельно. И каждый раз, когда HR принимает нового сотрудника или переводит его в другой отдел, кто-то идёт в Moodle и делает те же операции руками. Это не масштабируется. В этой статье — как мы решаем эту задачу и почему «просто выгрузить CSV» — не решение.

Три уровня интеграции: от выгрузки до real-time

Уровень 1. Пакетная синхронизация: загрузили → выгрузили
Самый простой и частый сценарий. По расписанию (раз в час, раз в сутки) 1С выгружает данные о сотрудниках и оргструктуре, Moodle их подхватывает. Пользователи создаются и блокируются автоматически. Результаты обучения — пройденные курсы, оценки, сертификаты — выгружаются обратно в 1С для кадрового учёта. Никаких промежуточных Excel-файлов: обмен идёт через API или файловый обменник на сервере.

Уровень 2. Событийная синхронизация: изменение в 1С → мгновенное действие в Moodle
Пакетная синхронизация работает с задержкой. Если сотрудника уволили и нужно заблокировать доступ к LMS немедленно — этого недостаточно. Событийная модель реагирует мгновенно: издан приказ о приёме в 1С — пользователь создан в Moodle через секунду. Оформлен перевод — изменилась роль и учебная группа. Увольнение — доступ заблокирован. Для regulated industries, где контроль доступа критичен, это не «плюс», а требование.

Уровень 3. Сквозная интеграция бизнес-процессов
Самый сложный и самый ценный сценарий. Обучение встроено в бизнес-процессы компании как их неотъемлемая часть. Сотрудник подаёт заявку на обучение в 1С:Документооборот → руководитель согласует → заявка уходит в Moodle → сотрудник автоматически зачислен на курс → после завершения результат возвращается в 1С и попадает в личное дело. Бухгалтерия видит затраты на обучение в разрезе подразделений. HR-директор — отчёт о квалификации персонала в реальном времени. Это не две системы с перемычкой — это единый контур.

В одном из проектов для промышленной компании мы связали 1С:ERP, 1С:Документооборот и Moodle в единую цепочку: заявка → согласование → обучение → аттестация → приказ о допуске к работе. Раньше этот процесс занимал до двух недель. После интеграции — два дня.

Что именно мы синхронизируем

Оргструктура и сотрудники
Из 1С:ЗУП в Moodle автоматически передаются: ФИО, табельный номер, должность, подразделение, руководитель, дата найма, статус (работает/уволен). При изменении любого из этих полей в 1С — данные обновляются в LMS. При увольнении — учётная запись блокируется. Схема маппинга настраивается под вашу конфигурацию 1С: мы не требуем «привести данные к стандартному виду» — мы адаптируемся под то, что уже есть.

Назначение курсов по правилам
Не просто «выгрузили всех сотрудников». Мы настраиваем правила: сотрудники должности X в подразделении Y автоматически зачисляются на курс Z. При повышении — на курс для новой должности. При переводе в другое подразделение — курсы старого отписываются, нового — назначаются. Логика зашита в middleware между 1С и Moodle и не требует ручного вмешательства.

Результаты обучения обратно в 1С
Пройден курс → оценка, дата, номер сертификата уходят в карточку сотрудника в 1С:ЗУП. Руководитель видит в привычном интерфейсе 1С, кто из его отдела прошёл обязательное обучение, а кто нет. HR-отдел получает отчёты без захода в LMS. При проверке регулятора данные уже на месте.

Заявки на обучение через 1С
Сотрудник или руководитель создаёт заявку в привычном интерфейсе 1С:Документооборот или корпоративном портале на базе 1С-Битрикс. Заявка проходит маршрут согласования и автоматически превращается в запись на курс в Moodle. После обучения результат возвращается в 1С обратным потоком — цикл замкнут.

Что может пойти не так и как мы это предотвращаем

Дубликаты пользователей
Самая частая проблема: сотрудник уже есть в Moodle (заведён вручную или из старой выгрузки), а интеграция пытается создать его повторно. Мы настраиваем матчинг по уникальному идентификатору — табельному номеру или GUID из 1С. Дубликатов не возникает.

Конфликт данных
Что делать, если фамилия в 1С и в Moodle различается? Какая система — источник истины? Мы настраиваем правила разрешения конфликтов: 1С всегда перезаписывает Moodle, Moodle не трогает поля из 1С, или ручной флаг «не обновлять» для отдельных записей.

Разрыв соединения
1С-сервер недоступен, API не отвечает — синхронизация остановилась. Мы настраиваем мониторинг: при сбое администратор получает уведомление, а очередь необработанных изменений сохраняется и применяется при восстановлении связи. Ни одно изменение не теряется.

Массовые изменения
Реструктуризация: 200 сотрудников переведены в новый отдел. Если обрабатывать по одному — синхронизация займёт часы. Мы проектируем middleware с пакетной обработкой: тысячи изменений применяются за минуты, а не за часы.

Почему мы это знаем

Мы занимаемся разработкой интеграций для LMS с 2014 года. Интеграция Moodle с 1С — одна из самых востребованных задач: через неё прошло больше трети наших проектов. Мы связывали 1С:ЗУП с Moodle для банка с 40 000 сотрудников, настраивали сквозной цикл «заявка → обучение → аттестация → приказ» для промышленной компании, интегрировали 1С:ERP с LMS для ритейла с 15 000 точек продаж.

Каждый проект начинается не с написания кода, а с аудита: как устроена ваша 1С, какие модули используются, какие данные критичны для обмена. Только после этого мы проектируем архитектуру и называем реалистичные сроки и бюджет.

Если вы планируете интеграцию — начните с нашего чеклиста по выбору LMS, а затем приходите на консультацию.