Формат файла поменялся:
Текст процедуры для нового файла:
Процедура загрузка()
XML = Новый ЧтениеXML;
XML.ОткрытьФайл(ПутьКФайлу);
Таблица = новый ТаблицаЗначений;
Таблица.Колонки.Добавить("НомерКарты",новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("Бензин", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("ЦенаСоСкидкой", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("СуммаСоСкидкой", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("ID", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("DT", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("АдресЗаправки", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("ВидОперации", Новый ОписаниеТипов("Строка"));
Таблица.Колонки.Добавить("количество", Новый ОписаниеТипов("число"));
Таблица.Колонки.Добавить("SERVICE",новый ОписаниеТипов("Строка"));
состояние("Загрузка...");
Уровень = ложь;
ТЭ = неопределено;
НомерКарты = "";
состояние("Загрузка файла данных...");
Пока XML.Прочитать() Цикл
//ПолучитьXMLТип(ЧтениеXML);
Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ТЭ = XML.Имя;
Если XML.Имя = "G_CARD" Тогда
Уровень = 1;
ИначеЕсли XML.Имя = "G_TRANSACTION" Тогда
Уровень = 2;
НС = таблица.Добавить();
НС.НомерКарты = НомерКарты;
иначеЕсли XML.Имя = "G_PRODUCT" Тогда
Уровень = 3;
иначеЕсли XML.Имя = "G_PRODUCT_GROUP" Тогда
Уровень = 31;
иначеЕсли XML.Имя = "G_GAS_STATION" Тогда
Уровень = 32;
КонецЕсли;
КонецЕсли;
Если XML.ТипУзла = ТипУзлаXML.Текст Тогда
Если Уровень = 1 Тогда
Если ТЭ = "S_NUMBER" Тогда
номерКарты = XML.Значение;
КонецЕсли;
иначеЕсли уровень = 2 тогда
Если ТЭ = "F_PRICE_WO_DISCOUNT" Тогда
НС.ЦенаСоСкидкой = XML.Значение;
иначеЕсли ТЭ = "F_SUM_WO_DISCOUNT" тогда
НС.СуммаСоСкидкой = XML.Значение;
иначеЕсли ТЭ = "ID_TRANS" тогда
НС.ID = XML.Значение;
иначеЕсли ТЭ = "DT_TRANS" тогда
НС.DT = XML.Значение;
иначеЕсли ТЭ = "TRANS_TYPE_NAME" тогда
НС.ВидОперации = XML.Значение;
иначеЕсли ТЭ = "F_QTY" тогда
НС.количество = XML.Значение;
КонецЕсли;
иначеЕсли уровень = 3 тогда
Если ТЭ = "S_NAME" Тогда
НС.Бензин = XML.Значение;
КонецЕсли;
иначеЕсли уровень = 32 тогда
Если ТЭ = "S_ADDRESS" Тогда
нс.АдресЗаправки = XML.Значение;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Если XML.Имя = "G_CARD" Тогда
ЗагружаемКарту = ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
XML.Закрыть();
состояние("Запись данных в документ...");
Заправки.Очистить();
Для каждого строка Из таблица Цикл
карта = справочники.ТопливныеКарты.НайтиПоРеквизиту("НомерКарты",строка.номерКарты);
Если карта <> справочники.ТопливныеКарты.ПустаяСсылка() Тогда
нс = Заправки.Добавить();
нс.Карта = карта;
иначе
сообщить("Не найдена карта с номером: " + строка.номерКарты);
продолжить;
КонецЕсли;
нс.сумма = строка.СуммаСоСкидкой;
нс.НомерЧека = строка.ID;
типГСМ = Справочники.ТипыГСМ.НайтиПоРеквизиту("Газпром",строка.Бензин);
НС.ТипГСМ = ТипГСМ;
НС.Цена = строка.ЦенаСоСкидкой;
НС.ВидОбслуживания = строка.ВидОперации;
нс.АдресЗаправки = строка.АдресЗАправки;
нс.Количество = строка.Количество;
Год = лев(Строка.DT,4);
месяц = сред(строка.DT,6,2);
день = сред(строка.DT,9,2);
период = Дата(год + месяц + день);
нс.Период = период;
КонецЦикла;
сообщить("Загрузка данных завершена!",СтатусСообщения.Информация);
КонецПроцедуры
Показать