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 —> 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 —> CRM</Наименование>
<ДатаВремяСоздания>2015-09-28T12:18:38</ДатаВремяСоздания>
<Источник>УправлениеТорговлей</Источник>
<Приемник>Конфигурация</Приемник>
<Параметры/>
<Обработки/>
<ПравилаКонвертацииОбъектов>
<Правило>
<Код>Направления</Код>
<Источник>СправочникСсылка.Айсберг_Направления</Источник>
<Приемник>СправочникСсылка.Направления</Приемник>
</Правило>
</ПравилаКонвертацииОбъектов>
<ПравилаОчисткиДанных/>
<Алгоритмы/>
<Запросы/>
</ПравилаОбмена>
<Объект Нпп=»1″ Тип=»СправочникСсылка.Направления» ИмяПравила=»Направления»><Ссылка Нпп=»1″>
<Свойство Имя=»Код» Тип=»Строка»>
<Значение>000000013</Значение>
</Свойство>
</Ссылка>
<Свойство Имя=»Наименование» Тип=»Строка»>
<Значение>СВЧ</Значение>
</Свойство>
<Свойство Имя=»ПометкаУдаления» Тип=»Булево»>
<Значение>false</Значение>
</Свойство><Свойство Имя=»Родитель» Тип=»СправочникСсылка.Направления»>
<Пусто/>
</Свойство>
<Свойство Имя=»ЭтоГруппа» Тип=»Булево»>
<Значение>false</Значение>
</Свойство>
</Объект>
<Объект Нпп=»2″ Тип=»СправочникСсылка.Направления» ИмяПравила=»Направления»><Ссылка Нпп=»2″>
<Свойство Имя=»Код» Тип=»Строка»>
<Значение>000000014</Значение>
</Свойство>
</Ссылка>
<Свойство Имя=»Наименование» Тип=»Строка»>
<Значение>СМ</Значение>
</Свойство>
<Свойство Имя=»ПометкаУдаления» Тип=»Булево»>
<Значение>false</Значение>
</Свойство><Свойство Имя=»Родитель» Тип=»СправочникСсылка.Направления»>
<Пусто/>
</Свойство>
<Свойство Имя=»ЭтоГруппа» Тип=»Булево»>
<Значение>false</Значение>
</Свойство>
</Объект>
</ФайлОбмена>
И еще в Управляемом приложении не позволяет сформировать модуль отладки загрузки. При нажатии на любую из указанных кнопок ничего не происходит (см. фото) https://yadi.sk/i/pk8RMDXxjQyCm
790th
30.09.15
✎
09:47
Удалил секции:
<ИнформацияОТипахДанных>
<ДанныеПоОбмену..
<ДанныеПоФоновомуОбмену..
Теперь пишет:
Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5255)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=»
ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}
vicof
30.09.15
✎
09:50
выгрузку и загрузку желательно надо проводить обработками одной версии. Или лезть в отладчик.
790th
30.09.15
✎
09:57
Боюсь что затянуть из последней УТ свежую версию Настройки обмена, будет непросто, т.к. этот механизм там не сконцентрирован в одном месте а «размазан» по всей конфигурации (
790th
30.09.15
✎
10:14
Так. А вот еще принципиальное отличние:
«Правильный» файл:
<Свойство Имя=»Код» Тип=»Строка»>
<Значение>000000013</Значение>
«Ошибочный» файл:
<Свойство Имя=»{КлючПоискаВИБИсточнике}»>
<Значение>{«#»,0bd0deec-1479-4cdf-ae4b-f10e71f3205a,111:9ed000248cc4a20411e26f88824de171}</Значение>
Naumov
30.09.15
✎
11:02
(4) В этой записи нет никакой ошибки.
Naumov
30.09.15
✎
11:03
А правила не от КД 3.0?
790th
30.09.15
✎
11:41
Правила от КД 2.1.8.2
Удалось избавиться от главной ошибки
«Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(5255)}: Ошибка при вызове метода контекста (Выполнить): {(1, 68)}: Синтаксическая ошибка «=»
ВЫБРАТЬ Ссылка ИЗ Справочник.Направления ГДЕ {ИмяТипаВИБИсточнике} <<?>>= &{ИмяТипаВИБИсточнике} И Код = &Код И {ИмяТипаВИБПриемнике} = &{ИмяТипаВИБПриемнике} И {КлючПоискаВИБИсточнике} = &{КлючПоискаВИБИсточнике}»
Таким образом вставил кусок из обработки из УТ. Поместил в обработку Приемника (коммент //Юрасов):
Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта.НайтиЭлементЗапросом(…)
…
// не по всем параметрам можно искать
Если ИмяПараметра = «{УникальныйИдентификатор}»
ИЛИ ИмяПараметра = «{ИмяПредопределенногоЭлемента}»
//Юрасов++
ИЛИ ИмяПараметра = «{КлючПоискаВИБИсточнике}»
ИЛИ ИмяПараметра = «{КлючПоискаВИБПриемнике}»
ИЛИ ИмяПараметра = «{ИмяТипаВИБИсточнике}»
ИЛИ ИмяПараметра = «{ИмяТипаВИБПриемнике}» Тогда
//Юрасов—
Продолжить;
КонецЕсли;
Теперь загружает данные, хоть и остались ошибки:
Ошибка формата файла обмена
ИмяУзла = ДанныеПоОбмену
…
Ошибка формата файла обмена
ИмяУзла = ДанныеПоФоновомуОбмену
790th
30.09.15
✎
13:09
Эти две ошибки тоже убрал. Пришлось перенести еще один кусок в приемник:
Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта.ПроизвестиЧтениеДанных(…)
…
ИначеЕсли (ИмяУзла = «ФайлОбмена») И (ФайлОбмена.ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда
//Юрасов++
ИначеЕсли ИмяУзла = «ДанныеПоОбмену» Тогда
// обработка удаления объекта из информационной базы
ИмяПланаОбмена = одАтрибут(ФайлОбмена, одТипСтрока, «ПланОбмена»);
КодКому = одАтрибут(ФайлОбмена, одТипСтрока, «Кому»);
КодОтКого = одАтрибут(ФайлОбмена, одТипСтрока, «ОтКого»);
УзелОбменаЗагрузкаДанных = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(КодОтКого);
Если Не ЗначениеЗаполнено(УзелОбменаЗагрузкаДанных) Тогда
ВызватьИсключение «Не найден узел обмена для загрузки данных. План обмена: » + ИмяПланаОбмена + «, Код: » + КодОтКого;
КонецЕсли;
мНомерВходящегоСообщения = одАтрибут(ФайлОбмена, одТипЧисло, «НомерИсходящегоСообщения»);
НомерПринятогоСообщения = одАтрибут(ФайлОбмена, одТипЧисло, «НомерВходящегоСообщения»);
Если УзелОбменаЗагрузкаДанных.НомерПринятого >= мНомерВходящегоСообщения Тогда
ВызватьИсключение «Номер сообщения меньше либо равен ранее принятому»;
КонецЕсли;
//Юрасов++
//ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбменаЗагрузкаДанных, НомерПринятогоСообщения);
//мЗапросНаличияСтрокВРегистреСоответствия.УстановитьПараметр(«Узел», УзелОбменаЗагрузкаДанных);
//мЗапросНаличияПустыхДляИсточникаВРегистреСоответствия.УстановитьПараметр(«Узел», УзелОбменаЗагрузкаДанных);
//Юрасов—
Попытка
мПрефиксДокументовПриЗагрузке = СокрЛП(УзелОбменаЗагрузкаДанных.ПрефиксДляЗагружаемыхДокументов);
мДлинаПрефиксаДокументовПриЗагрузке = СтрДлина(мПрефиксДокументовПриЗагрузке);
Исключение
мПрефиксДокументовПриЗагрузке = «»;
мДлинаПрефиксаДокументовПриЗагрузке = 0;
КонецПопытки;
Попытка
мДатаДокументовДляУстановкиПрефикса = УзелОбменаЗагрузкаДанных.ДатаНачалаВыгрузкиДокументов;
Исключение
мДатаДокументовДляУстановкиПрефикса = Неопределено;
КонецПопытки;
Попытка
мИспользоватьИнформациюОМестеСозданияОбъектовПриЗагрузке = УзелОбменаЗагрузкаДанных.ИспользоватьИнформациюОМестеСозданияОбъектовПриВыгрузкеИЗагрузкеДанных;
Исключение
мИспользоватьИнформациюОМестеСозданияОбъектовПриЗагрузке = Неопределено;
КонецПопытки;
одПропустить(ФайлОбмена, «ДанныеПоОбмену»);
ИначеЕсли ИмяУзла = «ДанныеПоФоновомуОбмену» Тогда
// обработка удаления объекта из информационной базы
ИмяПланаОбмена = одАтрибут(ФайлОбмена, одТипСтрока, «ПланОбмена»);
КодКому = одАтрибут(ФайлОбмена, одТипСтрока, «Кому»);
КодОтКого = одАтрибут(ФайлОбмена, одТипСтрока, «ОтКого»);
Если Не ПустаяСтрока(ИмяПланаОбмена) Тогда
Попытка
УзелОбменаЗагрузкаФоновыхДанных = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(КодОтКого);
Исключение
УзелОбменаЗагрузкаФоновыхДанных = Неопределено;
КонецПопытки;
Иначе
УзелОбменаЗагрузкаФоновыхДанных = Неопределено;
КонецЕсли;
ДобавлениеОбъектовИзФоновогоОбменаЗагрузка = одАтрибут(ФайлОбмена, одТипЧисло, «ДобавлениеОбъектовИзФоновогоОбмена»);
КоличествоОбъектовДляФоновогоОбменаЗагрузка = одАтрибут(ФайлОбмена, одТипЧисло, «КоличествоОбъектовДляФоновогоОбмена»);
ПолученоОбъектовФоновогоОбмена = одАтрибут(ФайлОбмена, одТипЧисло, «ПереданоОбъектовФоновогоОбмена»);
одПропустить(ФайлОбмена, «ДанныеПоФоновомуОбмену»);
// Если Не ПустаяСтрока(Конвертация.ПослеПолученияИнформацииОбУзлахОбмена) Тогда
//
// Попытка
//
// Если ФлагРежимОтладкиОбработчиков Тогда
//
// Выполнить(ПолучитьСтрокуВызоваОбработчика(Конвертация, «ПослеПолученияИнформацииОбУзлахОбмена»));
//
// Иначе
//
// Выполнить(Конвертация.ПослеПолученияИнформацииОбУзлахОбмена);
//
// КонецЕсли;
//
// Исключение
// СтрокаСообщенияОбОшибке = ЗаписатьИнформациюОбОшибкеОбработчикиКонвертации(176, ОписаниеОшибки(), «ПослеПолученияИнформацииОбУзлахОбмена (конвертация)»);
//
// Если Не ФлагРежимОтладки Тогда
// ВызватьИсключение СтрокаСообщенияОбОшибке;
// КонецЕсли;
//
// //Возврат Ложь;
// Возврат;
// КонецПопытки;
//
// КонецЕсли;
//Юрасов—
Иначе
СтруктураЗаписи = Новый Структура(«ИмяУзла», ИмяУзла);
ЗаписатьВПротоколВыполнения(9, СтруктураЗаписи);
КонецЕсли;
790th
30.09.15
✎
13:13
В итоге решение примерно такое. захожу отладчиком при загрудке и смотрю на что ругается. вижу что в коде нет варианта для обработки такого поля или параметра. Иду в конфигурацию откуда выгружал, смотрю как этот код работает там. вижу такую же функцию но с дополнительным кодом. вижу что этого то кода и нехватает что бы обработать данный параметр. копировать/встаить. проверка синтаксиса. ругается. смотрю если что то для меня не важное убираю. если важное разбираюсь почему ругается и что еще нужно копипастнуть. проверяю правила. и так вылизываю пока не пропадут все ошибки при загрузке
Naumov
30.09.15
✎
14:14
у тебя просто древние релизы конфигураций, в них встроенная обработка универсального обмена старой версии.
| bless18 |
|
||
|---|---|---|---|
|
|
Добрый день! В 1С КД редакции 2.1 (2.1.5.1) создала правила конвертации между двумя идентичным БП редакция 2.0 (2.0.38.6). При загрузке обработкой КД V8Exchan82.epf выдается сообщение: «Ошибка формата файла обмена» |
| Yandex |
|
||
|---|---|---|---|
|
|
| E_Migachev |
|
||
|---|---|---|---|
|
|
(0) bless18, ошибка где-то в правилах, надо снять новые снимки метаданных и загрузить их в КД, далее посмотреть правила и попробовать выгрузку |
| Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или . |
Показывать по
10
20
40
сообщений
Новая тема
Ответить
firelli
Дата регистрации: 25.07.2010
Сообщений: 36
Доброго времени суток! В конфигурации бухгалтерии 7.7 ред. 4.5 было добавлено новое перечисление. Как добавить новый реквизит в типовые правила RAc4_Pr2? Пробовал на 1с8.1_КД 2.0 и 1с7.7_КД 1.0 правила не загружаются пишет ошибку «Ошибка формата файла обмена. Не возможности обработать узел: Инструкция»
Рисовод
Дата регистрации: 26.12.2007
Сообщений: 25775
> В конфигурации бухгалтерии 7.7 ред. 4.5 было добавлено новое перечисление<br>Это перечисление теперь является аналитикой к какому-то счету? Т.е. план счетов не типовой?
firelli
Дата регистрации: 25.07.2010
Сообщений: 36
Да это аналитика «ИсточникФинансирования» для основных средств и других счетов. Может вы подскажите как изменить правила обмена?
Рисовод
Дата регистрации: 26.12.2007
Сообщений: 25775
Нет! Я не знаю! Просто то-же сталкивался с подобной проблемой и заказывали спецу! Самое обидное то, что эта аналитака потом оказалась никому не нужна!
Thorvardr
Дата регистрации: 25.02.2005
Сообщений: 3082
Такие небольшие точечные изменения проще делать в каком нибудь обычном текстовом редакторе.<br>Берем, например Far manager. <br>1. открываем RAC4_PR2.XML в текстовом редакторе, видим: http://s008.radikal.ru/i306/1010/74/751364b116b9.jpg<br>2. идем в самый конец строки с текстом, видим: http://s008.radikal.ru/i304/1010/35/39fb5a9a06e6.jpg<br>3. обращаем внимание на то, что строка заканчивается закрывающим тэгом <br>4. ставим курсор вот сюда: http://s007.radikal.ru/i300/1010/62/9bc8b644256b.jpg<br>5. жмем Enter раз 5, получим: http://s011.radikal.ru/i318/1010/52/8dc3f3d9615d.jpg<br>6. по аналогии с тем как описаны правила переноса значений стандартных перечислений добавляем в образованное нами пространство примерно такой текст: http://s014.radikal.ru/i329/1010/d1/2a4effb17da4.jpg<br>По ширине в картинку не влезло, но не беда, я результат выложу, там увидите полностью.<br>7. Сохраняем файл, делаем выгрузку из Бух, выгрузится все как надо.<br>Пара важных замечаний:<br><br>Почему 1С присваивает своим правилам идентификаторы «ЗначенияСубконто_1С_0001ХХХ», а я присвоил идентификатор правилу «ЗначенияСубконто_My_0000001»? Идентификатор правила должен быть уникален в рамках файла и, вообще то, может быть любым, я не стал вписываться в нумерацию 1С и не стал присваивать номер, например ЗначенияСубконто_1С_0001470 (очередной), потому что если 1С поменяет правила и добавит в них что то, то запросто такой идентификатор займут (они то не знают о моих изменениях) и это не позволит мне при обновлениях простым copy-paste поддерживать сделанное в правилах изменение. Поэтому идентификатор у нас свой, который точно у 1С не появится. Идентификаторы реквизитам тоже я присвоил «IDMy_000001», «IDMy_000002» по той же причине.<br><br>При переносе «имени» субконто идет перенос Строка->Реквизит приемника и строку мы явно описываем как Преобразование=»Источник финансирования». Почему именно так, а не «Ист. фин.», например? Тут важный момент. То что написано в кавычках должно точно совпадать с синонимом вида субконто, как его описали в Бухгалтерии. Вот так:<br>http://s009.radikal.ru/i307/1010/ec/1a65ea3de892.jpg<br><br>В общем, вот что вышло в результате: http://zalil.ru/29885236<br><br>А вообще, больший интерес представляет перенос из ЗиК в Бух. Тут то задача разовая, ерунда, а там в правила тоже придется написать что то подобное и поддерживать это при обновлениях релизов, поэтому я чуть написал про идентификаторы.
firelli
Дата регистрации: 25.07.2010
Сообщений: 36
Спасибо огромное за содержательный ответ!
Показывать по
10
20
40
сообщений
Читают тему:
Вопрос: Почему не принимает данные, сформированные в настройке обмена (но при этом принимает если данные сформировать обработкой обмена)? Создал правила выгрузки одного элементарного справочника из УТ 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
Комментарии доступны только авторизированным пользователям
Ошибка Формата Файла Обмена Не Возможности Обработать Узел Инструкция Rating: 9,0/10 1036reviews
GBdsGi8E/Vl_jp7gkaZI/AAAAAAAACVI/TALdoMteagw/s1600/%25D0%2594%25D0%25B5%25D1%2582%25D0%25B0%25D0%25BB%25D0%25B8%25D0%25B7%25D0%25B0%25D1%2586%25D0%25B8%25D1%258F%2B%25D0%25B7%25D0%25B2%25D0%25BE%25D0%25BD%25D0%25BA%25D0%25BE%25D0%25B2%2B2015-12-03%2B09-37-34.png’ alt=’Ошибка Формата Файла Обмена Не Возможности Обработать Узел Инструкция’ title=’Ошибка Формата Файла Обмена Не Возможности Обработать Узел Инструкция’ />Гарантирует отсутствия ошибок в данном документе. Никакая часть данного документа не может быть воспроизведена или передана в какой бы то ни было. Инструкции по работе с внешними системами, приложениями и. Структура файлов обмена данными текстового формата с БС 1С Предприя. D0%93%D0%BB3_27_1.png’ alt=’Ошибка Формата Файла Обмена Не Возможности Обработать Узел Инструкция’ title=’Ошибка Формата Файла Обмена Не Возможности Обработать Узел Инструкция’ />

