Исправление загрузки данных из Бухгалтерии 3.0 в Комплексную автоматизацию 2.2



Обработка корректно отрабатывает процесс загрузки данных из БП 3.0 в КА 2.2

Проблема в типовой обработке (рис.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 всё нормально отработало, ну разве что один банковский счёт иностранного банка не перенёсся. Но это уже мелочь… да и не факт, что данная ошибка уже была связана с форматом файла.

2 Comments

  1. grimid0

    Добрый день.

    Купили. А дальше что?

    Хотя бы минимальную инструкцию можно выложить?

    Reply
  2. Power_0N

    (1) Андрей, это исправленная обработка типовой базы Бухгалтерия 3.0

    Я, к сожалению, не ее создатель. Но, мне кажется, интуитивно понятно как она работает.

    Если есть конкретный вопрос, то можете его тут озвучить, возможно я или кто-то другой вам поможем.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *