| 
    
            
         
         | 
    
    
  | 
Самописная синхронизация типовым способом. | ☑ | ||
|---|---|---|---|---|
| 
    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.  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |