1с ошибка формата правил обмена при загрузке правил

0

790th

30.09.15

09:40

Вопрос: Почему не принимает данные, сформированные в настройке обмена (но при этом принимает если данные сформировать обработкой обмена)?

Создал правила выгрузки одного элементарного справочника из УТ 10.3.16.1 (обычное приложение, платформа 8.2.19.102) в Самописную (управляемое приложение, платформа 8.3.6.2152)

Настроил в УТ узлы и планы обмена, сделал настройку обмена данными и выгрузил. В файл данных вошло два элемента справочника.

Привожу содержание «ошибочного» XML:

<?xml version=»1.0″ encoding=»UTF-8″?>

<ФайлОбмена ВерсияФормата=»2.0″ ДатаВыгрузки=»2015-09-30T09:03:50″ ИмяКонфигурацииИсточника=»УправлениеТорговлей» ИмяКонфигурацииПриемника=»Конфигурация» ИдПравилКонвертации=»fc7e8361-6fbe-42bb-90d4-6ee69b6c1794″ Комментарий=»»>

<ПравилаОбмена>

    <ВерсияФормата>2.01</ВерсияФормата>

    <Ид>fc7e8361-6fbe-42bb-90d4-6ee69b6c1794</Ид>

    <Наименование>СервисДляCRM —&gt; CRM</Наименование>

    <ДатаВремяСоздания>2015-09-28T12:18:38</ДатаВремяСоздания>

    <Источник>УправлениеТорговлей</Источник>

    <Приемник>Конфигурация</Приемник>

    <Параметры/>

    <Обработки/>

    <ПравилаКонвертацииОбъектов>

        <Правило>

            <Код>Направления</Код>

            <Источник>СправочникСсылка.Айсберг_Направления</Источник>

            <Приемник>СправочникСсылка.Направления</Приемник>

        </Правило>

    </ПравилаКонвертацииОбъектов>

    <ПравилаОчисткиДанных/>

    <Алгоритмы/>

    <Запросы/>

</ПравилаОбмена>

<ИнформацияОТипахДанных>

    <ТипДанных Имя=»СправочникСсылка.Направления»>

        <Код>Строка</Код>

        <ПометкаУдаления>Булево</ПометкаУдаления>

        <Наименование>Строка</Наименование>

        <Родитель>СправочникСсылка.Направления</Родитель>

        <ЭтоГруппа>Булево</ЭтоГруппа>

    </ТипДанных>

</ИнформацияОТипахДанных>

<ДанныеПоОбмену ПланОбмена=»МоскваCRM» Кому=»CRM» ОтКого=»Москва» НомерИсходящегоСообщения=»5″ НомерВходящегоСообщения=»0″/>

<ДанныеПоФоновомуОбмену ПланОбмена=»» Кому=»0″ ОтКого=»0″ ДобавлениеОбъектовИзФоновогоОбмена=»0″ КоличествоОбъектовДляФоновогоОбмена=»500″ ПереданоОбъектовФоновогоОбмена=»0″/>

<Объект Нпп=»1″ Тип=»СправочникСсылка.Направления» ИмяПравила=»Направления»><Ссылка Нпп=»1″>

    <Свойство Имя=»{КлючПоискаВИБИсточнике}»>

        <Значение>{«#»,0bd0deec-1479-4cdf-ae4b-f10e71f3205a,111:9ed000248cc4a20411e26f88824de171}</Значение>

    </Свойство>

    <Свойство Имя=»{ИмяТипаВИБИсточнике}»>

        <Значение>СправочникСсылка.Айсберг_Направления</Значение>

    </Свойство>

    <Свойство Имя=»{ИмяТипаВИБПриемнике}»>

        <Значение>СправочникСсылка.Направления</Значение>

    </Свойство>

    <Свойство Имя=»Код»>

        <Значение>000000013</Значение>

    </Свойство>

</Ссылка>

    <Свойство Имя=»Наименование»>

        <Значение>СВЧ</Значение>

    </Свойство>

    <Свойство Имя=»ПометкаУдаления»>

        <Значение>false</Значение>

    </Свойство>

    <Свойство Имя=»Родитель»/>

    <Свойство Имя=»ЭтоГруппа»>

        <Значение>false</Значение>

    </Свойство>

</Объект>

<Объект Нпп=»2″ Тип=»СправочникСсылка.Направления» ИмяПравила=»Направления»><Ссылка Нпп=»2″>

    <Свойство Имя=»{КлючПоискаВИБИсточнике}»>

        <Значение>{«#»,0bd0deec-1479-4cdf-ae4b-f10e71f3205a,111:9ed000248cc4a20411e26f88824de173}</Значение>

    </Свойство>

    <Свойство Имя=»{ИмяТипаВИБИсточнике}»>

        <Значение>СправочникСсылка.Айсберг_Направления</Значение>

    </Свойство>

    <Свойство Имя=»{ИмяТипаВИБПриемнике}»>

        <Значение>СправочникСсылка.Направления</Значение>

    </Свойство>

    <Свойство Имя=»Код»>

        <Значение>000000014</Значение>

    </Свойство>

</Ссылка>

    <Свойство Имя=»Наименование»>

        <Значение>СМ</Значение>

    </Свойство>

    <Свойство Имя=»ПометкаУдаления»>

        <Значение>false</Значение>

    </Свойство>

    <Свойство Имя=»Родитель»/>

    <Свойство Имя=»ЭтоГруппа»>

        <Значение>false</Значение>

    </Свойство>

</Объект>

</ФайлОбмена>

Для загрузки использую обработку из поставки КД 2.1.8.2: V8Exchan83.epf в режиме работы На сервере.

Получаю ошибки:

Ошибка формата файла обмена

    ИмяУзла                =  ДанныеПоОбмену

Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5256)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=»

ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}

Загружено объектов: 0

(см. фото) https://yadi.sk/i/LwzcPBr-jQxMw

НО! это при выгрузке из УТ через настройку обмена. Ошибка исчезает если выгружать данные обработкой из поставки КД: V8Exchan82.epf (82 не смотря на то что платформа 83, т.к. в режиме Обычного приложения).

Привожу содержание «правильного» XML:

<?xml version=»1.0″ encoding=»UTF-8″?>

<ФайлОбмена ВерсияФормата=»2.0″ ДатаВыгрузки=»2015-09-30T09:26:42″ НачалоПериодаВыгрузки=»0001-01-01T00:00:00″ ОкончаниеПериодаВыгрузки=»0001-01-01T00:00:00″ ИмяКонфигурацииИсточника=»УправлениеТорговлей» ИмяКонфигурацииПриемника=»Конфигурация» ИдПравилКонвертации=»fc7e8361-6fbe-42bb-90d4-6ee69b6c1794″ Комментарий=»»>

<ПравилаОбмена>

    <ВерсияФормата>2.01</ВерсияФормата>

    <Ид>fc7e8361-6fbe-42bb-90d4-6ee69b6c1794</Ид>

    <Наименование>СервисДляCRM —&gt; CRM</Наименование>

    <ДатаВремяСоздания>2015-09-28T12:18:38</ДатаВремяСоздания>

    <Источник>УправлениеТорговлей</Источник>

    <Приемник>Конфигурация</Приемник>

    <Параметры/>

    <Обработки/>

    <ПравилаКонвертацииОбъектов>

        <Правило>

            <Код>Направления</Код>

            <Источник>СправочникСсылка.Айсберг_Направления</Источник>

            <Приемник>СправочникСсылка.Направления</Приемник>

        </Правило>

    </ПравилаКонвертацииОбъектов>

    <ПравилаОчисткиДанных/>

    <Алгоритмы/>

    <Запросы/>

</ПравилаОбмена>

<Объект Нпп=»1″ Тип=»СправочникСсылка.Направления» ИмяПравила=»Направления»><Ссылка Нпп=»1″>

    <Свойство Имя=»Код» Тип=»Строка»>

        <Значение>000000013</Значение>

    </Свойство>

</Ссылка>

    <Свойство Имя=»Наименование» Тип=»Строка»>

        <Значение>СВЧ</Значение>

    </Свойство>

    <Свойство Имя=»ПометкаУдаления» Тип=»Булево»>

        <Значение>false</Значение>

    </Свойство><Свойство Имя=»Родитель» Тип=»СправочникСсылка.Направления»>

    <Пусто/>

</Свойство>

    <Свойство Имя=»ЭтоГруппа» Тип=»Булево»>

        <Значение>false</Значение>

    </Свойство>

</Объект>

<Объект Нпп=»2″ Тип=»СправочникСсылка.Направления» ИмяПравила=»Направления»><Ссылка Нпп=»2″>

    <Свойство Имя=»Код» Тип=»Строка»>

        <Значение>000000014</Значение>

    </Свойство>

</Ссылка>

    <Свойство Имя=»Наименование» Тип=»Строка»>

        <Значение>СМ</Значение>

    </Свойство>

    <Свойство Имя=»ПометкаУдаления» Тип=»Булево»>

        <Значение>false</Значение>

    </Свойство><Свойство Имя=»Родитель» Тип=»СправочникСсылка.Направления»>

    <Пусто/>

</Свойство>

    <Свойство Имя=»ЭтоГруппа» Тип=»Булево»>

        <Значение>false</Значение>

    </Свойство>

</Объект>

</ФайлОбмена>

И еще в Управляемом приложении не позволяет сформировать модуль отладки загрузки. При нажатии на любую из указанных кнопок ничего не происходит (см. фото) https://yadi.sk/i/pk8RMDXxjQyCm

1

790th

30.09.15

09:47

Удалил секции:

<ИнформацияОТипахДанных>

<ДанныеПоОбмену..

<ДанныеПоФоновомуОбмену..

Теперь пишет:

Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5255)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=»

ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}

2

vicof

30.09.15

09:50

выгрузку и загрузку желательно надо проводить обработками одной версии. Или лезть в отладчик.

3

790th

30.09.15

09:57

Боюсь что затянуть из последней УТ свежую версию Настройки обмена, будет непросто, т.к. этот механизм там не сконцентрирован в одном месте а «размазан» по всей конфигурации (

4

790th

30.09.15

10:14

Так. А вот еще принципиальное отличние:

«Правильный» файл:

<Свойство Имя=»Код» Тип=»Строка»>

        <Значение>000000013</Значение>

«Ошибочный» файл:

<Свойство Имя=»{КлючПоискаВИБИсточнике}»>

        <Значение>{«#»,0bd0deec-1479-4cdf-ae4b-f10e71f3205a,111:9ed000248cc4a20411e26f88824de171}</Значение>

5

Naumov

30.09.15

11:02

(4) В этой записи нет никакой ошибки.

6

Naumov

30.09.15

11:03

А правила не от КД 3.0?

7

790th

30.09.15

11:41

Правила от КД 2.1.8.2

Удалось избавиться от главной ошибки

«Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5255)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=»

ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}»

Таким образом вставил кусок из обработки из УТ. Поместил в обработку Приемника (коммент //Юрасов):

Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта.НайтиЭлементЗапросом(…)

// не по всем параметрам можно искать

Если ИмяПараметра = «{УникальныйИдентификатор}»

    ИЛИ ИмяПараметра = «{ИмяПредопределенногоЭлемента}»

    //Юрасов++

    ИЛИ ИмяПараметра = «{КлючПоискаВИБИсточнике}»

    ИЛИ ИмяПараметра = «{КлючПоискаВИБПриемнике}»

    ИЛИ ИмяПараметра = «{ИмяТипаВИБИсточнике}»

    ИЛИ ИмяПараметра = «{ИмяТипаВИБПриемнике}» Тогда

    //Юрасов—    

    Продолжить;                

КонецЕсли;

Теперь загружает данные, хоть и остались ошибки:

Ошибка формата файла обмена

    ИмяУзла                =  ДанныеПоОбмену

Ошибка формата файла обмена

    ИмяУзла                =  ДанныеПоФоновомуОбмену

8

790th

30.09.15

13:09

Эти две ошибки тоже убрал. Пришлось перенести еще один кусок в приемник:

Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта.ПроизвестиЧтениеДанных(…)

ИначеЕсли (ИмяУзла = «ФайлОбмена») И (ФайлОбмена.ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда

    
//Юрасов++

ИначеЕсли ИмяУзла = «ДанныеПоОбмену» Тогда

    
    // обработка удаления объекта из информационной базы

    ИмяПланаОбмена = одАтрибут(ФайлОбмена, одТипСтрока, «ПланОбмена»);

    
    КодКому = одАтрибут(ФайлОбмена, одТипСтрока, «Кому»);

    КодОтКого = одАтрибут(ФайлОбмена, одТипСтрока, «ОтКого»);

    
    УзелОбменаЗагрузкаДанных = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(КодОтКого);

    
    Если Не ЗначениеЗаполнено(УзелОбменаЗагрузкаДанных) Тогда

        
        ВызватьИсключение «Не найден узел обмена для загрузки данных. План обмена: » + ИмяПланаОбмена + «, Код: » + КодОтКого;        

        
    КонецЕсли;

    
    мНомерВходящегоСообщения = одАтрибут(ФайлОбмена, одТипЧисло, «НомерИсходящегоСообщения»);

    НомерПринятогоСообщения = одАтрибут(ФайлОбмена, одТипЧисло, «НомерВходящегоСообщения»);

    
    Если УзелОбменаЗагрузкаДанных.НомерПринятого >= мНомерВходящегоСообщения Тогда

        
        ВызватьИсключение «Номер сообщения меньше либо равен ранее принятому»;        

        
    КонецЕсли;

    
    //Юрасов++

    //ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбменаЗагрузкаДанных, НомерПринятогоСообщения);                                

    //мЗапросНаличияСтрокВРегистреСоответствия.УстановитьПараметр(«Узел», УзелОбменаЗагрузкаДанных);

    //мЗапросНаличияПустыхДляИсточникаВРегистреСоответствия.УстановитьПараметр(«Узел», УзелОбменаЗагрузкаДанных);

    //Юрасов—

    Попытка

        мПрефиксДокументовПриЗагрузке = СокрЛП(УзелОбменаЗагрузкаДанных.ПрефиксДляЗагружаемыхДокументов);

        мДлинаПрефиксаДокументовПриЗагрузке = СтрДлина(мПрефиксДокументовПриЗагрузке);                    

    Исключение

        мПрефиксДокументовПриЗагрузке = «»;

        мДлинаПрефиксаДокументовПриЗагрузке = 0;                    

    КонецПопытки;

    
    Попытка

        мДатаДокументовДляУстановкиПрефикса = УзелОбменаЗагрузкаДанных.ДатаНачалаВыгрузкиДокументов;

    Исключение

        мДатаДокументовДляУстановкиПрефикса = Неопределено;

    КонецПопытки;

    
    Попытка

        мИспользоватьИнформациюОМестеСозданияОбъектовПриЗагрузке = УзелОбменаЗагрузкаДанных.ИспользоватьИнформациюОМестеСозданияОбъектовПриВыгрузкеИЗагрузкеДанных;

    Исключение

        мИспользоватьИнформациюОМестеСозданияОбъектовПриЗагрузке = Неопределено;

    КонецПопытки;

    
    одПропустить(ФайлОбмена, «ДанныеПоОбмену»);    

    
ИначеЕсли ИмяУзла = «ДанныеПоФоновомуОбмену» Тогда

    
    // обработка удаления объекта из информационной базы

    ИмяПланаОбмена = одАтрибут(ФайлОбмена, одТипСтрока, «ПланОбмена»);

    
    КодКому = одАтрибут(ФайлОбмена, одТипСтрока, «Кому»);

    КодОтКого = одАтрибут(ФайлОбмена, одТипСтрока, «ОтКого»);

    
    Если Не ПустаяСтрока(ИмяПланаОбмена) Тогда

        
        Попытка

            УзелОбменаЗагрузкаФоновыхДанных = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(КодОтКого);

        Исключение

            УзелОбменаЗагрузкаФоновыхДанных = Неопределено;

        КонецПопытки;

    
    Иначе

        УзелОбменаЗагрузкаФоновыхДанных = Неопределено;

    КонецЕсли;

    
    ДобавлениеОбъектовИзФоновогоОбменаЗагрузка = одАтрибут(ФайлОбмена, одТипЧисло, «ДобавлениеОбъектовИзФоновогоОбмена»);

    КоличествоОбъектовДляФоновогоОбменаЗагрузка = одАтрибут(ФайлОбмена, одТипЧисло, «КоличествоОбъектовДляФоновогоОбмена»);

    ПолученоОбъектовФоновогоОбмена = одАтрибут(ФайлОбмена, одТипЧисло, «ПереданоОбъектовФоновогоОбмена»);

                                
    одПропустить(ФайлОбмена, «ДанныеПоФоновомуОбмену»);

    
//    Если Не ПустаяСтрока(Конвертация.ПослеПолученияИнформацииОбУзлахОбмена) Тогда

//

//        Попытка

//            

//            Если ФлагРежимОтладкиОбработчиков Тогда

//                

//                Выполнить(ПолучитьСтрокуВызоваОбработчика(Конвертация, «ПослеПолученияИнформацииОбУзлахОбмена»));

//                

//            Иначе

//                

//                Выполнить(Конвертация.ПослеПолученияИнформацииОбУзлахОбмена);

//                

//            КонецЕсли;

//            

//        Исключение

//            СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(176, ОписаниеОшибки(), «ПослеПолученияИнформацииОбУзлахОбмена (конвертация)»);

//            

//            Если Не ФлагРежимОтладки Тогда

//                ВызватьИсключение СтрокаСообщенияОбОшибке;

//            КонецЕсли;

//            

//            //Возврат Ложь;

//            Возврат;

//        КонецПопытки;

//    

//    КонецЕсли;

    //Юрасов—

    
Иначе

    СтруктураЗаписи = Новый Структура(«ИмяУзла», ИмяУзла);

    ЗаписатьВПротоколВыполнения(9, СтруктураЗаписи);

КонецЕсли;

9

790th

30.09.15

13:13

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

10

Naumov

30.09.15

14:14

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

Обратился клиент с просьбой оказать помощь в 1С. Проблема: перестал работать обмен ут10.2 — бп 3.0. Ошибка указана выше. Обмен не работает, данные накапливаются, надо что-то делать.

Посмотрел конфигурацию БП3.0, действительно в ней нет данных «Перечисление.СтатусОплатыСчетаПокупателю.НеОплачен».

Т.е. главная задача убрать из правил это предопределенное свойство.

С корректировкой правил обмена дел особо не имел. Поэтому потратил некоторое время на выгрузку правил из БП3.0.

Обработка из конвертации данных «Выгрузка правил синхронизации.epf» в этой конфигурации не работает.

Как я и думал «добрые» разработчики 1с спрятали выгрузку правил обмена в файл вот тут:

В итоге сохранил их в файл zip.

В zip архиве у нас 3 файла

Причем при попытке загрузить их обратно в конфигурацию через кнопку «Загрузить правила» получил тут же ошибку «Неправильно указаны реквизиты шапки объекта «Валюты». Реквизит «ПараметрыПрописиНаРусском» не существует.«

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

Решил редактировать файлы блокнотом.

Итак исправляем ошибку «Неправильно указаны реквизиты шапки объекта «Валюты». Реквизит «ПараметрыПрописиНаРусском» не существует.«

Открываем блокнотом файл ExchangeRules.xml и ищем «ПараметрыПрописиНаРусском».

Видим, что правило очень хочет чтобы приемником тоже был «ПараметрыПрописиНаРусском», которого у нас нет. Поэтому этот фрагмент мы удаляем.

Пакуем наши 3 файла в zip и пытаемся загрузить — все грузится без ошибок.

При загрузке правил еще возникала ошибка «Конфликт блокировок при выполнении транзакции«.

Решил так. Выгнал всех, запустил конфигуратор. Из конфигуратора 1с-предприятие и сразу грузить правила. Ошибка не появлялась.

Теперь исправим ошибку «Предопределенное значение «Перечисление.СтатусОплатыСчетаПокупателю.НеОплачен» не найдено«.

В конвертации данных нашел что вот в этом месте возникает ошибка

Но править решил через любимый блокнот.

Вот это место, я его просто закомментировал.

Вначале пытался просто сделать Перечисление.СтатусОплатыСчета, но БП начало при обмене падать с ошибкой что нет метода установитьСтатусДокумента.

Сохранил изменения, загрузил эти 3 файла в архив zip

и загрузил в БП

После этого обмен заработал без ошибок.

Исправленные правила также необходимо загрузить в УТ10.3

p.s. Понял, что необходимо срочно начать изучение КД.

bless18
15.10.2012 16:54 Прочитано: 17036

Добрый день! В 1С КД редакции 2.1 (2.1.5.1) создала правила конвертации между двумя идентичным БП редакция 2.0 (2.0.38.6). При загрузке обработкой КД V8Exchan82.epf выдается сообщение: «Ошибка формата файла обмена»
С чем это может быть связано?

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
15.10.2012 17:56 Ответ № 1

(0) bless18, ошибка где-то в правилах, надо снять новые снимки метаданных и загрузить их в КД, далее посмотреть правила и попробовать выгрузку

Подсказка: Для редактирования своего ответа щелкните по значку (справа)

Вопрос: Почему не принимает данные, сформированные в настройке обмена (но при этом принимает если данные сформировать обработкой обмена)? Создал правила выгрузки одного элементарного справочника из УТ 10.3.16.1 (обычное приложение, платформа 8.2.19.102) в Самописную (управляемое приложение, платформа 8.3.6.2152) Настроил в УТ узлы и планы обмена, сделал настройку обмена данными и выгрузил. В файл данных вошло два элемента справочника. </ФайлОбмена> Для загрузки использую обработку из поставки КД 2.1.8.2: V8Exchan83.epf в режиме работы На сервере. Получаю ошибки: Ошибка формата файла обмена     ИмяУзла                =  ДанныеПоОбмену … Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5256)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=» ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике} … Загружено объектов: 0 (см. фото) НО! это при выгрузке из УТ через настройку обмена. Ошибка исчезает если выгружать данные обработкой из поставки КД: V8Exchan82.epf (82 не смотря на то что платформа 83, т.к. в режиме Обычного приложения). Привожу содержание «правильного» XML: И еще в Управляемом приложении не позволяет сформировать модуль отладки загрузки. При нажатии на любую из указанных кнопок ничего не происходит (см. фото)

Удалил секции: <ИнформацияОТипахДанных> <ДанныеПоОбмену.. <ДанныеПоФоновомуОбмену.. Теперь пишет: Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5255)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=» ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}

выгрузку и загрузку желательно надо проводить обработками одной версии. Или лезть в отладчик.

Боюсь что затянуть из последней УТ свежую версию Настройки обмена, будет непросто, т.к. этот механизм там не сконцентрирован в одном месте а «размазан» по всей конфигурации (

Так. А вот еще принципиальное отличние:

В этой записи нет никакой ошибки.

Правила от КД 2.1.8.2 Удалось избавиться от главной ошибки «Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5255)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=» ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}» Таким образом вставил кусок из обработки из УТ. Поместил в обработку Приемника (коммент //Юрасов): Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта.НайтиЭлементЗапросом(…) … Теперь загружает данные, хоть и остались ошибки: Ошибка формата файла обмена     ИмяУзла                =  ДанныеПоОбмену … Ошибка формата файла обмена     ИмяУзла                =  ДанныеПоФоновомуОбмену

Эти две ошибки тоже убрал. Пришлось перенести еще один кусок в приемник: Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта.ПроизвестиЧтениеДанных(…) …         ВызватьИсключение «Не найден узел обмена для загрузки данных. План обмена: » + ИмяПланаОбмена + «, Код: » + КодОтКого;                          ВызватьИсключение «Номер сообщения меньше либо равен ранее принятому»;

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

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

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Ошибка формата сообщения обмена?

Настраиваю обмен между ERP 2.4 и УПП 1.3 с помощью правил в кд2.
На стороне УПП всё работает принимает — выгружает файлы. А вот на стороне ERP файлы выгружаются, но не принимаются, пишет, что «Ошибка формата сообщения обмена». В чём проблема и на какой стороне её искать?


  • Вопрос задан

  • 734 просмотра

Пригласить эксперта

Мне кажется, у Вас в ERP правила не соответствуют тем, по которым данные выгружаются из УПП.

Настраиваю обмен между ERP 2.4 и УПП 1.3 с помощью правил в кд2.

может всетаки КД3??…
Или 1с сделал обмен таки…. для КД2, я то упустил.
Вообще ошибка, относится в КД2. Проявляется если выгружать полныстью объект, поставьте галку «Не запоминать выгруженные объекты» и должно заработать.


  • Показать ещё
    Загружается…

21 сент. 2023, в 07:57

20000 руб./за проект

21 сент. 2023, в 06:22

4000 руб./за проект

21 сент. 2023, в 04:48

2000 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • 1с ошибка формата потока при поиске
  • 1с ошибка поле объекта не обнаружено состояние эдо
  • 1с ошибка подключения к системе взаимодействия
  • 1с ошибка печати табличного документа
  • 1с ошибка печати ошибка при получении характеристик принтера

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: