Ошибка при загрузке правил обмена универсальный обмен данными

В этой статье речь пойдет о настройках универсального
формата обмена и ошибках, которые возникают на начальном этапе настройки (этап
№1). В конвертации данных 3.0 есть инструкция по настройке правил конвертации
на примере. Однако не все пункты понятны и не везде дано подробное описание.
Плюс ко всему в стандартных обработках и в самой программе возникают ошибки, о
которых я и хочу рассказать в этой статье, а также предлагаю скачать
доработанные мной обработки и расширение, чтобы без ошибок и потери
драгоценного времени можно было настроить правила.

Обратимся к исходному примеру, который представлен в
конвертации данных в начале работы.

С первым шагом (шаг 1) – все понятно. Нужно для каждой
конфигурации, между которыми планируем настраивать обмен, выгрузить структуры
информационных баз. С помощью обработки MD83Exp.epf,
входящей в комплект поставки. На этом этапе останавливаться не будем, так как
он подробно описан в программе. Однако в стандартной обработке
MD83Exp.epf скрыты
настройки обработки, в связи с этим не выгружаются регистры сведений. Я
исправила этот момент, и Вы можете приобрести исправленную обработку. Ссылки в конце страницы.

Следующим действием (шаг 2) предлагается сделать экспорт
xml-схемы формата обмена
, из любой базы. В этом примере, который
рассматривается в конфигурации Конвертация данных xml-схемы одинаковые у обеих баз, так
что достаточно сделать экспорт из любой базы. Но в примере не говорится, что
если все-таки конфигурации разнятся, то нужно выбрать похожие XDTO-пакеты в базах и экспортировать их. Версия определяется по цифрам, указанным у XDTO-пакета.
Например: EnterpriseData_1_3_20 — версия формата 1.3.

Обратите внимание, что версию формата обмена нужно выбирать
наиболее оптимальную. Например: в одной конфигурации версия формата последняя
1.6, а в другой конфигурации – 1.5. Следовательно, оптимальный формат будет
1.5.

Сам экспорт xml-схемы формата обмена в программе описан. На
картинке ниже я показываю, как это можно сделать.

экспорт xml-схемы формата обмена

Далее в примере предлагается сделать загрузки в конвертацию
данных (шаг 3 и шаг 4).

Сначала загружаем структуру информационных баз (по очереди)
раздел «Конфигурации» — «Загрузка
структуры конфигурации»  флаг «В новую версию конфигурации»
.

Затем нужно загрузить 
xml-схему формата обмена. Формат
данных – «Загрузка структуры формата»
, выбираем ранее выгруженные файлы
с расширением «xsd». Выбираем
только один файл. Раньше делали Множественный выбор с ExchangeMessage, но это было в старых версиях
конфигурации. После загрузки обязательно проверьте структуру формата в разделе Формат
данных – Дерево объектов формата – далее выбрать версию формата
. Если структура
заполнена – там есть документы, справочники, то все в порядке, можно продолжать
настройки, иначе выгрузите новую версию и повторите всю процедуру сначала.

Структура формата

Далее в примере
(этап 2) предлагается создание конвертации с нуля, однако если у баз уже есть
типовые правила обмена, которые достаточно доработать, то можно загрузить эти
правила в конфигурацию и работать с ними.

Прежде чем выгружать правила конвертации нужно открыть общий
модуль  МенеджерОбменаЧерезУниверсальныйФормат
.
Если это Бухгалтерия Предприятия 3.0, то открываем МенеджерОбменаЧерезУниверсальныйФормат13. В открытом модуле
переходим в меню Файл – Сохранить
копию
– сохраняем файл с любым именем (например — Модуль).

Менеджер обмена через универсальный формат

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

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

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

Сначала создаем
новую конвертацию, Конвертации – Создать
.  Заполняем поля новой конвертации. Выбираем конфигурацию. Наименование
конвертации можно указать свое, реквизит Имя менять нельзя. Сохраняем
изменения.

Переходим в раздел
Конвертация – Загрузка правил синхронизации из файлов
, далее заполняем поля. Место
загрузки нужно указать «В существующую конвертацию»
и указать какую именно.
Файл с модулем обмена – нужно указать тот файл, копию которого сохраняли (в
этом примере он называется Модуль). Далее по очереди загружаем каждую
выгруженную версию правил, не закрывая настройки, просто выбираете новый
каталог обмена. 

Загрузка правил синхронизации файлов

Сложностей в загрузке нет никаких. Все интуитивно понятно,
только в момент загрузки тоже возникает ошибка «Поле объекта не
обнаружено»
. Здесь тоже придется
либо вносить исправления в конфигурацию Конвертация данных, либо можно
воспользоваться уже моим готовым решением. Я сделала расширение для Конвертации
данных 3.0
, подключив которое Вы решаете эту проблему. Приобрести расширение и две исправленные обработки, о которых я рассказывала вначале статьи, вы можете приобрести по ссылке ниже. 

При загрузке
появится сообщение «Обработчики предназначены для другой конвертации…
Продолжить загрузку?»  Нажимаем «Да».

После загрузки правил
можно приступать к их редактированию.

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

Находятся критики, которые заявляют, что можно самостоятельно исправить код, если специалист работает с конвертацией. Я не спорю – может. Я же выкладываю обработки для тех, кому жалко времени копаться в коде и переписывать, или человек еще только начинает разбираться в этой теме, а тут еще возникает куча проблем со стандартными обработками. Тем более что цена ниже стоимости проезда на транспорте в крупных городах.

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

Доработки проводились на конвертации данных 3.0(3.0.5.3)

Обработки предоставляются пакетом. То есть сразу две исправленные обработки и расширение, так как для работы нужны все перечисленные  исправления. Стоимость пакета составляет 350 руб

 Оформить покупку 

Посмотрел код.

В коде проверяется чтобы в zip-архиве был либо один либо два файла.

Это странно, ведь раньше в zip-файле всегда было три файла:

-правила обмена

-правила обмена корреспондента

-правила регистрации

Там такой код:

            Если ЭтоПравилаКонвертации Тогда

                
СписокРаспакованныхФайлов.Количество() = 2 Тогда

                    
                    Если СписокРаспакованныхФайлов[0].Имя = «ExchangeRules.xml»

                        И СписокРаспакованныхФайлов[1].Имя =»CorrespondentExchangeRules.xml» Тогда

                        
                        ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя);

                        ДвоичныеДанныеКорреспондента = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[1].ПолноеИмя);

                        
                    ИначеЕсли СписокРаспакованныхФайлов[1].Имя = «ExchangeRules.xml»

                        И СписокРаспакованныхФайлов[0].Имя =»CorrespondentExchangeRules.xml» Тогда

                        
                        ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[1].ПолноеИмя);

                        ДвоичныеДанныеКорреспондента = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя);

                        
                    Иначе

                        
                        НСтрока = НСтр(«ru = ‘Имена файлов в архиве не соответствуют ожидаемым. Ожидаются файлы:

                            |ExchangeRules.xml — правила конвертации для текущей программы;

                            |CorrespondentExchangeRules.xml — правила конвертации для программы-корреспондента.'»);

                        ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);

                        
                    КонецЕсли;

                    
                // Старый формат

                ИначеЕсли СписокРаспакованныхФайлов.Количество() = 1 Тогда

                    НСтрока = НСтр(«ru = ‘В архиве найден один файл правил конвертации. Ожидаемое количество файлов в архиве — два. Ожидаются файлы:

                        |ExchangeRules.xml — правила конвертации для текущей программы;

                        |CorrespondentExchangeRules.xml — правила конвертации для программы-корреспондента.'»);

                    ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);

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

                ИначеЕсли СписокРаспакованныхФайлов.Количество() > 1 Тогда

                    НСтрока = НСтр(«ru = ‘При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами.'»);

                    ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);

                КонецЕсли;

                
            Иначе

                
                // Закладываем полученный файл правил обратно в двоичные данные.

                Если СписокРаспакованныхФайлов.Количество() = 1 Тогда

                    ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя);

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

                ИначеЕсли СписокРаспакованныхФайлов.Количество() > 1 Тогда

                    НСтрока = НСтр(«ru = ‘При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами.'»);

                    ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);

                КонецЕсли;

                
            КонецЕсли;

При переносе данных с одной конфигурации в другую или загрузки каких-либо бухгалтерских данных в 1С пользователь может столкнуться с сообщением «Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДанными XML}». Обычно после данного сообщения об ошибке следует какое-либо уточнение, конкретизирующее тип ошибки, например «Тип не определен (ПланСчетовСсылка.Налоговый)». Появление данной ошибки обычно сигнализирует о несовпадении типов объектов в двух конфигурациях 1С (базовой и конечной), требуя корректировки правил обмена. Ниже разберём суть возникшей дисфункции и способы её решения.

Ошибка при загрузке данных

Содержание

  1. Суть и причины дисфункции
  2. Измените правила обмена
  3. Изучите текст сообщения об ошибке
  4. Перенесите остатки на текущий месяц
  5. Обратитесь в техническую поддержку
  6. Обратитесь к платным специалистам
  7. Заключение

Суть и причины дисфункции

Рассматриваемая проблема имеет массовый характер, и встречается у множества пользователей. Обычно её появление вызвано:

  • Разницей конфигураций и версий 1С, из-за чего переменные в обеих конфигурациях отличаются (по типам объектов, реквизитам и др.). Например, вместо «УдалитьСтавкаНДС» в новой конфигурации стоит «СтавкаНДС», вместо «УчётнаяПолитикаОрганизаций» необходима «УчетнаяПолитика» и другое. В некоторых случаях запрашиваемый новой конфигурацией реквизит может и вовсе отсутствовать как таковой;
  • Имеющейся ошибкой в правилах конвертации (обмена);
  • Некорректным переносом остатков (имеется попытка переноса остатков не на текущий месяц);
  • Некорректно работает программный помощник выгрузки (например, ПомощникВыгрузки_V8);
  • Некорректно установленным обновлением 1С.

Давайте разберёмся, как исправить ошибку при загрузке данных: {Обработка.УниверсальныйОбмен ДаннымиXML} на вашем ПК.

Это полезно знать: как исправить  неверный формат хранилища данных в 1С.

Измените правила обмена

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

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

Изучите текст сообщения об ошибке

Обычно текст возникшей ошибки кроме процитированного нами шаблона содержит конкретику ошибки, например «Поле объекта не обнаружено (СтавкаНДС)». Таким образом, можно понять, что в новой конфигурации отсутствует реквизит «СтавкаНДС». Если вы не можете самостоятельно изменить настройки правил обмена, то в таком (и подобных ему) случаях необходимо открыть ваш конфигуратор, в справочниках отыскать справочник «Номенклатура», скопировать там реквизит «УдалитьСтавкаНДС», и назвать новый реквизит «СтавкаНДС».

Перенесите остатки на текущий месяц

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

Обратитесь в техническую поддержку

Поскольку появление ошибки при загрузке данных XML вызвано разницей в базовой и конечной конфигурации, то наиболее простым способом исправить ошибку {Обработка.УниверсальныйОбменДаннымиXML}  является обращение в службу технической поддержки https://1c.ru/rus/support/support.htm. Если вы имеете дело с лицензионной версией продукта, тогда вам помогут. Вполне вероятно, что вам предоставят специализированные правила переноса (файлы с расширением .epf и .xml) для решения возникшей дисфункции.

Помощь 1С

Обратитесь к платным специалистам

Решение ошибки может состоять в обращении к специалистам по 1С, которые за определённую плату решат возникшую у вас проблему. Таких специалистов можно найти на различных форумах 1С, списаться с ними лично, и решить возникший вопрос.

Читайте также: «Обнаружено нарушение целостности системы» в 1C — как решить.

Заключение

В нашем материале мы разобрали, почему возникает ошибка при загрузке данных {Обработка.УниверсальныйОбменДаннымиXML} и как можно её исправить. Обычно появление проблемы вызвано ошибкой в правилах конфигурации и несоответствием реквизитов, из-за чего перенос данных не может быть осуществлён корректно. Решение проблемы состоит в изменении правил переноса и созданием конгруэнтных реквизитов, после чего рассматриваемая ошибка обычно исчезает.

Опубликовано Обновлено

Обратился клиент с просьбой оказать помощь в 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. Понял, что необходимо срочно начать изучение КД.

Вопрос: Почему не принимает данные, сформированные в настройке обмена (но при этом принимает если данные сформировать обработкой обмена)? Создал правила выгрузки одного элементарного справочника из УТ 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

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

Понравилась статья? Поделить с друзьями:
  • Ошибка при загрузке профиля кинопоиск
  • Ошибка при вызове метода контекста получить константы
  • Ошибка при загрузке ноутбука 601
  • Ошибка при загрузке полной прошивки miui
  • Ошибка при вызове метода контекста получить границу