|
Самописная синхронизация типовым способом. | ☑ | ||
---|---|---|---|---|
0
Wefast
10.03.21
✎
14:25
|
Есть ЗУП и БП, в обеих базах есть новый справочник, который хотелось бы синхронизировать.
1. Создал план обмена с одним названием. Указал источник. 2. В общий модуль ОбменДаннымиПереопределяемый, в процедуру ПолучитьПланыОбмена(ПланыОбменаПодсистемы) добавил строку ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.МойПО) 3. в общие команды ЗагрузитьПравилаКонвертацииОбъектов, ЗагрузитьПравилаРегистрацииОбъектов добавил мой план обмена 4. В модуль менеджера скопировал все что было в типовом модуле плана обмена ЗУПБП 5. Загрузил правила конвертации, которые писал для использования в типовой обработки загрузки\выгрузки по правилам Настроил обмен. Само ничего не регистрируется при настройке. Ну и ладно пока. В ручную зарегистрировал элементы. Провел обмен. Файлики содержат мой объект. В ЗУП пишет, что успешно проходит и загрузку, и выгрузка. Но данных новых не появляется. В БП загрузка не проходит. Пишет "Ошибка преобразования данных XML:" Собственно куда дальше копать? Почти все вышеперечисленное делал по гайду с интернета. Но какого то полного прикладного примера так и нашел. |
|||
1
Wefast
10.03.21
✎
14:27
|
Отладкой пробежал, сходу не понятно где там объекты создаются или получаются.
Может правила должны быть особенно подготовлены. ХЗ |
|||
2
asady
10.03.21
✎
15:09
|
(0) берешь типовую обработку "УниверсальныйОбменВФорматеXML"
(только сохрани внешнюю) и натравливаешь на файл обмена - в отладчике должно показать если в файле обмена объект лежит - то отлаживай "загрузку" из файла |
|||
3
Wefast
10.03.21
✎
16:57
|
(2) правила рабочие, пока я ими в ручную и гружу все. А хочу как обычную синхронизацию сделать, настроить расписание и все.
В общем в ЗУП все падает на моменте чтения xml, когда идет проверка с кодом ВозможностьЧтенияXML(Чтения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>1</v8msg:MessageNo> <v8msg:ReceivedNo>0</v8msg:ReceivedNo> </v8msg:Header> - <v8msg:Body> - <CatalogObject.НоменклатурныеГруппы> <Ref>eb90b101-81a4-11eb-bc3b-1c1b0d6332b4</Ref> <IsFolder>false</IsFolder> <DeletionMark>false</DeletionMark> <Parent>00000000-0000-0000-0000-000000000000</Parent> <Code>БП-000008</Code> <Description>!!!!!!!!!!!!!!</Description> <СпособУчетаНДС /> <СтавкаНДС>НДС10</СтавкаНДС> <Статус>Действует</Статус> <ДатаЗакрытия>0001-01-01T00:00:00</ДатаЗакрытия> <Контрагент>db1bda2b-727b-11eb-a4f2-b499babb10f2</КА_Контрагент> <Договор>e42f3c34-727b-11eb-a4f2-b499babb10f2</КА_Договор> <БазоваяЕдиницаИзмерения>8d1452ce-3349-11eb-813a-0050569f62a1</БазоваяЕдиницаИзмерения> <ЕдиницаХраненияОстатков>00000000-0000-0000-0000-000000000000</ЕдиницаХраненияОстатков> <ДополнительныеРеквизиты /> </CatalogObject.НоменклатурныеГруппы> </v8msg:Body> </v8msg:Message> Вот <CatalogObject.НоменклатурныеГруппы> тут ошибка. Должнобыть <CatalogObject.Т_НоменклатурныеГруппы> т.к. в зуп номенклатурных групп нет. Залез в правила выгрузки из БП в ЗУП: <Источник>СправочникСсылка.НоменклатурныеГруппы</Источник> <Приемник>СправочникСсылка.Т_НоменклатурныеГруппы</Приемник> Исправил в ручную. Проверку проходит и сразу падает с ошибкой на строке: Данные = ПрочитатьXML(ЧтениеXML); В ЗУП пишет: Значения данного типа не могут быть представлены в XML {ОбщийМодуль.ОбменДаннымиСервер.Модуль(8064)}: Данные = ПрочитатьXML(ЧтениеXML); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(7916)}: ВыполнитьСтандартнуюЗагрузкуПорцииДанных(ПараметрыЗагрузки, ПродолжитьЗагрузку); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(7518)}: ВыполнитьСтандартнуюЗагрузкуИзмененийДляУзла( {ОбщийМодуль.ОбменДаннымиСервер.Модуль(7074)}: ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СообщениеОбмена, , ТолькоПараметры); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(381)}: ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена, ТолькоПараметры); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(3974)}: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы(Отказ, УзелИнформационнойБазы, {Обработка.ВыполнениеОбменаДанными.МодульМенеджера(38)}: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( {(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(1036)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова); {ОбщийМодуль.ДлительныеОперации.Модуль(1026)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры); по причине: Значения данного типа не могут быть представлены в XML В БП пишет: Ошибка преобразования данных XML: [sfile://C:/Users/komandrovsky/AppData/Local/Temp/7/Exchange82 {CBE38BD9-EE4F-41E9-A19B-6E005B01AFC2}/Message_ЗК_БП.xml][21,4] {ОбщийМодуль.ОбменДаннымиСервер.Модуль(7908)}: Данные = ПрочитатьXML(ЧтениеXML); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(7760)}: ВыполнитьСтандартнуюЗагрузкуПорцииДанных(ПараметрыЗагрузки, ПродолжитьЗагрузку); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(7362)}: ВыполнитьСтандартнуюЗагрузкуИзмененийДляУзла( {ОбщийМодуль.ОбменДаннымиСервер.Модуль(6918)}: ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СообщениеОбмена, , ТолькоПараметры); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(381)}: ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена, ТолькоПараметры); {ОбщийМодуль.ОбменДаннымиСервер.Модуль(3886)}: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы(Отказ, УзелИнформационнойБазы, {Обработка.ВыполнениеОбменаДанными.МодульМенеджера(34)}: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( {(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1]) {ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(1030)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова); {ОбщийМодуль.ДлительныеОперации.Модуль(1020)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры); по причине: Ошибка преобразования данных XML: [sfile://C:/Users/komandrovsky/AppData/Local/Temp/7/Exchange82 {CBE38BD9-EE4F-41E9-A19B-6E005B01AFC2}/Message_ЗК_БП.xml][21,4] Думаю одно и тоже это. Но что не так не ясно |
|||
4
Dmitry1c
10.03.21
✎
17:18
|
(0) более простым путем-то не захотелось пойти?
|
|||
5
asady
10.03.21
✎
18:01
|
(3) теперь выложи сюда выгрузку из ЗУП в БП этого справочника - хотя бы одного элемента -
файл сообщения такой-же покажи |
|||
6
hhhh
10.03.21
✎
18:34
|
(0) пройлись отладчиком, особенно это место
ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; {ОбщийМодуль.ДлительныеОперации.Модуль(1030)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова); какой конкретно метод вызывается, там 2 обработки и они немного отличаются, и плюс третья обработка - это новый обмен через xdto. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |