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

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


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

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

На данном сайте много разных правил. Обычно называется просто "Правила обмена "Название конфигурации 1" - "Название конфигурации 2". Пример публикации: http://infostart.ru/public/153200/
8. Юрий Седых (suvolod) 14 16.11.12 10:20 Сейчас в теме
куда делись все картинки к статье?
9. Андрей Волин (kser87) 1243 16.11.12 10:22 Сейчас в теме
10. Май МММ (may1c) 21.11.12 12:36 Сейчас в теме
Статья хорошая. Первый этап по созданию планов обмена выполняется без проблем.
Но....
Мне нужно создать обмен между УТ и Ут.Конфигурации типовые и идентичные. Можно использовать обработку
Выгрузка данных в идентичную конфигурацию, но клиентам не совсем это удобно. Во-первых долго, во-вторых,
надо заходить в каждую базу.Дополнительно при выгрузке нужно чтобы не все документы выгружались
(ограничение по нумерации). Еще нужно, чтобы документы, которые присутствуют в обоих базах при изменении
не переносились.
Итак идеальный вариант полный план обмена РИБ. Но так как делаю методом тыка возникают следующие сложности:
1. Можно не ставить в базе источнике галку загружать. не приведет ли это к огромному росту журнала регистрации?
2. Пыталась создать пустой файл правил, чтобы загрузить его в при загрузки из базы приемника. Скопировала файл правил и просто очистила его. Не получилось - пустой файл программа не определяет как файл правил.
11. AlexBar (AlexBar) 50 21.11.12 17:59 Сейчас в теме
Кто подскажет выход: настроил обмен между УПП и произвольной конфигурацией. Обмен идет в одну сторону: из УПП в произвольную. В УПП использую план обмена полный. Естественно в нем регистрируются все объекты, для которых для полного стоит авторегистрация. Выгружаются не все объекты. Выгрузка идет по правилам. При получении квитанции из произвольной конфигурации с регистрации снимаются только те объекты, которые были выгружены по правилам. Остальные объекты накапливаются в таблицах регистрации. Как их снимать с регистрации? По какой причине они не "гасятся"?
12. Евгений Федоров (FedorovEvg) 143 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) 29 27.06.13 11:21 Сейчас в теме
Статья хорошая, но не решила моей проблемы. у меня УТ переписанная всмерть и БГУ. Обмен односторонний, БГУ -> УТ. Есть правила из КД, с помощью обработки все замечательно переносится. Пробуя настроить обмен по этой статье получил такую ошибку - Неправильный формат сообщения. Действительно, заголовок БГУ создает не тот при выполнении обмена. Так и не смог уломать одинэску заработать. Пришлось допиливать обе конфы и искусственно пускать обмен через обработку УниверсальныйОбменДаннымиXML. Решение очень мне не нравится, но поджимали сроки. Так и не нашел решения проблемы с форматом((( Мож кто подскажет?
18. Андрей Волин (kser87) 1243 27.06.13 11:39 Сейчас в теме
(16) Шапокляк, Извините, что не долго не давал ответ на Ваш вопрос. Действительно механизм РИБ предполагает использование идентичных конфигураций. Или РИБ требует, чтобы хотя бы совпадали объекты в базе-источнике и приемнике. Но все равно механизм можно заставить работать если открыть настройки обмена через "Все функции". В обычном приложении откройте операции - справочники - настройки обмена данными
19. Андрей Волин (kser87) 1243 27.06.13 11:42 Сейчас в теме
(17) kvovka, Для тестирования правил обмена используйте обработку "Обмен данными в формате xml". (есть и такая!). Отличие обработки в том, что у нее в названии нет слова "Универсальный". Ну это шутка. Если серьезно, то эта обработка не поддерживает некоторые функции Универсального обмена. Например, там нельзя использовать правила выгрузки со способом выгрузки "Произвольный алгоритм". Проверьте, что такового у вас в правилах нет
20. Андрей Волин (kser87) 1243 27.06.13 11:44 Сейчас в теме
(18) kser87, Вообще при помощи механизма я настраивал обмен между БП 2.0 и полностью самописной конфигурацией. Так что скорее всего проблема у вас в том, что не там тестируете
21. Владимир Соловьев (kvovka) 29 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) 1243 27.06.13 13:22 Сейчас в теме
(21) kvovka, У вас еще может быть очень старая обработка "Универсальный обмен данными". Скачайте последнюю конвертацию данных. Там в каталоге шаблонов лежит эта обработка последней версии. В УТ и в БП найдите обработку "УниверсальныйОбменДаннымиXML" в дереве конфигурации. Кликните на нее правой кнопкой мыши, выберите пункт "Заменить на внешнюю обработку" и выберите обработку из последней конвертации.
23. Андрей Волин (kser87) 1243 27.06.13 13:23 Сейчас в теме
(21) kvovka, БухгалтерияГосударственногоУчреждения - мать моя женщина!
24. Андрей Волин (kser87) 1243 27.06.13 13:27 Сейчас в теме
(22) kser87, Можно еще попробовать обработку "Обмен данными в формате xml" выцепить из бухни и закачать в УТ. Если у вас УТ 10, то она тоже может быть очень старой
25. Владимир Соловьев (kvovka) 29 27.06.13 14:08 Сейчас в теме
Все есть. Универсальный обмен данными не используется при обмене, который описан в вашей статье. Сейчас попробую заменить обработку - Обмен данными в формате xml
26. Наталия Тимофеева (Шапокляк) 27.06.13 14:15 Сейчас в теме
(18) Спасибо за ответ. Я за это время и сама попыталась проделать предложенное вами. Все работает, и это здорово!
27. Владимир Соловьев (kvovka) 29 27.06.13 14:48 Сейчас в теме
(24) kser87, а вы можете мне показать заголовок вашего xml файла? А то у меня все по старому:
Ошибка при начале чтения файла сообщения обмена: {Обработка.КонвертацияОбъектовРаспределенныхИнформационныхБаз.МодульОбъекта(105)}: Ошибка при вызове метода контекста (НачатьЧтение): Неправильный формат сообщения
28. Артем Целовальников (slazzy) 32 11.12.13 14:06 Сейчас в теме
(21) kvovka, здравствуйте. Не знаю актуально ли ещё, уже наверно нет :) но ответ на самом деле элементарен. В конфигурации-приёмнике надо установить галочку "обмен по правилам" и создать пустые правила обмена данными, которые ничего не выгружают. Тогда подобной ошибки не будет
Nicholas; svilsa; +2 Ответить
29. Елена Ситникова (lesenoklenok) 18 27.02.14 09:18 Сейчас в теме
Спасибо большое, делала что-то подобное, но как-то не сложилось с таким обменом, данные то дублировались, то пропадали, то не передавались.
30. Андрей Волин (kser87) 1243 28.02.14 10:39 Сейчас в теме
(29) lesenoklenok, видимо проблемы в правилах были
31. Анянов Михаил (insurgut) 152 01.07.14 20:43 Сейчас в теме
Те, кто настраивает обмены через общие файловые ресурсы - обратите внимание на то, от чьего имени запускается служба сервера 1С:Предприятия (в свойствах службы на вкладке Вход в систему). Ни в коем случае не допускайте, чтобы она запускалась от имени системной учетной записи. Только от имени существующего пользователя. Иначе могут возникнуть проблемы с доступом к этим самым файловым ресурсам.
32. Сергей Шведов (shs111) 01.03.15 10:37 Сейчас в теме
Требуется обработка для УТ 10.3 в БП 8.3
33. Андрей Волин (kser87) 1243 01.03.15 11:46 Сейчас в теме
(32) shs111, как понимать ваше сообщение?
34. Nicholas Mikuslas (Nicholas) 692 06.05.15 07:41 Сейчас в теме
Настроил односторонний обмен из базы А в базы Б и В.

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

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

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

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

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

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

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

Третье

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

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

////////////////
Настройка одностороннего обмена УПП 1.3 -> УТ 10.3 справочника "Номеклатура" в автоматическом режиме
http://infostart.ru/public/267693/
46. Роман Шамкин (luckily) 11.01.17 13:14 Сейчас в теме
В статье по ссылке выше описан случай если нет РИБ или нет возможности подключиться по COM. Т.е. организация выгрузки через вариант файлового хранилища либо облака