Интеграция MES и WMS с 1С
Двусторонний обмен данными между 1С и производственной/складской системой. Без двойного ввода, без рассинхронизации, с журналом и retry.
1. Что передаём из 1С
1С — источник мастер-данных. В MES/WMS передаются:
- Номенклатура — справочник изделий, материалов, сырья
- Заказы — производственные заказы, заказы клиентов
- Спецификации — состав изделий, маршруты обработки
- Контрагенты — клиенты, поставщики
- Остатки — начальные остатки по складам (при первом запуске)
- Цены и тарифы — сдельные расценки, закупочные цены
2. Что возвращаем в 1С
MES/WMS — источник фактических данных. В 1С возвращаются:
- Фактические операции — что сделано, кем, когда, сколько
- Расход материалов — по факту, не по норме
- Сдельная зарплата — расчёт по закрытым операциям
- Приёмка/отгрузка — факты перемещения товара
- Инвентаризация — результаты пересчёта
- Брак — с причиной и количеством
3. Источник истины (master-slave по сущностям)
| Сущность | Master | Направление |
|---|---|---|
| Номенклатура | 1С | 1С → MES/WMS |
| Заказы | 1С | 1С → MES/WMS |
| Спецификации | 1С | 1С → MES |
| Фактические операции | MES | MES → 1С |
| Расход материалов | MES/WMS | MES/WMS → 1С |
| Сдельная ЗП | MES | MES → 1С |
| Остатки на складе | WMS | WMS → 1С |
| Контрагенты | 1С | 1С → MES/WMS |
4. REST API / HTTP-сервисы
Основной способ обмена — REST API. 1С публикует HTTP-сервисы, MES/WMS обращается к ним по расписанию или по событию.
- 1С → MES/WMS: MES/WMS запрашивает справочники и заказы у 1С по REST
- MES/WMS → 1С: MES/WMS отправляет факты в 1С через POST-запросы
- Формат: JSON (предпочтительно) или XML
- Аутентификация: Basic Auth или токен
- Таймаут: 30 секунд на запрос, retry — 3 попытки
5. Обмен файлами (XML/JSON)
Для регламентных обменов (раз в день/час) — файловый обмен через общую папку или SFTP:
- 1С выгружает XML/JSON в папку обмена
- MES/WMS забирает файл, обрабатывает, пишет результат
- MES/WMS выгружает ответный файл
- 1С забирает и загружает
- Архив обработанных файлов — 90 дней
6. Retry — повторные попытки
Если 1С недоступна или вернула ошибку — обмен не теряется:
- Стратегия: экспоненциальная задержка (1с, 5с, 30с, 5мин, 30мин)
- Максимум попыток: 10
- Очередь: неудачные обмены копятся в таблице очереди
- Алерт: после 3 неудач — уведомление администратору
- Ручной retry: администратор может запустить повтор из журнала
7. Idempotency — идемпотентность
Повторная отправка тех же данных не создаёт дубликатов:
- Ключ идемпотентности: UUID операции в MES/WMS
- 1С проверяет UUID — если уже загружен, возвращает «уже принято»
- MES/WMS помечает отправление как успешное
- Дубликаты исключаются на уровне ключа, не на уровне «похожести»
8. Журнал обмена
Каждый обмен записывается в журнал:
- Время — когда отправлено/получено
- Направление — 1С→MES или MES→1С
- Тип данных — номенклатура, заказ, операция
- Статус — успех, ошибка, retry
- Размер — количество записей
- Длительность — сколько занял обмен
- Ошибка — текст ошибки если есть
Журнал доступен в админ-панели, хранится 90 дней.
9. Обработка ошибок
- Сетевые ошибки — retry по стратегии выше
- Ошибки валидации — запись в журнал, алерт, не останавливает остальные записи
- Ошибки бизнес-логики — запись в журнал, уведомление администратору
- Частичный успех — пакет обрабатывается построчно, успешные строки загружаются, ошибочные — в журнал
- Восстановление — после сбоя обмен продолжается с последней успешной позиции (по timestamp)
10. Безопасность
- Транспорт: HTTPS (TLS 1.2+) для REST API, SFTP для файлового обмена
- Аутентификация: отдельный сервисный аккаунт, не пользовательский
- Авторизация: только на обмен, без доступа к админ-панели
- Сеть: обмен только через whitelist IP (сервер 1С ↔ сервер MES/WMS)
- Логирование: все запросы записываются, секреты (токены) не логируются
- Данные: передаются только необходимые поля, без лишних персональных данных
Бесплатно
Обсудить интеграцию с вашей 1С
Разберём ваши обмены и предложим схему: что передаём, что возвращаем, источник истины по каждой сущности