Проблема в типовой обработке (рис.0) в том, что она падает с неинформативной ошибкой в функции общего модуля (рис 1):
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2709)}: Значение не является значением объектного типа (ЗаполнитьПравилаОбработкиДанных)
МенеджерОбмена.ЗаполнитьПравилаОбработкиДанных(НаправлениеОбмена, ПравилаОбработкиДанных);
«МенеджерОбмена» — это Соответствие, в котором отсутствует ключ «ЗаполнитьПравилаОбработкиДанных».
А вот почему в данном соответствии нет этого ключа со значением — вопрос к фирме 1С.
Часть ответа можно получить из модуля объекта обработки:
Функция КомпонентыОбмена(НаправлениеОбмена, ИмяФайлаДанных="") Экспорт
Если ЗначениеЗаполнено(ИмяФайлаДанных) Тогда
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайлаДанных);
ЧтениеXML.Прочитать(); // Message
ЧтениеXML.Прочитать(); // Header
Header = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип("http://www.1c.ru/SSL/Exchange/Message", "Header"));
ВерсияФорматаФайла = Header.AvailableVersion[0];
ЧтениеXML.Закрыть();
ДоступныеВерсииФормата = Новый Соответствие();
ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ПолучитьВерсииФорматаОбмена(ДоступныеВерсииФормата);
Если ДоступныеВерсииФормата.Получить(ВерсияФорматаФайла) = Неопределено Тогда
Отказ = Истина;
Возврат Неопределено;
КонецЕсли;
Иначе
ВерсияФорматаФайла = "1.0"; //было ВерсияФорматаФайла = "1.0.beta"; используется некая бета-версия формата
КонецЕсли;
КомпонентыОбмена = ОбменДаннымиXDTOСервер.ИнициализироватьКомпонентыОбмена(НаправлениеОбмена);
КомпонентыОбмена.ЭтоОбменЧерезПланОбмена = Ложь;
КомпонентыОбмена.Вставить("УзелКорреспондента", ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ПустаяСсылка());
КомпонентыОбмена.КлючСообщенияЖурналаРегистрации = НСтр("ru = 'Перенос данных БП-УП'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка());
КомпонентыОбмена.ВерсияФорматаОбмена = ВерсияФорматаФайла;
КомпонентыОбмена.XMLСхема = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/" + ВерсияФорматаФайла;
//Определение менеджера обмена для версии формата
ДоступныеВерсииФормата = Новый Соответствие();
ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ПолучитьВерсииФорматаОбмена(ДоступныеВерсииФормата);
КомпонентыОбмена.МенеджерОбмена = ДоступныеВерсииФормата.Получить(ВерсияФорматаФайла);
ОбменДаннымиXDTOСервер.ИнициализироватьТаблицыПравилОбмена(КомпонентыОбмена);
Возврат КомпонентыОбмена;
КонецФункции
Насколько я понимаю, версия указывает — какой XDTO-пакет будет использоваться.
В общем, с версией формата файла 1.0 всё нормально отработало, ну разве что один банковский счёт иностранного банка не перенёсся. Но это уже мелочь… да и не факт, что данная ошибка уже была связана с форматом файла.
Добрый день.
Купили. А дальше что?
Хотя бы минимальную инструкцию можно выложить?
(1) Андрей, это исправленная обработка типовой базы Бухгалтерия 3.0
Я, к сожалению, не ее создатель. Но, мне кажется, интуитивно понятно как она работает.
Если есть конкретный вопрос, то можете его тут озвучить, возможно я или кто-то другой вам поможем.