Выгрузка списка сотрудников организации в XML. 1С УПП 8.2
Использую данный скрипт, поместив его в регламентированные заданиях (в рамках доработки проекта «Учет оргтехники в организации» — разработка модуля контроля прохода работников через турникет).Поставщик данных — регистр РаботникиОрганизацийСрезПоследних. Период — задаем например текущую дату. На выходе получаем текущую фазу работника («Работает», «В отпуске и т.п.), и если есть дата выхода из этой «Фазы» (например дата выхода из отпуска), то пишется и она.
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 |
Процедура СохранитьВXMLСписокСотрудников(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РаботникиОрганизацийСрезПоследних.Сотрудник, | РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Код КАК кодфиз, | РаботникиОрганизацийСрезПоследних.Сотрудник.Должность КАК должн, | ВЫБОР | КОГДА СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения >= &Период | ТОГДА СостояниеРаботниковОрганизацийСрезПоследних.Состояние | ИНАЧЕ ""Работает"" | КОНЕЦ КАК Состояние, | ВЫБОР | КОГДА СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения >= &Период | ТОГДА СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения | ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | КОНЕЦ КАК КонецФазы |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизацийСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&Период, ) КАК СостояниеРаботниковОрганизацийСрезПоследних | ПО РаботникиОрганизацийСрезПоследних.Сотрудник = СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник |ГДЕ | РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок <> 0"; Запрос.УстановитьПараметр("Период", Период); Результат = Запрос.Выполнить().Выбрать(); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("\\10.80.16.34\Documents\employees.xml","UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("export"); пока Результат.Следующий() цикл ЗаписьXML.ЗаписатьНачалоЭлемента("employees"); ЗаписьXML.ЗаписатьБезОбработки("<faza>"+СокрЛП(Результат.Состояние)+"</faza>"); ЗаписьXML.ЗаписатьБезОбработки("<fio>"+СокрЛП(Результат.Сотрудник)+"</fio>"); ЗаписьXML.ЗаписатьБезОбработки("<code>"+СокрЛП(Результат.кодфиз)+"</code>"); ЗаписьXML.ЗаписатьБезОбработки("<enddate>"+СокрЛП(Результат.КонецФазы)+"</enddate>"); ЗаписьXML.ЗаписатьБезОбработки("<post>"+СокрЛП(Результат.должн)+"</post>"); ЗаписьXML.ЗаписатьКонецЭлемента(); конеццикла; ЗаписьXML.ЗаписатьКонецЭлемента(); |