Интеграция с 1С: OData, HTTP-сервисы, обмен файлами

↑ 5.5 Интеграции со сторонними API: 1С, Битрикс24, FHIR · ← Предыдущая · → Следующая

По желанию~3 мин чтенияУровень: middle

Зачем это на собесе

В российских проектах интеграция с 1С — частая задача; ждут знания способов обмена и их подводных камней.

Объяснение

СпособОписаниеПлюсы/минусы
OData (стандартный интерфейс)1С публикует объекты (справочники, документы) как RESTбыстро, но формат 1С-специфичен, ограничения производительности
HTTP-сервисысвоя логика на стороне 1С, отдаёт JSONгибкий контракт, нужна разработка в 1С
Web-сервисы (SOAP)старый варианттяжеловесно
Обмен файлами (XML/JSON/CSV)выгрузка/загрузка по расписаниюпросто, нет реального времени
Очередь/шина1С публикует событиянадёжно, нужна поддержка на стороне 1С
Коннектор (COM)только Windowsизбегать
// OData: получить контрагентов, изменённых после даты
var url = "odata/standard.odata/Catalog_Контрагенты?$format=json&$filter=DeletionMark eq false&$top=100&$skip=0";

Особенности 1С:

  • Идентификатор объекта — GUID (Ref_Key), но пользователи ориентируются на код/наименование.
  • Даты часто в «пустом» значении 0001-01-01T00:00:00.
  • Справочники и перечисления имеют собственные имена, локализованные на русском.
  • Авторизация: Basic, часто с ограничением по лицензиям (число одновременных соединений).
  • Обмен выполняется пакетами; изменения отслеживаются планом обмена, а не «последним изменённым».

Нюансы и подводные камни

  • Нагрузка на 1С: запросы дорогие, избегайте частого опроса и больших выборок.
  • Модель данных 1С ≠ ваша: маппинг справочников (см. Синхронизация данных и маппинг справочников между системами).
  • Идемпотентность: ключ — GUID 1С или ваш внешний ключ.
  • Часовые пояса и «пустые» даты.
  • Ошибки 1С приходят с текстом на русском, без стабильных кодов.

Практика

  1. Прочитайте справочник через OData с пагинацией.
  2. Реализуйте выгрузку заказов в HTTP-сервис 1С с ретраями и ключом идемпотентности.
  3. Опишите план обмена: кто владелец каждого справочника.

Вопросы с ответами

Связанные темы