gifts2017

Обмен данными по планам обмена

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

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

За основу я взял бухгалтерию предприятия 1.6, т.к. там меньше общих модулей (меньше ф-ций собирать из модулей общего назначения).

 Для обмена между своими конфигурациями вам понадобятся следующие объекты

  1. Общие модули - здесь укажу только основные, указывать модули "ОбщегоНазначения" И "ХранилищеДополнительнойИнформации" не буду.
    1. ПроцедурыОбменаДанными
    2. ПроцедурыОбменаДаннымиКлиент
    3. ПроцедурыОбменаДаннымиПолныеПрава
  2. Регламентные задания
    1. ВыполнениеОбмена
  3. Общие формы
    1. МониторНастроекОбменаДанными
    2. НастройкаФайлаОбновленияКонфигурации
    3. НастройкиМонитораОбменаДанными
    4. ФормаВыполненияОбменаДанными
    5. ФормаРедактированияТекста
    6. ФормаРезультатOnLineОбмена
    7. ХодВыполненияОбработкиДанных
  4. Общие картинки
    1. ВыполнитьОбменДанными
    2. МониторСостоянияОбмена
    3. ВыполненоСОшибками32
    4. ВыполненоУспешно32
  5. Справочники
    1. НастройкиВыполненияОбмена - справочник содержащий настроки автоматического обмена (такие как расписание и дейсвия)
    2. НастройкиОбменаДанными - справочник которые содержит основные настройки обмена (правила, тип обмена, настройки выгрузки и сопоставления объектов)
  6. Перечисления
    1. ДействиеПриОбмене
    2. ПриоритетОбъектовОбмена
    3. РезультатРассмотренияКоллизии
  7. Обработки
    1. ОбменДаннымиXML
    2. РегистрацияИзмененийДляОбмена
    3. УниверсальныйОбменДаннымиXML - желательно, но не обязательно.
  8. Регистры сведений 
    1. ИсторияОбменаДанными
    2. КоллизииПриОбмене
    3. ОбъектыИнформационныхБаз
    4. ОтложенныеДвиженияДокументов
    5. ПараметрыОбменаДанными
    6. СоответствиеОбъектовДляОбмена

 После добавления своего плана обмена(помните имя плана в базе-источнике и базе-приемнике должны совпадать), в его модуле необходимо определить экспортную процедуру:


ОпределитьТипОтправкиДанных(ЭлементДанных, ОтправкаЭлемента)

где

ЭлементДанных  - выгружаемый объект

ОтправкаЭлемента - системное перечисление ОтправкаЭлементаДанных, которое определяет действия системы относительно элемента данных при формировании сообщения, содержащего изменения.

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

Пример 1. У узла обмена указать дату выгрузки документов и для всех документов находящихся ранее этой даты установить ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; Такие документы выгружены не будут.

Пример 2. У узла обмена указать организацию и удалять из набора записей регистра все записи, относящиеся к другим организациям. Выгружены будут только записи, которые останутся в переменной "ЭлементДанных".

 В общей форме "МониторНастроекОбменаДанными" в поле "Инф. база" необходимо добавить ваш план обмена (или как я изменить тип на ПланОбменаСсылка) и переписать ссылки на ф-ции из модулей общего назначения. 

 Если в справочнике настройка обмена не указать "Обмен по правилам обмена" и в плане обмена "Распределенная информационная база", то в модуле необходимо будет определить процедуры:

ВыгрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакцииНаВыгрузкуДанных, ЗаписьXML) 

ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакцииНаЗагрузкуДанных, ЧтениеXML) 

 В которых вы можете вручную обработать XML файл. Вызываются они из модуля  ПроцедурыОбменаДанными.

Там же есть подобные процедуры:

ВыгрузитьИзмененияДляУзлаВФайлаОбмена(УзелОбмена,КоличествоЭлементовВТранзакции, ЧтениXML)

ЗагрузитьИзмененияДляУзлаИзФайлаОбмена(УзелОбмена,КоличествоЭлементовВТранзакции, ЧтениXML)

 но они предназначены только для РИБ(Распределенная Информационная База). 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Владислав (Vladuha) 19.07.12 12:49
Библиотека Стандартных подсистем тебе поможет
2. Игорь Юндин (kereo) 19.07.12 13:02
(1) Vladuha, мне не помогла, т.к. система на 8.1, а библиотека на 8.2. Переписывать на 8.1 совсем не хотелось.
3. Модератор раздела Артур Аюханов (artbear) 21.07.12 07:51
(0) Спасибо за публикацию, пригодится.
У меня есть несколько нетиповых баз с РИБ
в текущей 8.2 я использовал БСП 2.1, а вот для 8.1 (2 базы по 10 удаленных точек в каждой) размышляю над выбором вариантов - либо все-таки перейти на 8.2, либо использовать типовой обмен, как и в статье.
Автор, переход на 8.2 почему не рассматривал? много точек? работает, не трожь :) ? или еще что?
4. Игорь Юндин (kereo) 21.07.12 11:15
(3) artbear, частично закрытая конфигурация.
5. Азиз Абдукаримов (azeraus) 21.11.12 11:51
Не подскажите, как добавить Экспортную процедуру в модуль:

( После добавления своего плана обмена(помните имя плана в базе-источнике и базе-приемнике должны совпадать), в его модуле необходимо определить экспортную процедуру:
ОпределитьТипОтправкиДанных(ЭлементДанных, ОтправкаЭлемента))

Очень нужно! Заранее огромное спасибо!
6. Игорь Юндин (kereo) 21.11.12 17:54
(5) azeraus, Правой кнопкой мыши по плану обмена и выбрать пункт открыть модуль объекта
7. Trotter_NN 07.03.13 14:55
А как написать самому план обмена из 7ки в 8ку ?))
Подскажите чем можно воспользоваться ?
Книга может есть какая/статья ?
8. Игорь Юндин (kereo) 07.03.13 15:21
(7) Trotter_NN, План обмена это объект, появившийся в 8-ке. При обмене с 7-кой выгружают документы за период.
9. Игорь Юндин (kereo) 07.03.13 15:23
(7) Trotter_NN, А правила обмена "рисуются" в конфигурации конвертация данных, по которой написана одноименная книжка.
10. Xer shi (Xershi) 21.01.15 13:51
Есть инфа как сделать план обмена 8.3 ->7.7?
11. Steve Gordon (SGordon1) 21.01.15 14:02
Ну в 8.3 план обмена - стандартный объект конфигурации, в чем проблема то?
12. Xer shi (Xershi) 21.01.15 14:08
(11) SGordon1, мануал бы с 0, так сказать.
13. Игорь Юндин (kereo) 21.01.15 16:15
(11)(12) так а БСП не поможет? На its.1c.ru достаточно подробный мануал.
14. Игорь Юндин (kereo) 21.01.15 16:19
(10) в 7.7 нет планов обмена. Какова ваша цель?
15. Xer shi (Xershi) 21.01.15 16:25
(14) kereo, сделать односторонний обмен из 8.3 в 7.7.

Уже выяснил что такое возможно (односторонний обмен нужен), скачал книгу и даже начал изучать, но пока все туманно... Опыта работы с объектом "план обмена" нет.
16. Игорь Юндин (kereo) 22.01.15 09:45
(15) Xershi, План обмена нужен только для авт. регистрации измененных объектов (или ручной методом ЗарегистрироватьИзменения) и последующей выгрузки (получить объекты для выгрузки можно с помощью метода ВыбратьИзменения). Но вот сам формат обмена (правила формирования файла) и соответственно саму обработку выгрузки написать самому. Я бы сделал это именно так, иначе придется парсить xml файл в 7.7 по правилам, которые задали 1С, потратите кучу времени чтобы разобрать по каким правилам формируется файл и как правильно его обработать, т.к. там все не так тривиально.