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

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! 20%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 22338 руб.

12.06.2017    141463    798    297    

419

SALE! 10%

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

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

55778 50200 руб.

04.08.2015    166425    332    277    

373

SALE! 10%

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

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

35000 31500 руб.

15.12.2021    23985    169    51    

127

SALE! 10%

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

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

35000 31500 руб.

23.07.2020    51179    228    69    

185

SALE! 10%

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

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    36568    94    66    

89

SALE! 10%

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171154    303    257    

378

SALE! 15%

Перенос данных 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, почту.

15300 13005 руб.

18.02.2016    186854    589    509    

526

Перенос данных 1C Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет заработной платы 3.0», «КАМИН:Зарплата для бизнеса 4.0» и «КАМИН:Зарплата 5.0» на конфигурацию «Зарплата и управление персоналом» версии 3.1.

12000 руб.

25.09.2016    80631    312    250    

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

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

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

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

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

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

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

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