Интеграция с 1С: OData, HTTP-сервисы, обмен файлами
↑ 5.5 Интеграции со сторонними API: 1С, Битрикс24, FHIR · ← Предыдущая · → Следующая
Зачем это на собесе
В российских проектах интеграция с 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С приходят с текстом на русском, без стабильных кодов.
Практика
- Прочитайте справочник через OData с пагинацией.
- Реализуйте выгрузку заказов в HTTP-сервис 1С с ретраями и ключом идемпотентности.
- Опишите план обмена: кто владелец каждого справочника.
Вопросы с ответами
Какие способы интеграции с 1С вы знаете?
OData, HTTP/SOAP-сервисы, обмен файлами, шина/очередь; выбор зависит от объёма, задержки и возможностей команды 1С.
Основная проблема интеграции с 1С?
Разные модели данных и ограничения производительности/лицензий; нужны маппинг справочников, пакетный обмен и контроль нагрузки.