<?xml version="1.0" encoding="UTF-8"?> <orgstructure> <department dep_id="7ebb913c-e9c6-11dc-a4f2-0017311416a1" dep_name="генеральный директор" dep_code="П100"> <orgposition user_id="ba68bb79-c377-11dc-a4ca-0017311416a1" user_position_id="ba68bb78-c377-11dc-a4ca-0017311416a1" user_position="генеральный директор" user_is_active="1"/> </department> <department dep_id="8132fe4a-0789-11dd-887b-001d60f0496c" dep_name="Бухгалтерия" dep_code="П200"> <orgposition user_id="21448456-15b0-11dd-80a1-00145e3710ab" user_position_id="3c948267-df80-11dc-a4e8-0017311416a1" user_position="специалист" user_is_active="0"/> <orgposition user_id="d299614a-df9d-11dc-a4e8-0017311416a1" user_position_id="53082fda-edf4-11dd-af3e-00145e3710ab" user_position="заместитель главного бухгалтера" user_is_active="1"/> <orgposition user_id="8132fe6c-0789-11dd-887b-001d60f0496c" user_position_id="d299614d-df9d-11dc-a4e8-0017311416a1" user_position="секретарь" user_is_active="1"/> <orgposition user_id="2e81c20e-f190-11dc-a4fb-0017311416a1" user_position_id="2e81c20d-f190-11dc-a4fb-0017311416a1" user_position="бухгалтер" user_is_active="0"/> <orgposition user_id="ba68bb7e-c377-11dc-a4ca-0017311416a1" user_position_id="53082fd9-edf4-11dd-af3e-00145e3710ab" user_position="главный бухгалтер" user_is_active="1"/> <orgposition user_id="9893f85a-0403-11df-a872-00215aa545b4" user_position_id="53073825-e5e6-11dc-a4ef-0017311416a1" user_position="делопроизводитель" user_is_active="1"/> </department> <department dep_id="6bb91f72-e077-11dd-bf56-00145e3710ab" dep_name="Отдел Продаж" dep_code="П300"> <department dep_id="6bb91f73-e077-11dd-bf56-00145e3710ab" dep_name="Клиентский сервис" dep_code="П310"> <orgposition user_id="02ad5122-e231-11dd-bf56-00145e3710ab" user_position_id="6bb91f6c-e077-11dd-bf56-00145e3710ab" user_position="Специалист" user_is_active="1"/> </department> <department dep_id="6bb91f74-e077-11dd-bf56-00145e3710ab" dep_name="Менеджеры" dep_code="П320"> <orgposition user_id="02584921-с235-11dd-bf56-00145e3710ab" user_position_id="7bb98f6c-e577-11dd-bf56-00145e3710ab" user_position="Менеджер" user_is_active="1"/> </department> </department> </orgstructure>
Процедура ОбойтиУровеньДерева(Строки, Запись) Для каждого Строка из Строки Цикл Если ПустаяСтрока(Строка(Строка.Сотрудник)) Тогда Запись.ЗаписатьНачалоЭлемента("department"); Запись.ЗаписатьАтрибут("dep_id", Строка(Строка.ПодразделениеОрганизации.УникальныйИдентификатор())); Запись.ЗаписатьАтрибут("dep_name", Строка(Строка.ПодразделениеОрганизации)); Запись.ЗаписатьАтрибут("dep_code", СокрЛП(Строка(Строка.ПодразделениеОрганизации.Код))); ОбойтиУровеньДерева(Строка.Строки, Запись); Запись.ЗаписатьКонецЭлемента(); Иначе Запись.ЗаписатьНачалоЭлемента("orgposition"); Запись.ЗаписатьАтрибут("user_id", Строка(Строка.Сотрудник.УникальныйИдентификатор())); Запись.ЗаписатьАтрибут("user_position_id", Строка(Строка.Должность.УникальныйИдентификатор())); Запись.ЗаписатьАтрибут("user_position", Строка(Строка.Должность)); Запись.ЗаписатьАтрибут("user_is_active", ?(Строка.ПричинаИзмененияСостояния = Перечисления.ПричиныИзмененияСостояния.Увольнение,"0","1")); ОбойтиУровеньДерева(Строка.Строки, Запись); Запись.ЗаписатьКонецЭлемента(); КонецЕсли КонецЦикла; КонецПроцедуры Процедура КнопкаВыгрузитьНажатие(Кнопка) ПутьКФайлу = "D:\Vigruzka_"+Формат(ТекущаяДата(),"ДФ=YYYYMMdd")+".xml"; Запись = Новый ЗаписьXML; Запись.ОткрытьФайл(ПутьКФайлу, "UTF-8"); Запись.ЗаписатьОбъявлениеXML(); //<?xml version="1.0" encoding="UTF-8"?> Запись.ЗаписатьНачалоЭлемента("orgstructure"); Запрос = Новый Запрос; Запрос.Текст=" |ВЫБРАТЬ | РаботникиОрганизацийСрезПоследних.Сотрудник, | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации, | РаботникиОрганизацийСрезПоследних.Должность, | РаботникиОрганизацийСрезПоследних.Период, | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Порядок КАК ПодразделениеОрганизацииПорядок, | РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&dateper, ) КАК РаботникиОрганизацийСрезПоследних | |УПОРЯДОЧИТЬ ПО | ПодразделениеОрганизацииПорядок |ИТОГИ ПО | ПодразделениеОрганизации ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ |"; Запрос.УстановитьПараметр("dateper", ТекущаяДата()); Результат = Запрос.Выполнить(); Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ОбойтиУровеньДерева(Дерево.Строки, Запись); Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); КонецПроцедуры