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

01.05.23

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

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

Скачать файл

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

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

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

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

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

 

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

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

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

 

Приступим:

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

 

 

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

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

 

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


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

 

 

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

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

 

Правила:

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

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

 

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

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

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

См. также

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    166466    333    277    

373

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    141520    798    297    

419

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    24021    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    51265    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    36591    94    66    

89

SALE! 10%

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

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

55778 50200 руб.

29.10.2018    56208    59    105    

61

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    171176    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    186880    589    509    

526
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Pro-tone 169 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 70 07.05.23 17:17 Сейчас в теме
(2)

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

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

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