Перем ИмяПути,ИмяФайла; Перем 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); КонецПроцедуры //ПриОткрытии