diff --git a/src/cf/AccumulationRegisters/узФактПоЗадачам.xml b/src/cf/AccumulationRegisters/узФактПоЗадачам.xml index 2ed845537..09b521a22 100644 --- a/src/cf/AccumulationRegisters/узФактПоЗадачам.xml +++ b/src/cf/AccumulationRegisters/узФактПоЗадачам.xml @@ -423,6 +423,7 @@ true + \ No newline at end of file diff --git a/src/cf/AccumulationRegisters/узФактПоЗадачам/Ext/ManagerModule.bsl b/src/cf/AccumulationRegisters/узФактПоЗадачам/Ext/ManagerModule.bsl new file mode 100644 index 000000000..ee9a8e88c --- /dev/null +++ b/src/cf/AccumulationRegisters/узФактПоЗадачам/Ext/ManagerModule.bsl @@ -0,0 +1,123 @@ + +Функция ПолучитьЧасыФактЗаДень(НаДату,Исполнитель) Экспорт + пЧасыФактЗаДень = 0; + + пНачалоПериода = НачалоДня(НаДату); + пКонецПериодаГраница = Новый Граница(КонецДня(пНачалоПериода),ВидГраницы.Включая); + + Запрос = Новый Запрос; + Запрос.Текст = ПолучитьЧасыФактЗаДень_ТекстЗапроса(); + + Запрос.УстановитьПараметр("НачалоПериода",пНачалоПериода); + Запрос.УстановитьПараметр("КонецПериодаГраница",пКонецПериодаГраница); + Запрос.УстановитьПараметр("Исполнитель",Исполнитель); + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат пЧасыФактЗаДень; + Конецесли; + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + + пЧасыФактЗаДень = Выборка.ФактОборот; + + Возврат пЧасыФактЗаДень; +КонецФункции + +Функция ПолучитьЧасыФактЗаДень_ТекстЗапроса() + Возврат + "ВЫБРАТЬ + | узФактПоЗадачамОбороты.ФактОборот + |ИЗ + | РегистрНакопления.узФактПоЗадачам.Обороты(&НачалоПериода, &КонецПериодаГраница, , Исполнитель = &Исполнитель) КАК узФактПоЗадачамОбороты + |"; + +КонецФункции + +Функция ПолучитьТабДокументЧасыЗаДень(НаДату,Исполнитель) Экспорт + + ТабДокумент = Новый ТабличныйДокумент; + + + Макет = ПолучитьМакет("МакетЧасыЗаДень"); + + пДатаДеньИДеньНеделиТекст = Формат(НаДату,"ДФ='dddd dd.MM.yyyy'"); + пДатаДеньИДеньНеделиТекст = Лев(ВРЕГ(пДатаДеньИДеньНеделиТекст),1) + Сред(пДатаДеньИДеньНеделиТекст,2); + + ЗаголовокМакета = "Часы за " + пДатаДеньИДеньНеделиТекст; + + пЧасыЗаДеньФакт = ПолучитьЧасыФактЗаДень(НаДату,Исполнитель); + + Если пЧасыЗаДеньФакт > 0 Тогда + ВыборкаФактЗаДень = ПолучитьВыборкуФактЗаДень(НаДату,Исполнитель); + КонецЕсли; + + ОбластьМакета = Макет.ПолучитьОбласть("ОбластьШапка"); + ОбластьМакета.Параметры.ДатаДеньИДеньНедели = пДатаДеньИДеньНеделиТекст; + ОбластьМакета.Параметры.ЧасыЗаДеньФакт = пЧасыЗаДеньФакт; + ОбластьМакета.Параметры.Исполнитель = Исполнитель; + ТабДокумент.Вывести(ОбластьМакета); + + НС = 1; + Пока пЧасыЗаДеньФакт > 0 + И ВыборкаФактЗаДень.Следующий() Цикл + + ОбластьМакета = Макет.ПолучитьОбласть("ОбластьСтрока"); + ОбластьМакета.Параметры.Заполнить(ВыборкаФактЗаДень); + ОбластьМакета.Параметры.НС = НС; + ТабДокумент.Вывести(ОбластьМакета); + + НС = НС + 1; + конеццикла; + + ОбластьМакета = Макет.ПолучитьОбласть("ОбластьПодвал"); + ОбластьМакета.Параметры.ЧасыЗаДеньФакт = пЧасыЗаДеньФакт; + ТабДокумент.Вывести(ОбластьМакета); + + ТабДокумент.ОтображатьЗаголовки = Ложь; + ТабДокумент.ОтображатьСетку = Ложь; + ТабДокумент.ТолькоПросмотр = Истина; + + Возврат ТабДокумент; +КонецФункции + +Функция ПолучитьВыборкуФактЗаДень(НаДату,Исполнитель) + + пНачалоПериода = НачалоДня(НаДату); + пКонецПериода = КонецДня(пНачалоПериода); + + Запрос = Новый Запрос; + Запрос.Текст = ПолучитьВыборкуФактЗаДень_ТекстЗапроса(); + + Запрос.УстановитьПараметр("НачалоПериода",пНачалоПериода); + Запрос.УстановитьПараметр("КонецПериода",пКонецПериода); + Запрос.УстановитьПараметр("Исполнитель",Исполнитель); + + РезультатЗапроса = Запрос.Выполнить(); + + Выборка = РезультатЗапроса.Выбрать(); + + Возврат Выборка; + +КонецФункции + +Функция ПолучитьВыборкуФактЗаДень_ТекстЗапроса() + Возврат + "ВЫБРАТЬ + | узФактПоЗадачам.Задача.Код КАК НомерЗадачи, + | узФактПоЗадачам.Задача, + | узФактПоЗадачам.Факт КАК ЧасыФакт, + | узФактПоЗадачам.Примечание + |ИЗ + | РегистрНакопления.узФактПоЗадачам КАК узФактПоЗадачам + |ГДЕ + | узФактПоЗадачам.Исполнитель = &Исполнитель + | И узФактПоЗадачам.Период МЕЖДУ &НачалоПериода И &КонецПериода + | + |УПОРЯДОЧИТЬ ПО + | узФактПоЗадачам.Период"; + + +КонецФункции \ No newline at end of file diff --git a/src/cf/AccumulationRegisters/узФактПоЗадачам/Templates/МакетЧасыЗаДень.xml b/src/cf/AccumulationRegisters/узФактПоЗадачам/Templates/МакетЧасыЗаДень.xml new file mode 100644 index 000000000..ae0ebc1ff --- /dev/null +++ b/src/cf/AccumulationRegisters/узФактПоЗадачам/Templates/МакетЧасыЗаДень.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/src/cf/AccumulationRegisters/узФактПоЗадачам/Templates/МакетЧасыЗаДень/Ext/Template.xml b/src/cf/AccumulationRegisters/узФактПоЗадачам/Templates/МакетЧасыЗаДень/Ext/Template.xml new file mode 100644 index 000000000..e25f404f7 --- /dev/null +++ b/src/cf/AccumulationRegisters/узФактПоЗадачам/Templates/МакетЧасыЗаДень/Ext/Template.xml @@ -0,0 +1,365 @@ + + + + ru + ru + + ru + Русский + Русский + + + en + Английский + Английский + + + ro + Румынский + Румынский + + + + 6 + + 0 + + 1 + + + + 1 + + 2 + + + + 2 + + 3 + + + + 3 + + 4 + + + + 5 + + 5 + + + + + 1 + + + 2 + + 6 + ДатаДеньИДеньНедели + + + + + + 2 + + + 2 + + 7 + + + ru + Часы за день: [ЧасыЗаДеньФакт] + + + + + + + + 3 + + + 2 + + 7 + + + ru + Исполнитель [Исполнитель] + + + + + + + + 5 + + + 1 + + 8 + + + ru + № п/п + + + + + + + 8 + + + ru + № задачи + + + + + + + 8 + + + ru + Задача + + + + + + + 8 + + + ru + Часы + + + + + + + 8 + + + ru + Примечание + + + + + + + + 7 + + + 1 + + 9 + НС + + + + + 10 + НомерЗадачи + + + + + 11 + Задача + Задача + + + + + 12 + ЧасыФакт + + + + + 11 + Примечание + + + + + + 9 + + + 1 + + 13 + + + + + 14 + + + + + 15 + + + ru + Итого: + + + + + + + 16 + ЧасыЗаДеньФакт + + + + + 8 + + + + + + 10 + + true + + + true + 3 + 10 + 10 + + ОбластьПодвал + + Rows + 9 + 9 + -1 + -1 + + + + ОбластьСтрока + + Rows + 7 + 7 + -1 + -1 + + + + ОбластьШапка + + Rows + 0 + 5 + -1 + -1 + + + + Solid + + + + 23 + + + 46 + + + 72 + + + 318 + + + 339 + + + Parameter + + + Template + + + 0 + 0 + + + 0 + Center + Center + Parameter + + + 0 + Center + Parameter + + + 0 + Center + Wrap + Parameter + + + 0 + Center + Parameter + + + ru + ЧДЦ=2 + + + + + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + Right + + + 0 + 0 + 72 + Center + Parameter + + + ru + ЧДЦ=2 + + + + \ No newline at end of file