← Блог

Интеграция с 1С — как связать систему с учетом и не сломать его

Источник истины важнее протокола: что передавать, кто главный по каждому справочнику и где рождаются расхождения

В любой российской компании 1С уже стоит. Поэтому вопрос почти никогда не звучит как «интегрировать ли» — он звучит как «что куда передавать и кто из двух систем главный».

Второй вопрос и есть настоящий. Технически обмен настраивается за дни. Разбирать расхождения, возникшие из-за того, что главного не назначили, можно годами.

Сначала источник истины, потом протокол

Направления обмена между 1С и собственной системой Слева 1С, справа своя система. Контрагенты и номенклатура идут из 1С, заказы и факт выполнения — из системы, взаиморасчеты идут в обе стороны и отмечены как спорное место. 1Срегламентированныйучет своя системаоперационнаяработа контрагенты номенклатура и цены заказы и факт выполнения взаиморасчеты — спорное место ! источник — 1С источник — система
Каждая стрелка это договоренность, а не техническая деталь. Двусторонний обмен без назначенного источника истины — вот отмеченное место, где потом рождаются расхождения.

Правило простое. По каждому справочнику и каждому документу назначается ровно одна система, которая имеет право его менять. Вторая получает копию и работает с ней только на чтение. Двусторонний обмен допустим лишь там, где системы правят разные поля одного объекта, и эти поля перечислены явно.

Если на вопрос «кто главный по остаткам» в компании отвечают «ну, вообще обе», интеграция будет источником проблем, а не решением.

Способы обмена

Обмен файлами

Выгрузка XML или CSV по расписанию. Простой, надежный, переживает любые обновления. Минус — задержка и отсутствие обратной связи об ошибке. Подходит для справочников, которые меняются редко.

OData

Встроенный в 1С интерфейс, включается настройкой без программирования на стороне 1С. Хорош для чтения справочников и документов. Ограничен в сложной логике и чувствителен к правам доступа.

HTTP-сервисы 1С

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

Очередь сообщений

Системы обмениваются через брокер. Нужен, когда объем большой, а простой недопустим: если 1С недоступна, сообщения копятся и обрабатываются позже. Дороже в настройке, зато не теряет данные.

На практике почти всегда получается комбинация. Справочники — раз в сутки файлом или через OData, оперативные события — сразу через HTTP-сервис, тяжелые потоки — через очередь.

COM-соединение и прямое подключение к базе 1С стоит рассматривать последними. Первое привязывает к Windows и ломается на обновлениях, второе нарушает лицензионные условия и гарантированно приведет к порче данных, потому что в обход механизмов платформы не работают проверки и блокировки.

Грабли, на которые наступают все

  1. Ключ сопоставления. По чему система понимает, что контрагент из 1С и контрагент у нее это один и тот же? По ИНН, по коду, по внутреннему идентификатору? Если договоренности нет, через месяц будет два Иванова и три ООО «Ромашка».
  2. Повторная обработка. Сообщение ушло, ответ не дошел, отправили еще раз. Если обмен не идемпотентный, появится второй документ на ту же сумму. Лечится уникальным идентификатором операции на стороне отправителя.
  3. Обновления конфигурации. Типовая конфигурация обновляется регулярно, и доработанные объекты приходится проверять. Чем меньше изменений в самой 1С, тем дешевле жизнь: логику лучше держать снаружи.
  4. Блокировки и производительность. Массовая выгрузка в рабочее время кладет базу. Тяжелые обмены переносят на ночь или делят на порции.
  5. Время и часовые пояса. Компании с филиалами регулярно получают документы, датированные вчерашним днем. Фиксируйте, в каком поясе хранятся даты, до начала работ.
  6. Что считается ошибкой. Обмен, который молча пропускает плохие записи, хуже обмена, который останавливается. Нужен журнал и уведомление живому человеку.

Где здесь ИИ

Две конкретные задачи, обе на стыке.

Первая — сопоставление справочников при первичном запуске. Номенклатура в 1С и в старой системе почти никогда не совпадает по написанию: «Труба ПНД 110 SDR17» и «труба пнд d110 sdr 17» это одна позиция. Раньше это сводили руками месяцами, теперь модель предлагает пары, а человек подтверждает спорные. Полностью доверять здесь нельзя, но объем ручной работы сокращается в разы.

Вторая — разбор входящих документов до попадания в 1С. Счета и накладные от поставщиков в PDF превращаются в строки поступления, а человек проверяет и проводит. Это тот случай, когда ИИ стоит именно перед 1С, а не внутри нее.

Что должно быть в задании на интеграцию

  • Перечень объектов обмена и направление по каждому.
  • Источник истины по каждому объекту, отдельно — по каждому спорному полю.
  • Ключ сопоставления записей.
  • Частота и способ: по расписанию, по событию, по запросу.
  • Поведение при недоступности второй системы.
  • Что происходит с конфликтом: побеждает последний, побеждает источник, уходит человеку на разбор.
  • Журнал и уведомления об ошибках, с указанием кто их читает.
  • Как проверяется корректность — сверочный отчет по количеству и суммам.

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

Как проверять готовую интеграцию

Интеграция считается сданной не тогда, когда данные поехали, а тогда, когда есть способ убедиться, что они едут правильно.

  • Сверочный отчет. Раз в сутки сравнивает количество и суммы по ключевым объектам в обеих системах и показывает расхождения. Без него о проблеме узнают от бухгалтера в конце квартала.
  • Тест на повтор. Одно и то же сообщение отправляется дважды. Правильное поведение — второй раз ничего не создается.
  • Тест на отказ. 1С выключают на час. Правильное поведение — сообщения копятся и обрабатываются после включения, а не теряются.
  • Тест на грязные данные. Отправляется запись с пустым обязательным полем и с неизвестным контрагентом. Обмен должен не упасть, а отложить запись и сообщить.
  • Нагрузочная проверка. Выгрузка объема месяца за раз, с замером времени и влияния на работу пользователей.

Частый сценарий: 1С и внешние пользователи

Отдельно стоит случай, когда к данным 1С нужен доступ снаружи — личный кабинет клиента, мобильное приложение сотрудника, сайт с остатками.

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

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

Частые вопросы

Нужен ли для интеграции программист 1С

Если обмен идет через файлы или OData — нет, достаточно настройки. Если нужны свои HTTP-сервисы или нестандартная логика на стороне 1С — да. Часто достаточно нескольких дней его времени на весь проект.

Сломается ли обмен при обновлении 1С

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

Можно ли вообще обойтись без 1С

Регламентированный учет проще оставить в 1С — он меняется вместе с законодательством, и переписывать его под себя невыгодно почти всегда. Операционную часть при этом разумно держать там, где ей удобно. Разбор этого выбора — в отдельной статье.

Спроектируем обмен так, чтобы цифры сходились

Расскажите, что стоит сейчас и что должно попадать из системы в систему. В ответ — карта обмена с источниками истины по каждому объекту, выбранный способ по каждому потоку и оценка работ.

Обсудить интеграцию

Сверочный отчет закладывается в работу сразу — без него интеграцию нельзя считать сданной.

Дальше по теме