1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
Перем ИмяПути,ИмяФайла; Перем xmlParser; //пример чтения xml файла. Функция УстановитьКомпоненту() Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"ExtFormsv7plus.dll")=0 Тогда Если ЗагрузитьВнешнююКомпоненту("v7plus.dll")=0 Тогда Сообщить("Не удалось обнаружить компоненту V7Plus.dll!"); Возврат 0; КонецЕсли; КонецЕсли; Попытка xmlParser = СоздатьОбъект("Addin.XmlParser") ; Исключение Сообщить("Не удалось создать объект Addin.XmlParser!"); Возврат 0; КонецПопытки; Возврат 1; КонецФункции // УстановитьКомпоненту Процедура Выполнить() стрИмяФайла=ИмяПути+ИмяФайла; таб=СоздатьОбъект("ТаблицаЗначений"); таб.НоваяКолонка("Ф","Строка",50,0); таб.НоваяКолонка("И","Строка",50,0); таб.НоваяКолонка("О","Строка",50,0); таб.НоваяКолонка("ДатаР","Дата"); таб.НоваяКолонка("_01","Число",16,2); таб.НоваяКолонка("_02","Число",16,2); таб.НоваяКолонка("_03","Число",16,2); таб.НоваяКолонка("_04","Число",16,2); таб.НоваяКолонка("_05","Число",16,2); таб.НоваяКолонка("_06","Число",16,2); таб.НоваяКолонка("_07","Число",16,2); таб.НоваяКолонка("_08","Число",16,2); таб.НоваяКолонка("_09","Число",16,2); таб.НоваяКолонка("_10","Число",16,2); таб.НоваяКолонка("_11","Число",16,2); таб.НоваяКолонка("_12","Число",16,2); таб.НоваяКолонка("СумГод","Число",18,2); таб.НоваяКолонка("ОблГод","Число",18,2); таб.НоваяКолонка("УдерГод","Число",18,2); таб.НоваяКолонка("Индекс","Строка",6,0); таб.НоваяКолонка("Регион","Строка",2,0); таб.НоваяКолонка("Город","Строка",20,0); таб.НоваяКолонка("Улица","Строка",20,0); таб.НоваяКолонка("Дом","Строка",5,0); таб.НоваяКолонка("Корпус","Строка",5,0); таб.НоваяКолонка("Квартира","Строка",5,0); Документ=xmlParser.СоздатьДокумент(); Документ.Загрузить(стрИмяФайла); Данные=Документ.ПолучитьПодчиненныйПоНомеру(2); Для Сч=1 По Данные.КоличествоПодчиненных() Цикл таб.НоваяСтрока(); Элем=Данные.ПолучитьПодчиненныйПоНомеру(Сч); УзелПолучДох=Элем.ВыбратьУзлы("ПолучДох"); Для Сч3=0 По УзелПолучДох.КоличествоУзлов-1 Цикл // Сообщить(УзелПолучДох.ПолучитьУзел(Сч3).ПредставлениеXML); // Сообщить(УзелПолучДох.ПолучитьУзел(Сч3).КоличествоПодчиненных()); ФИО=УзелПолучДох.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(1); таб.Ф=ФИО.ПолучитьПодчиненныйПоНомеру(1).Текст; таб.И=ФИО.ПолучитьПодчиненныйПоНомеру(2).Текст; таб.О=ФИО.ПолучитьПодчиненныйПоНомеру(3).Текст; таб.ДатаР=УзелПолучДох.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(3).Значение; адр=УзелПолучДох.ПолучитьУзел(Сч3).ПолучитьПодчиненныйПоНомеру(6); Для Сч4=1 По адр.КоличествоПодчиненных() Цикл Если адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="Индекс" Тогда таб.Индекс=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; ИначеЕсли адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="КодРегион" Тогда таб.Регион=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; ИначеЕсли адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="Город" Тогда таб.Город=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; ИначеЕсли адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="Улица" Тогда таб.Улица=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; ИначеЕсли адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="Дом" Тогда таб.Дом=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; ИначеЕсли адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="Корпус" Тогда таб.Корпус=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; ИначеЕсли адр.ПолучитьПодчиненныйПоНомеру(Сч4).Наименование="Кварт" Тогда таб.Квартира=адр.ПолучитьПодчиненныйПоНомеру(Сч4).Текст; Иначе /////// КонецЕсли; КонецЦикла; КонецЦикла; УзелСвДохСтав=Элем.ВыбратьУзлы("СвДохСтав"); Для Сч3=0 По УзелСвДохСтав.КоличествоУзлов-1 Цикл //ел=УзелСвДохСтав.ПолучитьУзел(Сч3); УзелДохВыч=УзелСвДохСтав.ПолучитьУзел(Сч3).ВыбратьУзлы("ДохВыч"); Для Сч4=0 По УзелДохВыч.КоличествоУзлов-1 Цикл МесДоход=УзелДохВыч.ПолучитьУзел(Сч4); ИмяМес=""; СумМес=0; Если МесДоход.ПолучитьПодчиненныйПоНомеру(1).Наименование="НомМес" Тогда ИмяМес=МесДоход.ПолучитьПодчиненныйПоНомеру(1).Текст; КонецЕсли; Если МесДоход.ПолучитьПодчиненныйПоНомеру(3).Наименование="СумДоход" Тогда СумМес=МесДоход.ПолучитьПодчиненныйПоНомеру(3).Значение; КонецЕсли; Если ПустоеЗначение(ИмяМес)=0 Тогда Если ИмяМес="01" Тогда таб._01=СумМес; ИначеЕсли ИмяМес="02" Тогда таб._02=СумМес; ИначеЕсли ИмяМес="03" Тогда таб._03=СумМес; ИначеЕсли ИмяМес="04" Тогда таб._04=СумМес; ИначеЕсли ИмяМес="05" Тогда таб._05=СумМес; ИначеЕсли ИмяМес="06" Тогда таб._06=СумМес; ИначеЕсли ИмяМес="07" Тогда таб._07=СумМес; ИначеЕсли ИмяМес="08" Тогда таб._08=СумМес; ИначеЕсли ИмяМес="09" Тогда таб._09=СумМес; ИначеЕсли ИмяМес="10" Тогда таб._10=СумМес; ИначеЕсли ИмяМес="11" Тогда таб._11=СумМес; ИначеЕсли ИмяМес="12" Тогда таб._12=СумМес; КонецЕсли; КонецЕсли; КонецЦикла; УзелНалПер=УзелСвДохСтав.ПолучитьУзел(Сч3).ВыбратьУзлы("СГДНалПер"); НалПер=УзелНалПер.ПолучитьУзел(0); Если НалПер.Наименование="СГДНалПер" Тогда таб.СумГод=НалПер.ПолучитьПодчиненныйПоНомеру(1).Значение; таб.ОблГод=НалПер.ПолучитьПодчиненныйПоНомеру(2).Значение; таб.УдерГод=НалПер.ПолучитьПодчиненныйПоНомеру(3).Значение; КонецЕсли; //тут еще берем данные КонецЦикла; Состояние(Сч); КонецЦикла; Т=СоздатьОбъект("Таблица"); Т.ИсходнаяТаблица("Таблица"); таб.выбратьСтроки(); Т.ВывестиСекцию("Шапка"); нпп=1; Пока таб.ПолучитьСтроку()=1 Цикл Т.ВывестиСекцию("Текст"); нпп=нпп+1; КонецЦикла; Т.ТолькоПросмотр(1); Т.Опции(0, 0, 1, 0); // Т.ОбластьПечати(2); Т.ПараметрыСтраницы(2,,,5,5,5,5,,, 1); Т.Показать("Прочитали из XML"); КонецПроцедуры Процедура Выбрать() ФС.ВыбратьФайл(0,ИмяФайла,ИмяПути,"Выберите файл","xml файлы (*.xml) |*.xml|Все файлы (*.*) |*.*","xml", ); Если ПустоеЗначение(ИмяФайла)=0 Тогда PathSbitn=ИмяПути+ИмяФайла; КонецЕсли; КонецПроцедуры //Выбрать Процедура ПриОткрытии() ИмяФайла =""; ИмяПути = "P:"; res=УстановитьКомпоненту(); // Сообщить(res); КонецПроцедуры //ПриОткрытии |
Пример файла XML :