Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Чтение xml-файла

Чтение xml-файла
Я
   lesta
 
12.03.20 - 13:35
Добрый день!
Помогите, пожалуйста, с проблемой?
Данные приходят в виде xml-файла. Вся информация идет только в атрибутах, элементов около 10 тыс. В элементе включены данные, которые записываются в справочники. Причем очень часто в один справочник считывается один и тот же объект из половины элементов многократно. Чтобы не записывалось, делаю проверку: если элемент в справочнике есть, то сравниваю по реквизитам, так как предполагается повторная загрузка с корректировкой данных.
Теперь получается многократная проверка( Но внутри записи одного файла не будет изменений одного объекта. Как сделать, чтобы на первое вхождение проверялось полностью по всем реквизитам, а потом только УИ?

<?xml version="1.0" encoding="UTF-8"?>
<Справочник.ВнутренниеДокументы>
    <Элемент ВнутреннийДокументУИ="3ada6f2ac-fc76-11e9-5a97-78e3b50f4ec0" Папка="Дополнительные соглашения" РегистрационныйНомер="" Дата="" Наименование="-" ТипДоговора="" Организация="66d3c333-a03d-11e8-bfb3-50335db4e7ec" ОрганизацияНаименование="Ассоциация;" ОрганизацияНаименованиеПолное="Ассоциация" ОрганизацияВид="Юридическое лицо" ОрганизацияИНН="" ОрганизацияКПП="" .../>
    <Элемент ВнутреннийДокументУИ="cb80916c-1744-11ea-3781-78e3b50f4ec0" Папка="Дополнительные соглашения" РегистрационныйНомер="" Дата="" Наименование="-" ТипДоговора="" ОрганизацияГУИД="66d3c333-a03d-11e8-bfb3-50465db4e7ec" ОрганизацияНаименование="Ассоциация ;" ОрганизацияНаименованиеПолное="Ассоциация " ОрганизацияВид="Юридическое лицо" ОрганизацияИНН="" ОрганизацияКПП="" .../>
</Справочник.ВнутренниеДокументы>
 
 
   Garykom
 
1 - 12.03.20 - 13:40
(0) о вот тока недавно было XDTO пакеты. Зачем они нужны?
   Злопчинский
 
2 - 12.03.20 - 13:41
ПервыйНах = 1;
...
Если ПервыйНах=1 Тогда
//проверить по всем реквизитам

 ПервыйНах = 0;
Иначе
//проверить по УИ

КонецЕсли;

- так не пойдет?
   Жан Пердежон
 
3 - 12.03.20 - 13:42
(0) считай данные в табличку, табличку закинь в запрос, в запросе отбери только нужное
   Garykom
 
4 - 12.03.20 - 13:49
А задачка интересная, кривая выгрузка данных с дублями и дубли детализации повторно не надо обрабатывать.
Если организация уже по уид загружена и заполнена то типа не надо перезаполнять, просто найдем ее по уид и подставим в документ.

Короче завести структуры загруженных объектов (ссылки пишем), если ссылка на объект в структуре = загружен и его данные игнорируем.
Ключ это уид, а значение ссылка в структурах.

Структур хз сколько будет, вижу только Организация в куске
   lesta
 
5 - 12.03.20 - 13:54
(4) Структур 7, атрибутов за 30( Выгрузка не из приятных...

Спасибо за направление
   lesta
 
6 - 12.03.20 - 13:55
(3) Спасибо
   lesta
 
7 - 12.03.20 - 13:55
(2) Там с проверкой реквизитов уже такое себе...((
   RomaH
 
8 - 12.03.20 - 14:06
СоотвествиеОбъектов = Новый Соответствие;

Если СоотвествиеОбъектов[Ключ] = Неопределено Тогда
//Обрабатываем

СоттветсвиеОбъектов.Встаить(Ключ,0);
Конецелис
   lesta
 
9 - 13.03.20 - 05:53
(8) Спасибо за решение

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.