Перейти к основному содержимому

Интеграция и взаимодействие 1С

Разработчику Архитектору

О чём этот блок

Прикладное решение на 1С:Предприятие редко живёт изолированно — обмен с банками, маркетплейсами, сайтом, другой учётной системой или собственным микросервисом — обычная задача. Интеграция здесь — обмен данными и вызов операций с сохранением целостности учёта внутри информационной базы.

Эта статья — хаб: как выбрать механизм и куда перейти за деталями. Пошаговые материалы — в статьях 128–134, 135–137, 138–139, 1310.


Маршрут "Интернет и API"

ШагСтатьяСодержание
1JSON в интеграцииПоток, коллекции, XDTO
2HTTP-сервисыПубликация своего REST API
3HTTP-запросыВызов внешних API из BSL
4ODataСтандартный REST к объектам конфигурации
5Web-сервисы SOAPWSDL, XDTO, URL ws/
6Сеансы интернет-сервисовПул сеансов, IBSession
7FTP и почтаТранспорт файлов и писем

Маршрут "Компоненты, COM и файлы"

ШагСтатьяСодержание
1Внешние компонентыNative API, ККТ, драйверы
2Automation и внешнее соединениеCOM, V83.ComConnector
3XML и XDTOСериализация, ZIP, клиент↔сервер

Обмен между базами — маршрут ниже (135–137).


Маршрут "Данные и обмен между базами"

ШагСтатьяСодержание
1Внешние источники данныхODBC, ВИД, запросы к сторонней СУБД
2Планы обмена и РИБУзлы, сообщения, распределённая ИБ
3Универсальный обменXML, транзакции, EnterpriseData

Роли — кто кого вызывает

Роль 1СЧто делаетТипичные средства
Клиент APIЗапрашивает данные у внешней системыHTTP-запросы, SOAP-клиент, FTP, файловый обмен
Поставщик APIОтдаёт данные и команды наружуHTTP-сервис, OData, Web-сервис
Участник обменаСинхронизирует две базы 1Спланы обмена, РИБ, EnterpriseData

Код обмена обычно выполняется на сервере 1С (фоновые задания, регламентные задания, обработчики HTTP-сервиса). Длительный HTTP-запрос из формы пользователя блокирует сеанс — тяжёлые вызовы выносят в фон.

Хорошая инженерная привычка: проектировать интеграцию как контракт + журнал + повтор. Контракт описывает формат данных, журнал фиксирует факт обмена и статус, повтор закрывает временные сбои сети.


Карта "задача → механизм"

ЗадачаМеханизмСтатья
REST API под свою логикуHTTP-сервисHTTP-сервисы 1С
REST к объектам конфигурацииODataOData в 1С
Вызов чужого REST/JSONHTTP-запрос + JSONHTTP-запросы из 1С, JSON в интеграции 1С
Две базы, одна конфигурацияРИБПланы обмена и РИБ 1С
Разные конфигурации / не 1СПлан обмена + XMLУниверсальный обмен данными 1С
Чтение таблиц PostgreSQL/SQL ServerВнешний источник данныхВнешние источники данных 1С
ККТ, сканер, драйверВнешняя компонентаВнешние компоненты 1С
SOAP, WSDLWeb-сервисWeb-сервисы 1С (SOAP)
Excel-макрос, COMAutomation / COMConnectorAutomation и внешнее соединение 1С
XML-пакет, архивXDTO, файловый обменXML и XDTO в интеграции 1С
FTP, почтаFTPСоединение, ИнтернетПочтаFTP и электронная почта в 1С

Файлы, XML и обмен между базами

СпособКогда уместен
XML / JSON / CSVВыгрузка прайсов, актов, обмен с гос. форматами
XLSX, табличные документыОтчёты для пользователей; импорт через табличный документ или внешние обработки
План обмена, РИБДве (и более) информационные базы 1С с правилами отбора и трансформации
EnterpriseDataУнифицированный обмен между типовыми и смежными решениями 1С

Встроенного чтения YAML в платформе нет — YAML применяют только если его парсят отдельной библиотекой или на стороне внешней системы.

COM (Excel, Word) — в основном на клиенте Windows; на Linux-сервере полагаться на COM нельзя.


Внешние источники и компоненты

  • Внешние источники данных — доступ к таблицам сторонней СУБД через ODBC/драйвер (аналитика, разовые загрузки).
  • Внешние компоненты (Native API) — драйверы ККТ, сканеров, спец. протоколы; см. Внешние компоненты 1С.
  • Интеграционная шина заказчика (ESB, Kafka и т.д.) — 1С выступает узлом — HTTP, файлы, сообщения; универсального коннектора "ко всем шинам" в платформе нет.

Собственная СУБД базы 1С в продакшене — обычно MS SQL Server или PostgreSQL; это штатное хранение данных приложения, а не интеграция с внешним миром.


Синхронный и отложенный обмен

Синхронно — пользователь или код ждёт ответ HTTP в том же сеансе. Подходит для коротких проверок (остаток, статус платежа).

Отложеннорегламентное задание или фоновое задание формирует пакет, пишет в регистр/очередь и отправляет позже. Так делают обмен с ФНС, выгрузку на маркетплейс, повтор при недоступности API. Пользователь видит статус в документе, а не "зависший" интерфейс.


Безопасность и эксплуатация

  • HTTPS, сертификаты, Basic/Bearer-токены — в настройках соединения и заголовках HTTPЗапрос (HTTP-запросы из 1С).
  • Электронная подпись — для юридически значимого обмена (банк, ЭДО, отчётность).
  • Журнал регистрации и собственные регистры сведений — фиксация пакетов, статусов, тел ошибок.
  • Тест на копии базы и тестовых ключах API; смена контракта внешней системы — отдельная версия обработки обмена.

Типичные ошибки внедрения

  1. Долгий HTTP в модуле формы — блокировка UI; перенос на сервер и фон.
  2. Нет идемпотентности — повторная отправка создаёт дубликаты документов; нужны ключи обмена и проверка "уже загружено".
  3. Разные модели данных — сопоставление через таблицу соответствий (GUID, артикул, ИНН), а не "на глаз" по наименованию.
  4. Игнорирование версий API маркетплейсов и банков — ломается после обновления контрагента.

Смежные темы: запросы и СУБД, ошибки и транзакции, первая программа.


Мини-чеклист перед запуском в прод

  • Определён формат входящих и исходящих данных (JSON/XML, обязательные поля, версии).
  • Добавлены таймауты и ограничение повторов.
  • Есть идемпотентный ключ, чтобы повтор не создавал дубликаты.
  • Логируются запрос, ответ, код состояния и контекст документа.
  • Подготовлен сценарий ручного восстановления для ошибочных пакетов.

Практика 15 минут

Смоделируйте простой интеграционный контур по HTTP-запросы из 1С:

  1. Функция отправки HTTPЗапрос с таймаутом.
  2. Проверка КодСостояния.
  3. Логирование статуса и текста ошибки в журнал регистрации.
  4. Возврат вызывающему коду понятного результата (Истина/Ложь или структура статуса).

Проверка себя

  • Где в вашем обмене обеспечивается идемпотентность?
  • HTTP-сервис или OData — что выберете для витрины справочников?
  • Как вы поймёте, что пакет "потерялся", а не просто задержался?

Основа по протоколу

Базовый разбор HTTP и HTTPS — HTTP как основа веб-интеграций.

Протокол OData в общем виде — OData — протокол открытых данных.