|
|
|
v7: Выгрузка в XML | ☑ | ||
|---|---|---|---|---|
|
0
Nas1993
08.12.13
✎
12:58
|
Здравствуйте,помогите пожалуйста с выгрузкой в XML.нужно добавить условия
1 условие что элемент Графика отпусков не помечен на удаление 2. условие что входит в Дату выгрузки 3. условие что Документ равен "График отпусков" или "график отпусков списком" мой код: //******************************************* Процедура Сформировать() ТЗДанные = СоздатьОбъект("ТаблицаЗначений"); ТЗДанные.НоваяКолонка("Фамилия"); ТЗДанные.НоваяКолонка("Имя"); ТЗДанные.НоваяКолонка("Отчество"); ТЗДанные.НоваяКолонка("Должность"); ТЗДанные.НоваяКолонка("Филиал"); ТЗДанные.НоваяКолонка("Компания"); ТЗДанные.НоваяКолонка("ДатаНачала"); ТЗДанные.НоваяКолонка("ДатаОкончания"); ДатаВыгрузки = ТекущаяДата(); ДатаВыгрузкиСледСледМесяц = ДобавитьМесяц(ДатаВыгрузки, 2); СправочникГрафикОтпусков = СоздатьОбъект("Справочник.ГрафикОтпусковСотрудника"); СправочникГрафикОтпусков.ВыбратьЭлементы(0); Пока СправочникГрафикОтпусков.ПолучитьЭлемент() = 1 Цикл Если (СправочникГрафикОтпусков.ПометкаУдаления() = 1) или (СправочникГрафикОтпусков.ЭтоГруппа() = 1) или (СправочникГрафикОтпусков.ПринадлежитГруппе(Константа.ГруппаУволенных) = 1) или (СправочникГрафикОтпусков.ПринадлежитГруппе(Константа.ПапкаПрактикантов) = 1) Тогда Продолжить; КонецЕсли; //Если НачМесяца(СправочникГрафикОтпусков.ДатаНачПоГрафику)=НачМесяца(ДатаВыгрузкиСледСледМесяц) Тогда ТЗДанные.НоваяСтрока(); ТЗДанные.Фамилия = Падеж(СправочникГрафикОтпусков.Владелец.Наименование,1,3,"1"); ТЗДанные.Имя = Падеж(СправочникГрафикОтпусков.Владелец.Наименование,1,3,"2"); ТЗДанные.Отчество = Падеж(СправочникГрафикОтпусков.Владелец.Наименование,1,3,"3"); ТЗДанные.Должность = СправочникГрафикОтпусков.Владелец.Должность.Получить(ТекущаяДата()); ТЗДанные.Филиал = СправочникГрафикОтпусков.Владелец.Филиал.Получить(ТекущаяДата()); ТЗДанные.Компания = СправочникГрафикОтпусков.Компания; ТЗДанные.ДатаНачала =СправочникГрафикОтпусков.ДатаНачПоГрафику; ТЗДанные.ДатаОкончания =СправочникГрафикОтпусков.ДатаКонПоГрафику; //КонецЕсли; КонецЦикла; ТЗДанные.Сортировать("ДатаНачала, Фамилия"); Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "ExtForms\" + "v7plus.dll") <> 1 Тогда Сообщить("Компонента v7plus.dll не найдена!"); Возврат; КонецЕсли; XMLАнализатор = СоздатьОбъект("AddIn.XMLParser"); XMLКорневойРаздел = XMLАнализатор.СоздатьДокумент(); XMLКорневойРаздел.Кодировка ="UTF-8"; ДанныеXML = XMLКорневойРаздел.СоздатьПодчиненныйЭлемент("root"); ИмяФайла = "file.xml"; ПутьЛокальный = КаталогИБ() + "ExtForms\"; ТЗДанные.ВыбратьСтроки(); Пока ТЗДанные.ПолучитьСтроку() = 1 Цикл Ветка = ДанныеXML.СоздатьПодчиненныйЭлемент("item"); Ветка.УстановитьАтрибут("surname" , СокрЛП(ТЗДанные.Фамилия)); Ветка.УстановитьАтрибут("name" , СокрЛП(ТЗДанные.Имя)); Ветка.УстановитьАтрибут("patronymic" , СокрЛП(ТЗДанные.Отчество)); Ветка.УстановитьАтрибут("company" , ТЗДанные.Компания.Наименование); Ветка.УстановитьАтрибут("dateofbegining" , Строка(ТЗДанные.ДатаНачала)); Ветка.УстановитьАтрибут("dateofending" , Строка(ТЗДанные.ДатаОкончания)); Ветка.УстановитьАтрибут("position" , ТЗДанные.Должность.Наименование); Ветка.УстановитьАтрибут("filial" , ТЗДанные.Филиал.Наименование); КонецЦикла; Если ФС.СуществуетФайл( + ИмяФайла) = 1 Тогда ФС.УдалитьФайл(ПутьЛокальный + ИмяФайла); КонецЕсли; XMLКорневойРаздел.Записать(ПутьЛокальный + ИмяФайла); КонецПроцедуры |
|||
|
1
Тьма
08.12.13
✎
14:05
|
1. Условие выполняется строчкой
Если (СправочникГрафикОтпусков.ПометкаУдаления() = 1) 2. В тексте присутствует переменная ДатаВыгрузки, реквизиты ДатаНачПоГрафику и ДатаКонПоГрафику справочника графиков. Как именно формулируется условие? Нужны графики, которые включают в себя эту дату? Или графики, которые начинаются в том же месяце, что и дата выгрузки? Или заканчиваются? Что означает ДатаВыгрузкиСледСледМесяц = ДобавитьМесяц(ДатаВыгрузки, 2); и закомментированное условие? 3. Какой именно Документ имеется ввиду и какое отношение он имеет к справочнику графиков, перебор которого осуществляется? Не вижу никакой привязки документа к справочнику или наоборот. |
|||
|
2
Nas1993
08.12.13
✎
15:47
|
ДатаВыгрузкиСледСледМесяц = ДобавитьМесяц(ДатаВыгрузки, 2); это означает ,что выгрузка отпусков сотрудников будет за январь(поэтому следслед и 2)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |