В любой российской компании 1С уже стоит. Поэтому вопрос почти никогда не звучит как «интегрировать ли» — он звучит как «что куда передавать и кто из двух систем главный».
Второй вопрос и есть настоящий. Технически обмен настраивается за дни. Разбирать расхождения, возникшие из-за того, что главного не назначили, можно годами.
Сначала источник истины, потом протокол
Правило простое. По каждому справочнику и каждому документу назначается ровно одна система, которая имеет право его менять. Вторая получает копию и работает с ней только на чтение. Двусторонний обмен допустим лишь там, где системы правят разные поля одного объекта, и эти поля перечислены явно.
Если на вопрос «кто главный по остаткам» в компании отвечают «ну, вообще обе», интеграция будет источником проблем, а не решением.
Способы обмена
Обмен файлами
Выгрузка XML или CSV по расписанию. Простой, надежный, переживает любые обновления. Минус — задержка и отсутствие обратной связи об ошибке. Подходит для справочников, которые меняются редко.
OData
Встроенный в 1С интерфейс, включается настройкой без программирования на стороне 1С. Хорош для чтения справочников и документов. Ограничен в сложной логике и чувствителен к правам доступа.
HTTP-сервисы 1С
Свои методы, написанные на стороне 1С под конкретную задачу. Самый гибкий вариант: логика проверки и записи остается там, где живут данные. Требует разработчика 1С и сопровождения при обновлениях.
Очередь сообщений
Системы обмениваются через брокер. Нужен, когда объем большой, а простой недопустим: если 1С недоступна, сообщения копятся и обрабатываются позже. Дороже в настройке, зато не теряет данные.
На практике почти всегда получается комбинация. Справочники — раз в сутки файлом или через OData, оперативные события — сразу через HTTP-сервис, тяжелые потоки — через очередь.
COM-соединение и прямое подключение к базе 1С стоит рассматривать последними. Первое привязывает к Windows и ломается на обновлениях, второе нарушает лицензионные условия и гарантированно приведет к порче данных, потому что в обход механизмов платформы не работают проверки и блокировки.
Грабли, на которые наступают все
- Ключ сопоставления. По чему система понимает, что контрагент из 1С и контрагент у нее это один и тот же? По ИНН, по коду, по внутреннему идентификатору? Если договоренности нет, через месяц будет два Иванова и три ООО «Ромашка».
- Повторная обработка. Сообщение ушло, ответ не дошел, отправили еще раз. Если обмен не идемпотентный, появится второй документ на ту же сумму. Лечится уникальным идентификатором операции на стороне отправителя.
- Обновления конфигурации. Типовая конфигурация обновляется регулярно, и доработанные объекты приходится проверять. Чем меньше изменений в самой 1С, тем дешевле жизнь: логику лучше держать снаружи.
- Блокировки и производительность. Массовая выгрузка в рабочее время кладет базу. Тяжелые обмены переносят на ночь или делят на порции.
- Время и часовые пояса. Компании с филиалами регулярно получают документы, датированные вчерашним днем. Фиксируйте, в каком поясе хранятся даты, до начала работ.
- Что считается ошибкой. Обмен, который молча пропускает плохие записи, хуже обмена, который останавливается. Нужен журнал и уведомление живому человеку.
Где здесь ИИ
Две конкретные задачи, обе на стыке.
Первая — сопоставление справочников при первичном запуске. Номенклатура в 1С и в старой системе почти никогда не совпадает по написанию: «Труба ПНД 110 SDR17» и «труба пнд d110 sdr 17» это одна позиция. Раньше это сводили руками месяцами, теперь модель предлагает пары, а человек подтверждает спорные. Полностью доверять здесь нельзя, но объем ручной работы сокращается в разы.
Вторая — разбор входящих документов до попадания в 1С. Счета и накладные от поставщиков в PDF превращаются в строки поступления, а человек проверяет и проводит. Это тот случай, когда ИИ стоит именно перед 1С, а не внутри нее.
Что должно быть в задании на интеграцию
- Перечень объектов обмена и направление по каждому.
- Источник истины по каждому объекту, отдельно — по каждому спорному полю.
- Ключ сопоставления записей.
- Частота и способ: по расписанию, по событию, по запросу.
- Поведение при недоступности второй системы.
- Что происходит с конфликтом: побеждает последний, побеждает источник, уходит человеку на разбор.
- Журнал и уведомления об ошибках, с указанием кто их читает.
- Как проверяется корректность — сверочный отчет по количеству и суммам.
Последний пункт часто забывают, а он решает главное: без регулярной автоматической сверки расхождение обнаруживается на годовой инвентаризации.
Как проверять готовую интеграцию
Интеграция считается сданной не тогда, когда данные поехали, а тогда, когда есть способ убедиться, что они едут правильно.
- Сверочный отчет. Раз в сутки сравнивает количество и суммы по ключевым объектам в обеих системах и показывает расхождения. Без него о проблеме узнают от бухгалтера в конце квартала.
- Тест на повтор. Одно и то же сообщение отправляется дважды. Правильное поведение — второй раз ничего не создается.
- Тест на отказ. 1С выключают на час. Правильное поведение — сообщения копятся и обрабатываются после включения, а не теряются.
- Тест на грязные данные. Отправляется запись с пустым обязательным полем и с неизвестным контрагентом. Обмен должен не упасть, а отложить запись и сообщить.
- Нагрузочная проверка. Выгрузка объема месяца за раз, с замером времени и влияния на работу пользователей.
Частый сценарий: 1С и внешние пользователи
Отдельно стоит случай, когда к данным 1С нужен доступ снаружи — личный кабинет клиента, мобильное приложение сотрудника, сайт с остатками.
Прямой доступ к 1С из интернета делать не стоит по трем причинам: нагрузка, лицензии на подключения и безопасность. Рабочая схема другая — между 1С и внешним миром ставится своя система, которая держит копию нужных данных, обслуживает пользователей и обменивается с 1С в фоне.
Побочный эффект такой схемы приятный: внешние пользователи перестают зависеть от того, идет ли сейчас в 1С закрытие месяца или обновление конфигурации.
Частые вопросы
Нужен ли для интеграции программист 1С
Если обмен идет через файлы или OData — нет, достаточно настройки. Если нужны свои HTTP-сервисы или нестандартная логика на стороне 1С — да. Часто достаточно нескольких дней его времени на весь проект.
Сломается ли обмен при обновлении 1С
При типовом обновлении и обмене через стандартные механизмы — нет. Ломается то, что сделано доработкой конфигурации. Поэтому логику стараются держать на внешней стороне.
Можно ли вообще обойтись без 1С
Регламентированный учет проще оставить в 1С — он меняется вместе с законодательством, и переписывать его под себя невыгодно почти всегда. Операционную часть при этом разумно держать там, где ей удобно. Разбор этого выбора — в отдельной статье.
Спроектируем обмен так, чтобы цифры сходились
Расскажите, что стоит сейчас и что должно попадать из системы в систему. В ответ — карта обмена с источниками истины по каждому объекту, выбранный способ по каждому потоку и оценка работ.
Сверочный отчет закладывается в работу сразу — без него интеграцию нельзя считать сданной.