Odoo в нашей связке — главная учётная система: документы рождаются в ней. Но часть контура по-прежнему живёт в 1С:Бухгалтерии, и данные из Odoo туда нужно переносить — без ручного перебивания. Собрали мост «Odoo → 1С» и начали гонять по нему первые документы.
Odoo — источник, 1С — приёмник
Направление обмена одно: мастер данных — Odoo, 1С только принимает. На стороне Odoo работает модуль-коннектор — он отдаёт данные по запросу в виде JSON: контрагенты, номенклатура, счета покупателям и поставщикам, счета-фактуры, платежи. 1С сама ходит за очередной порцией и забирает только то, что ещё не выгружалось.
Обработка на стороне 1С
Со стороны 1С обмен ведёт внешняя обработка — форма плюс модуль на встроенном языке. Она подключается к Odoo по защищённому каналу, авторизуется по токену и раскладывает пришедшее по документам: «Загрузить контрагента», «Номенклатуру», «Счёт покупателю», «Счёт поставщику», «Счёт-фактуру», «Платёж» — и отдельная кнопка «Загрузить всё» для полного прохода. Есть и «Проверить соединение», чтобы сразу видеть, что канал жив.
Защита от дублей
Каждый загруженный документ помечается в комментарии меткой вида Odoo <тип> id=… — по ней обработка понимает, что этот документ из Odoo уже приходил, и не создаёт его заново. В метку заложена и версия, так что при изменении документа на стороне Odoo его можно будет обновить, а не задвоить.
Где мы сейчас
Пока идём в тестовом режиме: намеренно тянем по одному документу каждого типа, чтобы глазами сверить — приходит ровно то, что нужно, и в те же поля. Автоматическое подтверждение обработанных документов и непрерывная очередь — следующий шаг; сейчас важнее убедиться в корректности переноса, чем в его скорости.
Итог
Мост между Odoo и 1С уже поднят и передаёт живые документы. Осталось снять «ручник» с очереди — и обмен пойдёт потоком, без ручного ввода на стороне 1С.