gifts2017

Обмен по расписанию типовыми средствами.

Опубликовал Андрей Волин (kser87) в раздел Администрирование - Распределенная БД (УРИБ, УРБД)

Часто перед интеграторами стоит задача организовать автообмен (по расписанию или при наступлении какого-либо события) данными между различными конфигурациями. В этой статье я попробую изложить простую инструкцию, как это можно сделать средствами, заложенными в типовые конфигурации 1С (ЗУП, БП, УПП и т.д.).  Для обмена используется подсистема "Обмен данными" из БСП

Организацию полностью автоматического обмена данными я рассматриваю на примере обмена 1С: Управление Производственным Предприятием (УПП) ==> 1С: Бухгалтерия (БП) 2.0 с использованием произвольных правил обмена.

 

Есть 2 базы: 1С:УПП и Бухгалтерия предприятия 2.0. В УПП создаются ряд документов: Реализация товаров и услуг, Поступление товаров и услуг, Счета-фактуры. В бухгалтерии создаются документы по движению денежных средств: РКО, ПКО и платежки.

Структура документов в этих конфигурациях несколько отличается и поэтому были написаны произвольные правила обмена при помощи продукта "Конвертация данных 2.1".

Далее я попытаюсь пошагово объяснить, как можно при помощи типовых средств 1С: УПП и БП 2.0 настроить автоматический обмен данными.

 

ШАГ 1. Настройка узлов обмена.

Для обмена данными будет использовать план обмена "Полный". Для этого в БП зайдем операции ==> Планы Обмена ==> Полный.

План обмена ВСЕГДА содержит один предопределенный узел обмена. Здесь есть три момента:

1) В настройке обмена нельзя использовать предопределенный узел

2) Код этого узла по умолчанию не указан и обязательно должен быть задан

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

В Плане обмена "Полный" в БП выполнем следующие действия:

1) Укажем код и наименование предопределенного узла. Скажем, наименование = "Предопределенный", Код = 001.

2) Создадим новый узел обмена, назовем его "УПП" и зададим ему код 003.

 

Аналогично откроем план обмена "Полный" 1С: УПП и выполним следующие действия:

1) Укажем код и наименование предопределенного узла. Например, Наименование = "Предопределенный", код = "002".

2) Создадим новый узел обмена, назовем его "БП" и зададим ему код 003.

 

КОДЫ непредопределенных узлов обмена в базе УПП и БП должны совпадать.

 Создание узла плана обмена

ШАГ 2. Создание настройки автоматического обмена данными.

 

В базе УПП в интерфейсе "Полный". Меню «Сервис» ==> «Прочие обмены данными» ==> «Все настройки обмена данными».

 

В открывшейся форме выбрать пункт «Распределенные информационные базы» и нажать кнопку «Добавить». 

 Распределенные информационные базы

В появившемся окне необходимо указать наименование настройки. В поле «Узел» необходимо выбрать план обмена «Полный» и указать созданный ранее узел обмена.

Далее нужно отметить флажок «Обмен по правилам обмена» и нажать на кнопку «Загрузить правила из файла».

В отрывшемся диалоговом окне необходимо выбрать произвольные правила обмена данными .

 

В Поле «Тип обмена» выбрать пункт «Обмен через подключение к информационной базе» и указать параметры подключения: Тип инф базы, версию платформы, путь или адрес на сервере, пользователя и пароль. 

 

Далее нужно перейти на вкладку «Обмен по правилам» и нажать на кнопку «Загрузить настройки». В правилах обмена не должно быть правилом со способом выборки "произвольный запрос". Это приведет к ошибке

Загрузка настроек плана обмена

 

После загрузки настроек можно сохранить настройки и попробовать выгрузить данные. Для этого необходимо изменить какой-либо из объектов информационной системы, перечисленных в настройках выгрузки и нажать на кнопку "Выполнить обмен"  на панели формы.

 

ШАГ 3. Настройка обмена данными.

Для настройки автоматического обмена данными нужно перейти на вкладку «Автоматический обмен», нажать кнопку «Добавить». В появившемся окне можно задать расписание обмена (время, периодичность) или обмен данными при наступлении какого-либо события (например, вход пользователя в систему)

Настройка расписания обмена


Теперь можно проверить созданные настройки

New layer...

См. также

Подписаться Добавить вознаграждение

Комментарии

1. AlexBar (AlexBar) 27.06.12 15:10
Хорошая статья, полезная. Я как раз столкнулся с необходимостью организации одностороннего обмена между произвольной конфигурацией и УПП, желательно без доработки самой УПП.
2. Андрей Волин (kser87) 27.06.12 15:24
У меня была похожая ситуация. Небольшой совет: правила обмена тестируйте при помощи обработки "Обмен данными в формате xml", а не "Универсальный обмен данными в формате xml". Потому, что эта обработка используется при автоматической выгрузке средствами типовых конфигураций
3. Елена Мocкаленко (melenaspb) 21.08.12 14:55
Спасибо за статью.
Вроде все понятно, но что-то у меня не получается . Может вы мне поможете советом.
Пытаюсь сейчас организовать односторонний обмен данными между двумя базами , в обоих Бухгалтерия, но немного различаются конфигурации, РИБ не подойдет. Правила обмена создала в Конвертации. Создала в конфигураторе свой план обмена "Бухгалтерия-Экономисты" ( скопировала Полный, убрала галку РИБ).
Создала узлы для обмена:
В первой бухгалтерии ( откуда выгружаю) : предопределенный узел код 001, основной узел код 100.
Во второй бухгалтерии ( куда загружаю) : предопределенный узел код 002, основной узел код 100.
Обмен через каталог. Делаю выгрузку, создается файл для обмена Message_001_100.xml
А загрузка не идет.Пишет :Начат обмен данными по настройке "БП-Экономисты". Ни загрузка ни выгрузка данных не были произведены". Смотрю отладчиком - не находит файл для обмена, у меня создан файл Message_001_100 , а ищет Message_100_002. То ли я запуталась в кодах узлов, то ли еще что-то.
4. Андрей Волин (kser87) 22.08.12 18:01
попробуйте в одной из бухгалтерий поменять код основного узла
5. dimazzz84 (dimazzz84) 06.09.12 13:12
Такая же ошибка


ЗАГРУЗКА В ПРИЕМНИКЕ: {Обработка.ОбменДаннымиXML.МодульОбъекта(13705)}: Не найден узел обмена для загрузки данных. План обмена: Полный, Код: 002
6. Саша Сережкинов (Rubenovich) 08.10.12 18:24
Подскажите пожалуйсто откудо взять произвольное правило обменна данными, или я чтото не понимаю, может его надо создать, если надо создать то подскажите как, я не могу найти в просторах интернета неединого файла xml правил обмена или файлов конфигураций xml...
7. Андрей Волин (kser87) 08.10.12 18:35
Для этого существует конфигурация "Конвертация данных" (доступна на дисках ИТС)

Вообще правила обмена можно найти в шаблонах конфигураций. Например, в шаблоне УТ можно найти правила обмена УТ-БП разных версий.

На данном сайте много разных правил. Обычно называется просто "Правила обмена "Название конфигурации 1" - "Название конфигурации 2". Пример публикации: http://infostart.ru/public/153200/
8. Юрий Седых (suvolod) 16.11.12 10:20
куда делись все картинки к статье?
9. Андрей Волин (kser87) 16.11.12 10:22
10. Май МММ (may1c) 21.11.12 12:36
Статья хорошая. Первый этап по созданию планов обмена выполняется без проблем.
Но....
Мне нужно создать обмен между УТ и Ут.Конфигурации типовые и идентичные. Можно использовать обработку
Выгрузка данных в идентичную конфигурацию, но клиентам не совсем это удобно. Во-первых долго, во-вторых,
надо заходить в каждую базу.Дополнительно при выгрузке нужно чтобы не все документы выгружались
(ограничение по нумерации). Еще нужно, чтобы документы, которые присутствуют в обоих базах при изменении
не переносились.
Итак идеальный вариант полный план обмена РИБ. Но так как делаю методом тыка возникают следующие сложности:
1. Можно не ставить в базе источнике галку загружать. не приведет ли это к огромному росту журнала регистрации?
2. Пыталась создать пустой файл правил, чтобы загрузить его в при загрузки из базы приемника. Скопировала файл правил и просто очистила его. Не получилось - пустой файл программа не определяет как файл правил.
11. AlexBar (AlexBar) 21.11.12 17:59
Кто подскажет выход: настроил обмен между УПП и произвольной конфигурацией. Обмен идет в одну сторону: из УПП в произвольную. В УПП использую план обмена полный. Естественно в нем регистрируются все объекты, для которых для полного стоит авторегистрация. Выгружаются не все объекты. Выгрузка идет по правилам. При получении квитанции из произвольной конфигурации с регистрации снимаются только те объекты, которые были выгружены по правилам. Остальные объекты накапливаются в таблицах регистрации. Как их снимать с регистрации? По какой причине они не "гасятся"?
12. Евгений Федоров (FedorovEvg) 17.12.12 18:27
Картинки куда-то исчезли, а новичкам они помогли бы сильно...
13. Иван (ilkoder) 19.12.12 15:28
Статья хорошая, только по кодам узлов, особенно если будет обмен через файл, нужно уточнить. Если в первой базе у предопределенного узла код 001, а у второго элемента узла - код 002, то во второй базе должно быть наоборот - у предопределенного узла код 002, а у второго - код 001. При этом сообщения от первой базы ко второй - Message_001_002, а в обратную сторону Message_002_001.
Bagrat; 3sf; buzzzard; svilsa; Irrrochka; +5 Ответить
14. Светлана Юрусова (svilsa) 16.02.13 22:33
Статья хорошая, только по кодам узлов, особенно если будет обмен через файл, нужно уточнить. Если в первой базе у предопределенного узла код 001, а у второго элемента узла - код 002, то во второй базе должно быть наоборот - у предопределенного узла код 002, а у второго - код 001. При этом сообщения от первой базы ко второй - Message_001_002, а в обратную сторону Message_002_001.

Это правда, в этом пункте про нумерацию в узлах в статье неточность, хотя в целом статья очень хорошая
15. С. Дмитрий (spa07) 18.03.13 11:18
Статья интересная. А вот как быть когда односторонний обмен? Как очистить авторегистрацию в исходной базе при успешной загрузке в базу приемник?
16. Наталия Тимофеева (Шапокляк) 24.04.13 19:02
В плане обмена "Полный" стоит флажок "Распределенная информационная база". Очень прошу кого-нибудь ответить на вопрос - как можно по этому плану обмениваться между мягко говоря неодинаковыми конфигурациями? Разве РИБ не предполагает полного сходства конфигураций? Или обмен по правилам делает флажок РИБ нерабочим?
17. Владимир Соловьев (kvovka) 27.06.13 11:21
Статья хорошая, но не решила моей проблемы. у меня УТ переписанная всмерть и БГУ. Обмен односторонний, БГУ -> УТ. Есть правила из КД, с помощью обработки все замечательно переносится. Пробуя настроить обмен по этой статье получил такую ошибку - Неправильный формат сообщения. Действительно, заголовок БГУ создает не тот при выполнении обмена. Так и не смог уломать одинэску заработать. Пришлось допиливать обе конфы и искусственно пускать обмен через обработку УниверсальныйОбменДаннымиXML. Решение очень мне не нравится, но поджимали сроки. Так и не нашел решения проблемы с форматом((( Мож кто подскажет?
18. Андрей Волин (kser87) 27.06.13 11:39
(16) Шапокляк, Извините, что не долго не давал ответ на Ваш вопрос. Действительно механизм РИБ предполагает использование идентичных конфигураций. Или РИБ требует, чтобы хотя бы совпадали объекты в базе-источнике и приемнике. Но все равно механизм можно заставить работать если открыть настройки обмена через "Все функции". В обычном приложении откройте операции - справочники - настройки обмена данными
19. Андрей Волин (kser87) 27.06.13 11:42
(17) kvovka, Для тестирования правил обмена используйте обработку "Обмен данными в формате xml". (есть и такая!). Отличие обработки в том, что у нее в названии нет слова "Универсальный". Ну это шутка. Если серьезно, то эта обработка не поддерживает некоторые функции Универсального обмена. Например, там нельзя использовать правила выгрузки со способом выгрузки "Произвольный алгоритм". Проверьте, что такового у вас в правилах нет
20. Андрей Волин (kser87) 27.06.13 11:44
(18) kser87, Вообще при помощи механизма я настраивал обмен между БП 2.0 и полностью самописной конфигурацией. Так что скорее всего проблема у вас в том, что не там тестируете
21. Владимир Соловьев (kvovka) 27.06.13 12:39
(20) kser87, опыта настройки обмена не было, поэтому не исключаю, что мог где то галку не поставить или еще чего. Убил много времени, пытался по всякому, но не "шмогла, я, не шмогла"(с) :)

Прочитал в нете, что вот такой заголовок должен быть у xml, чтобы она читалась командой НачатьЧтение(с).

<?xml version="1.0" encoding="UTF-8"?>
<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
<v8msg:Header>
<v8msg:ExchangePlan>НазваниеПланаОбмена</v8msg:ExchangePlan>
<v8msg:To>КодУзлаКуда</v8msg:To>
<v8msg:From>КодУзлаОткуда</v8msg:From>
<v8msg:MessageNo>НомерСообщения</v8msg:MessageNo>
<v8msg:ReceivedNo>НомерПринятого</v8msg:ReceivedNo>
</v8msg:Header>

У меня при нажатии кнопки - "Выполнить обмен" БГУ создает такой вот заголовок -
<?xml version="1.0" encoding="UTF-8" ?>
- <ФайлОбмена ВерсияФормата="2.0" ДатаВыгрузки="2013-06-24T10:56:48" ИмяКонфигурацииИсточника="БухгалтерияГосударственногоУчрежде­ния" ИмяКонфигурацииПриемника="УправлениеТорговлей" ИдПравилКонвертации="5e8e43ce-1c32-4556-80a8-3523fe3ae162" Комментарий="">
- <ПравилаОбмена>
<ВерсияФормата>2.01</ВерсияФормата>
<Ид>5e8e43ce-1c32-4556-80a8-3523fe3ae162</Ид>
<Наименование>БухгалтерияГосударственногоУчреждения(ЕЭК) --> УправлениеТорговлей(ЕЭК)</Наименование>
<ДатаВремяСоздания>2013-06-24T10:56:16</ДатаВремяСоздания>
<Источник>БухгалтерияГосударственногоУчреждения</Источник>
<Приемник>УправлениеТорговлей</Приемник>
<Параметры />
<Обработки />

Я в этом плохо разбираюсь, не можете подсказать? Все таки хотелось бы все настроить не допиливая конфигурации.
22. Андрей Волин (kser87) 27.06.13 13:22
(21) kvovka, У вас еще может быть очень старая обработка "Универсальный обмен данными". Скачайте последнюю конвертацию данных. Там в каталоге шаблонов лежит эта обработка последней версии. В УТ и в БП найдите обработку "УниверсальныйОбменДаннымиXML" в дереве конфигурации. Кликните на нее правой кнопкой мыши, выберите пункт "Заменить на внешнюю обработку" и выберите обработку из последней конвертации.
23. Андрей Волин (kser87) 27.06.13 13:23
(21) kvovka, БухгалтерияГосударственногоУчреждения - мать моя женщина!
24. Андрей Волин (kser87) 27.06.13 13:27
(22) kser87, Можно еще попробовать обработку "Обмен данными в формате xml" выцепить из бухни и закачать в УТ. Если у вас УТ 10, то она тоже может быть очень старой
25. Владимир Соловьев (kvovka) 27.06.13 14:08
Все есть. Универсальный обмен данными не используется при обмене, который описан в вашей статье. Сейчас попробую заменить обработку - Обмен данными в формате xml
26. Наталия Тимофеева (Шапокляк) 27.06.13 14:15
(18) Спасибо за ответ. Я за это время и сама попыталась проделать предложенное вами. Все работает, и это здорово!
27. Владимир Соловьев (kvovka) 27.06.13 14:48
(24) kser87, а вы можете мне показать заголовок вашего xml файла? А то у меня все по старому:
Ошибка при начале чтения файла сообщения обмена: {Обработка.КонвертацияОбъектовРаспределенныхИнформационныхБаз.МодульОбъекта(105)}: Ошибка при вызове метода контекста (НачатьЧтение): Неправильный формат сообщения
28. Артем Целовальников (slazzy) 11.12.13 14:06
(21) kvovka, здравствуйте. Не знаю актуально ли ещё, уже наверно нет :) но ответ на самом деле элементарен. В конфигурации-приёмнике надо установить галочку "обмен по правилам" и создать пустые правила обмена данными, которые ничего не выгружают. Тогда подобной ошибки не будет
Nicholas; svilsa; +2 Ответить
29. Елена Ситникова (lesenoklenok) 27.02.14 09:18
Спасибо большое, делала что-то подобное, но как-то не сложилось с таким обменом, данные то дублировались, то пропадали, то не передавались.
30. Андрей Волин (kser87) 28.02.14 10:39
(29) lesenoklenok, видимо проблемы в правилах были
31. Анянов Михаил (insurgut) 01.07.14 20:43
Те, кто настраивает обмены через общие файловые ресурсы - обратите внимание на то, от чьего имени запускается служба сервера 1С:Предприятия (в свойствах службы на вкладке Вход в систему). Ни в коем случае не допускайте, чтобы она запускалась от имени системной учетной записи. Только от имени существующего пользователя. Иначе могут возникнуть проблемы с доступом к этим самым файловым ресурсам.
32. Сергей Шведов (shs111) 01.03.15 10:37
Требуется обработка для УТ 10.3 в БП 8.3
33. Андрей Волин (kser87) 01.03.15 11:46
(32) shs111, как понимать ваше сообщение?
34. Nicholas Mikuslas (Nicholas) 06.05.15 07:41
Настроил односторонний обмен из базы А в базы Б и В.

Первый момент.

Чтобы все правильно работало, коды предопределенных элементов в планах обмена должны быть, например:
001 - в базе А,
002 - в базе Б,
003 - в базе В.

В базе А соответственно два правила выгрузки:
в базу Б с кодом плана обмена 002,
в базу В с кодом плана обмена 003.

В базе Б одно правило загрузки из базы А с кодом плана 001.

В базе В одно правило загрузки из базы А с кодом плана 001.

Второй момент.

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

Третье

Выгружаются только измененные объекты. Но т.к. выгрузка только в одном направлении и в ответ не приходит подтверждение успешной загрузки, то количество выгружаемых объектов с каждым разом растет. Как это победить я пока не понял. Может кто подскажет?
35. Nicholas Mikuslas (Nicholas) 06.05.15 07:46
(11) AlexBar,
При получении квитанции из произвольной конфигурации с регистрации снимаются только те объекты, которые были выгружены по правилам. Остальные объекты накапливаются в таблицах регистрации.

Как настроить получение квитанции из произвольной конфигурации?
Где можно посмотреть таблицы регистрации?
Не разобрались как "гасить"?
36. Анянов Михаил (insurgut) 06.05.15 09:00
(35) Nicholas, загрузив пустые правила обмена для базы-приемника - это и будет квитанцией.
37. Nicholas Mikuslas (Nicholas) 06.05.15 09:19
(36) insurgut, получается нужно делать двусторонний обмен, но только, чтобы в обратную сторону выгружалось всегда 0 элементов?
Получается, что можно использовать то же правило, что и для выгрузки, но только в настройках для всех объектов указать "не выгружать". А что если там поставить "по ссылке"?
38. Андрей Волин (kser87) 06.05.15 10:35
(37) Nicholas, "по ссылке" означает, что элемент будет выгружен только в том случае, если на него есть ссылки в выгружаемых элементах. Например, вы ставите "Не выгружать" для справочника "Номенклатура". Он выгружен не будет. Но в том случае, если выгружаются скажем документы реализации, то номенклатура в них выгружена будет
39. Анянов Михаил (insurgut) 06.05.15 13:15
(37) Nicholas, нет, конкретно для этой задачи (чтобы в ответ приходило только подтверждение об успешной загрузке данных) нужны, вернее достаточно, именно пустых правил. В котором не будет ни одного ПВД или ПКО.
40. Андрей Зырянов (AndreykO) 18.05.15 12:35
Всё-таки не понимаю до конца с этими кодами узлов.
Есть ЗУП, где в плане Полный узлы: 002 - Центральный, 003 - Переферийная и БП, где в плане Полный узлы: ЖК - Центральный, РБ - Периферийка
Как видим, изначально коды у всех разные.
Создаём в ЗУП в плане Полный узел 333 - Обмен с БП, а в БП в плане Полный узел 333 - Обмен с ЗУП
И конечно обмен не взлетает - коды-то разные, при первом же обмене из ЗУП пишет: "Не найден узел обмена для загрузки данных. План обмена: Полный, Код: 002"
То есть, я так понимаю, он пытается найти узел в БП с кодом 002, тогда как в БП-то центральный узел имеет код ЖК...
Как быть, комрады, подскажите. можно ли всё-таки настроить обмен, когда коды центральных разные?
41. Анянов Михаил (insurgut) 21.05.15 14:28
(40) AndreykO, я правильно понимаю, что через полный план обмена ты решил настроить обмен зарплаты с бухгалтерией? :)
42. Андрей Зырянов (AndreykO) 22.05.15 17:06
(41) insurgut, ага, это я сначала... думал, прикручу свои правила прокатит... ан нет, пришлось план обмена создавать...
43. Михаил Михалыч (micha26) 16.09.15 12:04
Хм - у меня так матерится на неизвестного получателя....Две идентичные УТ, если что. Правила через кд сделаны.
44. Михаил Михалыч (micha26) 07.10.15 12:46
Ага больше не ругается - решил проблему...)))
45. Константин Куликов (Светлый ум) 17.03.16 22:38
Не очень наглядный пример, здесь по подробнее будет:

////////////////
Настройка одностороннего обмена УПП 1.3 -> УТ 10.3 справочника "Номеклатура" в автоматическом режиме
http://infostart.ru/public/267693/
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа