Автоматический обмен между 2 разными базами через обработку "Универсальный обмен данными XML"

01.05.23

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Пример реализации автоматического обмена между УТ и БП через обработку "Универсальный обмен данными XML".

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Обработка выгрузки из УТ
.epf 10,56Kb
0
0
1 SM
Скачать Купить за 1 850 руб.
Обработка загрузки в БП
.epf 7,67Kb
0
0
1 SM
Скачать Купить за 1 850 руб.
Архив содержит обработку выгрузки и загрузки.
.zip 13,32Kb
4
4
1 SM
Скачать Купить за 1 850 руб.

Данная статья рассчитана на:

1) минимальные навыки работы с КД2, т.к. необходимо будет дорабатывать правила обмена, если правил нет то их необходимо будет создать самостоятельно.

2) Обработки выгрузки/загрузки служат как пример, код которого можно скопировать и немного доработав под свои нужды  автоматического запуска.

 

Привет всем. Решил поделиться реальным примером автоматизации обмена через правила КД2.

Задача: Сделать автоматический обмен из УТ в БП(Подобный алгоритм подойдет и для обратного обмена из БП в УТ).

При решении задачи использовались Бухгалтерия предприятия 3.0.134.23 в дальнейшем БП и Управление торговлей 10.3.29.1 в дальнейшем УТ. 

 

Приступим:

Заходим в конфигурацию в УТ и  добавим новый план обмена, заполним состав документами, которые будут участвовать в обмене

 

 

Для удобства создаем форму списка и добавляем кнопку "НастройкиОбменов" (можно ее скопировать с других обменов, как сделал я. Но если не хотите, то добавляйте просто кнопку. Картинка кнопки называется "МониторСостоянияОбмена"). 

У кнопки создаем процедуру с кодом:

 

	Если ЭлементыФормы.ПланОбменаСписок.ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ПроцедурыОбменаДаннымиКлиент.ПоказатьЗарегистрированныеИзмененияДляУзла(ЭлементыФормы.ПланОбменаСписок.ТекущиеДанные.Ссылка, ЭтаФорма);


Далее заходим в режим предприятие в УТ и добавляем свой узел в план обмена.

 

 

Обязательно вручную назначьте у своего и узла по умолчанию код. Если у узла по умолчанию не назначить код, то потом при обращении к своему узлу могут возникнуть ошибки (с чем связано подобное поведение, не разбирался).

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

 

Правила:

Открываем наши правила в КД2(если правил нет, то их надо создать. Как создать правила обмена между базами в этой статье не затрагивается, предполагается что они уже присутствуют) и добавляем в нашу конвертацию параметр. Он будет служить нам для возможности снятия с регистрации документа в УТ.

 

 

Если нам по каким-то условиям надо документ снять с регистрации в УТ, то перед выгрузкой делаем проверку, ставим Отказ и удаляем регистрацию объекта в нашей базе (в моем случае в УТ).

 

 

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

 

 

В ПКО добавляем подобный код. Здесь если все прошло успешно, то мы добавляем этот документ на снятие с регистрации (в моем случае в УТ).

 

 

После загрузки мы будем снимать записанные документы с регистрации (в моем случае в УТ).

 

 

Добавляем новый "Алгоритм", который будем выполнять. Код можно вставить и после загрузки, здесь уже на ваше усмотрение.

 

 
 Код алгоритма "СнятьРегистрациюИзмененийВУТ".

 

Предварительные действия перед обменом описал.

Обработку загрузки и выгрузки добавил ниже.

Обработка выгрузки

См. также

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    137993    759    292    

404

Перенос данных 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    162646    368    273    

358

Перенос данных 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 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

45650 руб.

15.04.2019    70290    173    146    

116

Перенос данных 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    21735    144    40    

104

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

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

45650 руб.

31.10.2014    234042    93    330    

301

Перенос данных 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    62307    50    27    

80

Перенос данных 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    48349    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    184457    572    509    

516
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Pro-tone 165 03.05.23 11:54 Сейчас в теме
Ну не предназначен кукурузник для ведения боевых действий. Конечно, можно на него посадить двух автоматчиков, но результат работы такого "истребителя" будет не сильно хорош.
Обмен по СОМ к тому же регулярный это самое плохое что можно придумать. Я уже не говорю что версии платформ могут у баз быть разными (а часто это именно так), в этом случае нужно долго танцевать с бубном и регистрировать 2 версии comctrl.dll в реестре Windows. Сама обработка универсального обмена в режиме СОМ работает не совсем корректно, заваливаясь по ошибке там где файловый обмен без проблем проходит. Плюс к этому не видно номеров сообщений, нет отработки события "удаление объекта". В идеале должно быть логирование при каждой итерации обмена что было выгружено, а ещё более лучшим решением будет автоматическая отправка на почту письма если обмен завершился с ошибкой с текстом ошибки. Параметры подключения в вашем случае захардкоживаются в правила обмена что тоже остановит обмен если имя сервера решат изменить (если точнее, имя кластера серверов в консоли администрирования), а такое хоть и нечасто, но бывает. Файловый обмен лишён этих недостатков, ему главное чтоб была доступна сетевая папка. Так что полноценным автоматическим обменом назвать это нельзя. Но как временное решение для одностороннего обмена это имеет право на жизнь.
В числе моих поделок есть подсистема обмена данными по правилам КД2 которая приносит в любую конфигурацию возможность регулярного обмена с полным функционалом независимо от версии платформ и толщины клиента.
_Ramzes; dsdred; cheshirshik; viktor3d; +4 Ответить
2. kvaleksandr 24 04.05.23 08:12 Сейчас в теме
(1) Спасибо за комментарий. То что вы описали не требовалось в рамках моей задачи. Я поделился тем как автоматизировал обмен и это работает без каких-либо проблем и заморочек.

Можно придумать кучу минусов подобного решения в текущем состоянии как оно есть сейчас, но факт остается фактом. Оно работает и у меня проблем с обменом не наблюдается.

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

COM как вариант можно заменить на:
1) веб-сервис
2) запись в файлы
3. yasaniok 06.05.23 08:34 Сейчас в теме
(2)для тех, кто не знает с чего начать и ни разу такого не делал, статья полный 0. Вообще не понятно ничего.
На каком скрине БП, на каком УТ, где КД, скрины обрезаны, всё заблюрено. Откуда взялись "наши правила", которые нужно открыть в КД. Новички не знают, что такое КД в принципе.
Сами перечитайте статью.
4. kvaleksandr 24 06.05.23 09:36 Сейчас в теме
(3) Спасибо за ваше замечание.
6. cheshirshik 66 07.05.23 17:17 Сейчас в теме
(2)

Согласен с замечанием. Ещё добавлю, что сом будет работать только на Винде. Если сервер переедет на Линукс, то все. Ещё сом достаточно медленная технология. Анахронизм. Удивительно, что до сих пор на инфостате полно статей по использованию.
7. acces969 350 10.05.23 08:50 Сейчас в теме
(6) COM медленный? Не замечал такого, сколько работал в своей консоли запросов (https://infostart.ru/public/1640927/). Может быть, медленно из-за того, что COM соединение создавалось по несколько раз за вызов во время выполнения некоторой работы?
10. cheshirshik 66 10.05.23 16:20 Сейчас в теме
(7) Да. Когда появляется некий посредник между базой и клиентом/сервером, то имхо работа с этой технологией становится медленной. Вы скорее всего не переносили большие объемы данных. Поэтому у вас СОМ "нормально" работает. Но... я бы эту технологию сегодня использовать бы не стал по причинам описанным выше.
11. acces969 350 11.05.23 06:22 Сейчас в теме
(10) Какой же способ тогда быстрый? Внешние источники данных? Запись и чтение в промежуточных базах данных MySql?
12. cheshirshik 66 11.05.23 11:29 Сейчас в теме
(11)

HTTP сервисы, КД 2.0, КД 3.0 (при грамотном подходе к созданию правил обмена).
13. acces969 350 11.05.23 14:02 Сейчас в теме
(12) Не хочу спорить, но теоретически должно быть иначе. COM-соединение, это сеанс во внешней БД. Исполнение платформой команд чтения-записи, отправленных по COM-соединению, должно производиться быстрее, чем выполнение этих же операций через интерфейсы http и enterprise data и тем более - через правила обмена на конвертации данных 2.0. Надо будет провести расследование и написать статью с разбором и замерами, интересная тема.
14. cheshirshik 66 11.05.23 16:05 Сейчас в теме
(13)

Я бы не стал тратить время. Вот честно. СОМ - это устаревшая технология. А ее киллер финча - это платформа на Винде. Все. Дальше уже особо-то обсуждать будет нечего. Ваше решение зависит от платформы, а писать надо код так, чтобы работал везде, а не только на платных ОС от Майкрософт.
acces969; +1 Ответить
5. cheshirshik 66 07.05.23 17:11 Сейчас в теме
С боевым крещением. Я про опыт с кд 2.0.
8. kvaleksandr 24 10.05.23 12:37 Сейчас в теме
(5) Спасибо. Раньше думал что КД2 это сложно и правила ставили в ступор, но постепенно втянувшись я понимаю что написать правила на КД2 это так просто и быстро по ним можно сделать любой обмен между разными базами.
cheshirshik; +1 Ответить
9. cheshirshik 66 10.05.23 16:17 Сейчас в теме
(8) Ну я бы не сказал, что там все так уж просто. Надо воспринимать обмен, как обработку выгрузки/загрузки данных через ХМЛ, тогда все встанет на свои места. Это я к тому, что тот кто ругает обмен данных через КД, просто не умеет его готовить. Если будут затыки и затупы по обменам, то см. в отладке. Там же можно найти много интересного. Например те же запросы в циклах.
15. Tarlich 116 11.10.23 13:52 Сейчас в теме
А если обмен не прошел а из плана обмена уже удалилось инфа ?
Оставьте свое сообщение