Временная интеграция

25.06.24

Интеграция - Перенос данных 1C

В этой статье хочу представить на ваш суд решение по интеграции, которое было реализовано на одном из проектов. Но, как говорил недавно в интервью один известный человек: сначала позвольте мне небольшую историческую справку, ибо без неё картинка будет неполной.

Кстати, о картинках. Хотелось бы показать вам их в статье, но все картинки, имеющие отношение к делу, под NDA, поэтому будет много букв. Итак, поехали.

С чего всё началось

Довелось мне тут делать интересный проект. Интересно в нём было всё, начиная с того, откуда он вообще появился. Как вам такая математическая задачка:

Из состава некоего холдинга Х выходит группа компаний Y со скоростью 1000 км/сек...

То есть задача была обособить все процессы и структуры группы компаний Y от холдинга Х в максимально сжатые сроки. В том числе и все ИТ-решения. В том числе, само собой, и все системы 1С.

И, казалось бы – ну обособить и обособить, чего сложного? Найдем мы на своих серверах место под ваши базы 1С и всё остальное. А, нет. Базы 1С то находятся у холдинга Х. И доступ к ним он предоставляет по SaaS модели. Ну то есть: заходите в 1С в режиме предприятия, смотрите – это пожалуйста. Но в конфигуратор мы вас не пустим и архивы баз передать не сможем.

Кроме того, в числе баз, которые нужно было обособить, числилось несколько самописных систем (вот прямо натурально с нуля), которыми активно пользовался фронт-офис. Это, так называемые, системы биллинга (и по совместительству оперативного бюджетирования) фронт-офиса. Отключение их, даже на короткий промежуток времени (особенно в периоды закрытия месяца) чревато откатом в каменный век бесконечных ручных сверок, ручных выставлений счетов и огромными потерями в рублевом эквиваленте, т.к. все данные биллинга нужны в оперативном режиме. Вместе с этим предстояло забрать классический «посмертный» бухучет, ЗУП и еще пару мелочей вроде вялотекущего документооборота и бюджетов бэк-офиса.

Есть ли у нас план?

Было решено разделить проект переноса на три последовательных спринта: 

  • документооборот, бюджеты бэк-офиса

  • бухгалтерия, зарплаты и казначейство

  • биллинг, бюджеты фронт-офиса

Первый спринт преодолели относительно без проблем. Не буду тут про него писать, ибо к теме статьи не относится.

Когда мы планировали второй спринт – пришло понимание, что какое-то время (4-6 месяцев) группа компаний Y будет жить по принципу «одна нога здесь, другая там». То есть весь бэк-офис (бухгалтерия, зарплаты и казначейство) переходит к нам, а весь фронт-офис со своим оперативным биллингом пока остается на облаке у холдинга Х. Между этими двумя частями есть связь – фронт отдает бэку данные о полученных и выставленных счетах для отражения этих операций в бух учете. Тогда и родилась идея реализовать решение с незатейливым кодовым названием «временная интеграция».

Тому, что интеграция будет временной, способствовали следующие факторы:

  • Нужно было сделать быстро, т.к время на перенос всех сервисов было очень ограниченно.

  • Не было возможности самостоятельно проводить работы на поляне холдинга Х. Но была договоренность с их ИТ-службой о предоставлении нам помощи в виде консультаций и возможно даже о проведении каких-то небольших доработок систем холдинга Х.

  • В конце концов, это решение должно прожить 6-8 месяцев, пока мы не завершим перенос полностью.

Сложности и успехи коммуникаций

Я до сих пор помню, с каким видом на меня смотрели коллеги из ИТ-службы холдинга Х, когда я в первый раз заговорил о том, что нам совместно в рамках проекта таки придется делать интеграцию. По реакции было видно - коллеги рассчитывали на то, что мы быстренько сгрузим всё своё из их систем в ексель и уйдем. Беда была в том, что фронт-офису холдинга Y было некуда уходить – системы-то самописные.

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

В следующую пару недель мы разбирались с тем, что где лежит в их системе. Благо коллеги из холдинга не игнорировали наши вопросы и действительно помогали с пояснениями. В общем, к концу второй недели у меня на руках был текст запроса из консоли, который выбирает нужные нам данные в одну таблицу (124 колонки, между прочим – на момент первой версии запроса). Вместе с этим у меня было понимание, что мы даже с помощью адм. ресурса не сможем продавить решение, чтобы холдинг Х в своей системе делал механизм регистрации изменений и всю остальную красивую типовую его обвязку ради группы компаний Y, которая уже одной ногой вышла из контура.

 

Любая проблема решается просто. Если простое решение не проходит, ищи еще более простое (С) Джейсон Стэтхэм

 

Мы договорились о том, что холдинг Х в своей системе делает:

  1. Константу, которая хранит текст нужного нам запроса,

  2. В консоли запросов три дополнительных кнопки:

  • получить текст запроса из константы

  • сохранить текст запроса в константу

  • выгрузить результат запроса в файл (функция ЗначениеВФайл)

  1. Регл задание, которое раз в час выполняет запрос из константы и сохраняет его на SFTP ресурсе.

Это всё, что нам оказалось нужно от коллег из холдинга Х, чтобы реализовать нашу временную интеграцию.

Как всё устроено

Далее на своей стороне мы написали обработку, которая по расписанию забирает текстовый файл с SFTP ресурса холдинга. Благодаря использованию ЗначениеИзФайла никакого дополнительного парсинга писать не потребовалось. Плюс к этому на своей стороне написали логику создания комплектов справочников и документов на основании полученных данных.

Архитекторы и сеньоры разрабы – вытрите кровь из глаз и погодите ругаться. Конечно же, при проектировании такого решения мы понимали все его очевидные минусы. Прежде всего это отсутствие механизма регистрации изменений и обратной квитанции о приёме. Но у нас практически не было выбора, а необходимость интеграции была.

Все синтетические тесты были пройдены, помарки устранены и предстоял запуск нашего уродца в прод. Ожидания мои были самыми пессимистичными. Из головы на регулярной основе выгонялась мысль о том, что эта вся авантюра не взлетит и придется в итоге экстренно сажать отдельного человека на “интеграцию”, методом ctrl+c, ctrl+v.

Где то когда то прочитал, что человеческое счастье – это величина не абсолютная, а относительная. То есть мы позитивно реагируем не на само хорошее событие, а на то, что хорошее оно по сравнению с нашими ожиданиями. Нам может быть хорошо просто от того, что перестало быть плохо.

Как то так примерно получилось и с нашей временной интеграцией. После запуска в прод она оказалась очень и очень стабильна:

  • Механизм приема-передачи файлов через sftp работал без сбоев, как часы (знаю,вы скажете, что так не бывает, но это правда)

  • Было обеспечено необходимое быстродействие – глубина выборки данных в источнике 50 дней от текущей даты закрывала все бизнес требования к механизму и не нагружала систему избыточными запросами

  • В случае изменения бизнес логики у меня была возможность самостоятельно поменять через консоль текст запроса в источнике – мне не приходилось беспокоить коллег из холдинга Х и подолгу ждать от них реакции

  • Также была возможность оперативно изменить логику формирования пакета данных в приемнике, т.к. это была внешняя обработка

  • Если случится какой то сбой в регл. задании, то я всегда могу сделать загрузку/выгрузку вручную (из консоли через файл) – я думал это будет основной канал передачи, но нет.

 

Итоги эксплуатации

На сегодняшний день наша временная интеграция работает уже 4 месяца и проблем от неё существенно меньше, чем ожидалось на старте. А мы через 3 месяца планируем закончить проект по обособлению ИТ-сервисов группы компаний Y. И даже как то грустенько осознавать, что придется её таки отключить.

На этом у меня всё.

Интересно было бы почитать ваши комментарии и ответить на вопросы.

интеграция SaaS холдинг обмен данными

См. также

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    137643    752    292    

401

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

45650 руб.

04.08.2015    162361    365    272    

357

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

34650 руб.

15.04.2019    69951    174    143    

115

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3.87.x и УТ 11.5.16.x

28000 руб.

23.07.2020    48108    208    64    

170

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

14580 руб.

18.02.2016    184273    570    509    

516

SALE! %

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос в продаже с 2015г., и мы постоянно работаем над его развитием. Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

45650 26673 руб.

24.04.2015    192093    139    240    

272

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бухгалтерский учет Управленческий учет Платные (руб)

Переход и перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:ERP Управление предприятием 2.5 и 1С:Комплексную автоматизацию 2.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.227.x), ERP 2.5 (2.5.16.x), КА 2.5 (2.5.16.x) .

28000 руб.

24.06.2020    62131    49    27    

79

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.228.x) и БП 3.0 (3.0.154.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    21557    139    40    

98
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SAShikutkin 6 25.06.24 16:33 Сейчас в теме
Интересная идея. Нужно будет запомнить.
2. gzharkoj 510 25.06.24 18:58 Сейчас в теме
Почему сразу уродец? В условиях неопределенности на начальных итерациях - это идеальное решение (быстрое, результативное), на мой взгляд. ЗначениеИзФайла/ЗначениеВФайл очень удобный функционал сериализации/десериализации, как разработчик, если нужно что-то куда-то перекинуть между 1Сками постоянно пользуюсь.
3. m7a3x 11 25.06.24 19:44 Сейчас в теме
(2)ну про уродца, это я любя 😁
4. gybson 26.06.24 10:29 Сейчас в теме
А смысл добавлять в конфигурацию константу, если можно добавить план обмена и настроить РБД?
5. user1880116 26.06.24 13:06 Сейчас в теме
(4)
добавить план обмена и настроить РБД?

Тогда бы не было бы говна и палок для гордости и чувства причастности к таинствам.
7. m7a3x 11 26.06.24 13:50 Сейчас в теме
6. m7a3x 11 26.06.24 13:49 Сейчас в теме
(4) Вы видимо невнимательно читали про условия, в которых это решение реализовывалось. План обмена, РБД и все остальные красивости никто в базе-источнике добавлять не собирался
9. Xershi 1500 27.06.24 00:16 Сейчас в теме
(6) а через расширение? Базу вы никак не могли посмотреть?
15. m7a3x 11 27.06.24 12:44 Сейчас в теме
(9) Никак, доступ только в режиме предприятия. Да и что в расширение добавлять то?
10. gybson 27.06.24 09:20 Сейчас в теме
(6) Константу же добавили.
14. m7a3x 11 27.06.24 12:44 Сейчас в теме
(10) Это немного разная трудоемкость работа. Правда же? Плюс как вы собрались делать РБД, если у вас конфигурации идентичной нет? Вам её никто не даст.
20. Xershi 1500 27.06.24 13:20 Сейчас в теме
(14) через РИБ можно было слизать, по крайней мере это первое что приходит на ум. Просто в реализации и запросы строить не нужно. Но на без рыбье и ваша идея подошла.
21. m7a3x 11 27.06.24 14:03 Сейчас в теме
(20) Так РИБа никакого изначально не было и делать бы его с той стороны никто не стал, т.к. конфу не отдавали
22. Xershi 1500 27.06.24 15:43 Сейчас в теме
(21) режим совместимости расширения не позволял? Или вам дали права на все метаданные без администрирования?
24. m7a3x 11 28.06.24 10:38 Сейчас в теме
(22) Мне вообще никаких прав не давали на конфигуратор. Только чтение данных в предприятии. Структуру конфигурации-источника возможно было изучить только через конструктор запросов в консоли запросов
25. Xershi 1500 28.06.24 12:00 Сейчас в теме
(24) Это ключевое что стоит отразить в статье. Какие конкретно были права у вашего пользователя и какой режим совместимости был. От этого можно отталкиваться велосипед ваше решение или единственный вариант как можно было забрать данные.
26. m7a3x 11 28.06.24 13:59 Сейчас в теме
(25) В статье есть об этом, даже в нескольких местах. Но вижу, что я недостаточно акцентировал на этом внимание.
8. sultbec 10 26.06.24 19:14 Сейчас в теме
Почему текст запроса не был в регламентном задании? Тем более что выгружала внешняя обработка в которой можно было прописать текст.
16. m7a3x 11 27.06.24 12:47 Сейчас в теме
(8) Внешняя обработка загружала. Выгружалось оно вообще не знаю чем, главное что выгружалось. У меня не было доступа в конфигуратор источника.

Насчет текста в регл. не совсем понял - это его где именно там хранить?
23. sultbec 10 28.06.24 06:50 Сейчас в теме
(16) тогда понятно, другого варианта не было
11. timeforlive 16 27.06.24 09:31 Сейчас в теме
Хорошее решение, можно пользоваться.
Подскажите, пожалуйста, а приведение типов к базе приемнику как выполняли?
Или у вас конфы одинаковые?
И выгрузка была без движений документов?
Какие сложности возникали при использоввнии такого решения?
12. TerveRus 27.06.24 09:59 Сейчас в теме
(11) если бы у них была конфа, то они бы выгрузили данные один раз и забыли о базе-источнике.

Не давать доступ к конфигуратору, бэкапам - это настоящее зло.
Какое оказалось начальство обидчивое, раз поставили такие условия.

И почему эти вопросы нельзя было утрясти на высшем уровне ДО того, как руководство рассорилось в хлам?
По другому я этот бред про секретные cf файлы никак объяснить не могу.
18. m7a3x 11 27.06.24 12:56 Сейчас в теме
(12) Всё верно. Чертыхались по этому поводу не раз. Это еще я описал только часть проблем, там по всей ИТ-инфраструктуре такое же.

Причина подозреваю в том, что у группы компаний Y не было свой ИТ-экспертизы, от сова совсем. Всё делалось руками ИТ холдинга.

cf нам не давали с официальной формулировкой - "это наша собственная разработка, мы не можем её передавать" (да, знаю, бред)

К слову сказать? dt бухгалтерий и ЗУП мы таки забрали, но даже там, перед тем как отдавать, коллеги из холдинга снесли все доработки и привели конфы к типовым
17. m7a3x 11 27.06.24 12:52 Сейчас в теме
(11) Конфы не одинаковые. Но были общие справочники (клиенты, бренды и др.). Само собой всё выгружалось в виде строк (ЗначениеВФайл) и при загрузке происходил поиск, по наименованию как правило, т.к. все общие справочники были условно постоянными.

Для некоторых справочников даже создавались новые элементы при загрузке.

Движений документов никаких не передавалось - в приемнике создавались Заявки на расход и Счета на оплату. Заявки на расход генерили свои движения при проведений уже в приемнике.

Сложности были в том, что мы модифицировали текст запроса (целых два раза за 4 месяца) из-за изменений в конфигурации базы источника
13. baracuda 2 27.06.24 10:46 Сейчас в теме
Нет ничего вечного чем временное решение)
19. m7a3x 11 27.06.24 12:57 Сейчас в теме
(13) согласен в принципе, но через 3 месяца посмотрим
Оставьте свое сообщение