0
Kreont
19.04.12
✎
10:37
|
Обработка готовая кому надо для работы или изучения :)
Експорт в хмл через запись обычного текст.файла.
Импорт уже с испольованием методов ЧтениеXML.
(обработка)
(исх.текст)
Для 1С Бухгалтерия для Украины...
Пример импорта табличной части из ХМЛ в ТЗ:
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ФайлИмпорта);
ЧтениеXML.ИгнорироватьПробелы = Истина;
ТЗХМЛ = Новый ТаблицаЗначений;
ТЗХМЛ.Колонки.Добавить("T1RXXXXG2D", Новый ОписаниеТипов("Дата"));
ТЗХМЛ.Колонки.Добавить("T1RXXXXG31", Новый ОписаниеТипов("Число"));
ТЗХМЛ.Колонки.Добавить("T1RXXXXG32", Новый ОписаниеТипов("Число"));
ТЗХМЛ.Колонки.Добавить("T1RXXXXG33", Новый ОписаниеТипов("Строка"));
Если НЕ ИмпортХМЛвТЗ(ЧтениеXML, ТЗХМЛ, "T1RXXXX") Тогда
Сообщить("ошибка импорта ХМЛ");
ЧтениеXML.Закрыть();
Возврат;
КонецЕсли;
ЧтениеXML.Закрыть();
//В результате в ТЗХМЛ будет табличная часть хмлки с соотвеств. колнками/полями T1RXXXXG2D, ...
// ТЗХМЛ - таблица из структурой колонок = структуре ТЧ у файла ХМЛ // С модификацией таблици входной
// ТегТабл: чтоб обрботать только нужную ТЧ ХМЛ
// Ответ: тру/фалс зачитки данных.
Функция ИмпортХМЛвТЗ(ЧтениеXML, ТЗХМЛ, ТегТабл)
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ТекУзел = ЧтениеXML.Имя;
Если Найти(ТекУзел, ТегТабл) > 0 Тогда
ТекНомерСтроки = 0;
Если ЧтениеXML.ПрочитатьАтрибут() Тогда
ТекНомерСтроки = Число(ЧтениеXML.Значение);
КонецЕсли;
Пока ТекНомерСтроки > ТЗХМЛ.Количество() Цикл
ТЗХМЛ.Добавить();
КонецЦикла;
КонецЕсли;
ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
ТекЗначение = ЧтениеXML.Значение;
Если (Прав(ТекУзел,1) = "D") и НЕ ПустаяСтрока(ТекЗначение) Тогда
ТекДень = Сред(ТекЗначение,1,2);
ТекМес = Сред(ТекЗначение,3,2);
ТекГод = Сред(ТекЗначение,5,4);
ТекЗначение = Дата(""+ТекГод+ТекМес+ТекДень);
КонецЕсли;
Если Найти(ТекУзел, "XXXX") > 0 Тогда
ТЗХМЛ[ТекНомерСтроки-1][ТекУзел] = ТекЗначение;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ТЗХМЛ.Количество() <= 0 Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
|
|