|
При загрузке данных из XML не все документы записываются | ☑ | ||
---|---|---|---|---|
0
YaroslavStr
24.01.14
✎
16:43
|
Сделал процедуру записи данных в файл XML. Все записывается отлично. Сделал процедуру чтения и записи документов из файла XML, но записываются документы как бы через один. В чем может быть проблема?
Документы идут разных типов. Но даже одного и того же типа пишутся раз через раз. Такое ощущение, что не корректно обрабатывается функция ВозможностьЧтенияXML(Чтение). |
|||
1
zladenuw
24.01.14
✎
16:45
|
как выгружаешь и как загружаешь ? через что ? ошибка в алгоритме, а не в методах платформы
|
|||
2
YaroslavStr
24.01.14
✎
16:54
|
Смысл в том что надо из периферийных баз выгружать списки документов одного заказа и направлять их на производство. При выгрузке формируется XML с данными об этом заказе. Отдельно создаются теги с данными котрагента. Далее ниже записывается его главный документ "Раскрой", а потом его дочерние теги: Изделия, Деталировки. Все документы создаются нормально, кроме "Деталировки". Они как бы пропускаются частями.
Если ВозможностьЧтенияXML(Чтение) Тогда ЗагружаемыйОбъект = ПрочитатьXML(Чтение); Док = ЗагружаемыйОбъект.Скопировать(); Док.Дата = ТекущаяДата(); Если ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РаскройТорговое") Тогда Док.ДокОснование = Ссылка; Док.Изделия.Очистить(); Док.ОбменДанными.Загрузка = Истина; Док.Записать(); СсылкаНаРаскрой = Док.Ссылка; Сообщить("Новый Объект: "+Док); Сообщить("********************"); КонецЕсли; Если ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РаскройМеталл") Тогда Док.ДокОснование = Ссылка; Док.ОбменДанными.Загрузка = Истина; Док.Записать(); СсылкаНаРаскрой = Док.Ссылка; Сообщить("Новый Объект: "+Док); Сообщить("********************"); КонецЕсли; Если ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РаскройУслуги") Тогда Док.ДокОснование = Ссылка; Док.ОбменДанными.Загрузка = Истина; Док.Записать(); СсылкаНаРаскрой = Док.Ссылка; Сообщить("Новый Объект: "+Док); Сообщить("********************"); КонецЕсли; Если ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.Изделие") Тогда Док.ДокРаскрой = СсылкаНаРаскрой; Док.ОбменДанными.Загрузка = Истина; Док.Записать(); СсылкаНаИзделие = Док.Ссылка; Сообщить("Новый Объект: "+Док); Сообщить("********************"); КонецЕсли; Если ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РДсп") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РДвп") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РДюбонд") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РЕтс") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РЗеркало") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РМодерн") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РОракал") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РПластик") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РПоклейка") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РПокраска") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РПрофиль") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РРаздвижка") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РСтекло") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РСтолешня") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РТорпал") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РТруба") или ТипЗнч(Док.Ссылка) = Тип("ДокументСсылка.РФурнитура") Тогда Док.Изделие = СсылкаНаИзделие; Док.ОбменДанными.Загрузка = Истина; Док.Записать(); Сообщить("Новый Объект: "+Док); Сообщить("********************"); КонецЕсли; КонецЕсли; |
|||
3
YaroslavStr
24.01.14
✎
16:55
|
Сама функция ВозможностьЧтенияXML возвращает одному документу Истина, а другому Ложь. Как такое может быть?
|
|||
4
YaroslavStr
24.01.14
✎
16:55
|
Документ копируется перед записью, что бы избежать дубликатов документов.
|
|||
5
YaroslavStr
24.01.14
✎
17:50
|
Проверил и действительно функция обрабатывает вложенные объекты через один: первый, третий, пятый и т.д. Кто что посоветует?
|
|||
6
YaroslavStr
24.01.14
✎
17:56
|
Короче, решил проблему дублированием выгружаемых объектов. Так как функция работает через один то дублирование помогло. :) неправильно но пока не знаю как исправить :)
|
|||
7
SUA
24.01.14
✎
18:00
|
Если ВозможностьЧтенияXML(Чтение) Тогда
заменить на Попытка похоже "ВозможностьЧтенияXML" сама считывает очередной элемент а потом еще раз ПрочитатьXML или позиционироваться обратно надо |
|||
8
YaroslavStr
24.01.14
✎
20:01
|
Видимо так и есть. Надо завтра выследить в чем дело.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |