История вкратце такова: Есть 3 информационных базы с идентичными конфигурациями (Бухгалтерия для Украины, редакция 2.0. (2.0.16.1)). на платформе 8.3.11.3034
В 2-х из них ведется учет по "Организации_1" и "Организации_2" соответственно, а в третьей по "Организации_3". В неё нужно выгружать данные из этих двух, но подменять "Организацию_1" и "Организацию_2" на "Организацию_3". Зачем - не спрашивайте, такова задумка начальства в сговоре с бухгалтерами и мне она не понятна, да и понимать не хочу.
Показалось что задача выполнима: нашел обычную внешнюю обработку обмена данными через XML и допилил её в разделе "Загрузка" проверкой получаемых данных:
Пока Сериализатор.ВозможностьЧтенияXML(ЧтениеXML) Цикл
Попытка
ЗаписанноеЗначение = Сериализатор.ПрочитатьXML(ЧтениеXML);
#Область Обработка_входящих_данных
// Нашли Справочник Организации и поместим в него вместо прочитанной нашу организацию по умолчанию
Если ТипЗнч(ЗаписанноеЗначение) = Тип("СправочникОбъект.Организации") Тогда
ЗаписанноеЗначение = Справочники.Организации.НайтиПоКоду("00-000001").ПолучитьОбъект();
КонецЕсли;
// Справочник ПодразделенияОрганизаций иерархически подчинен справочнику Организации, поэтому у него замещаем значение реквизита Владелец
Если ТипЗнч(ЗаписанноеЗначение) = Тип("СправочникОбъект.ПодразделенияОрганизаций") Тогда
ЗаписанноеЗначение.Владелец = Справочники.Организации.НайтиПоКоду("00-000001")
КонецЕсли;
// Если Объект имеет реквизит Организация то заменим этот реквизит на организацию по умолчанию
Если ЗаписанноеЗначение.Метаданные().Реквизиты.Найти("Организация") <> Неопределено Тогда
ЗаписанноеЗначение.Организация = Справочники.Организации.НайтиПоКоду("00-000001")
КонецЕсли;
// У справочника Сотрудники принадлежность сотрудника к организации в реквизите ГоловнаяОрганизация
Если ЗаписанноеЗначение.Метаданные().Реквизиты.Найти("ГоловнаяОрганизация") <> Неопределено Тогда
ЗаписанноеЗначение.ГоловнаяОрганизация = Справочники.Организации.НайтиПоКоду("00-000001")
КонецЕсли;
...
Топорно, но работало...
А теперь суть проблемы: Выгрузил данные с обоих баз. Затянул. Все нормально было. Но с недавних пор возникла ошибка при выгрузке одной из баз. Одна по прежнему без проблем выгружается и загружается, а одна выгружается но при загрузке выдает ошибку. Используется как для выгрузки, так и для загрузки одна и та же обработка. Из обоих баз выгружаются один и тот же перечень документов, конфигурации повторю идентичны... А ошибка такая
По кнопке "Подробнее" вот такой текст:
Цитата
{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(212)}: Ошибка при вызове метода контекста (ПрочитатьXML)
ЗаписанноеЗначение = Сериализатор.ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentObject.ПоступлениеНаРасчетныйСчет Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentObject.ПоступлениеНаРасчетныйСчет
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: РасшифровкаПлатежа Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentTabularSectionRow.ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа
ЗаписанноеЗначение = Сериализатор.ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentObject.ПоступлениеНаРасчетныйСчет Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentObject.ПоступлениеНаРасчетныйСчет
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: РасшифровкаПлатежа Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}DocumentTabularSectionRow.ПоступлениеНаРасчетныйСчет.РасшифровкаПлатежа
Ругается только на документ "ПоступлениеНаРасчетныйСчет" и, насколько я понимаю на его ТабЧасть "РасшифровкаПлатежа". Нашел в обоих XML-файлах эту часть и сравнил чуть ли не по-символьно - никаких различий в структуре, в данных понятно, они разные, но ругается ведь на какую то ошибку при приобразовании... Подскажите в чем может быть причина?