|
Запрос и обработка ответов в ЕРПН (експорт/импорт xml). | ☑ | ||
|---|---|---|---|---|
|
0
Kreont
19.04.12
✎
10:37
|
Обработка готовая кому надо для работы или изучения :)
Експорт в хмл через запись обычного текст.файла. Импорт уже с испольованием методов ЧтениеXML. http://commerce.at.ua/load/1-1-0-6 (обработка) http://commerce.at.ua/publ/1-1-0-18 (исх.текст) Для 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 Тогда Возврат Ложь; КонецЕсли; Возврат Истина; КонецФункции |
|||
|
1
Kreont
20.04.12
✎
10:06
|
обработка не тони
|
| Форум | Правила | Описание | Секции | Поиск |