1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-01-28 03:57:18 +02:00

Добавил кнопку "Добавить факт работ" в текущие дела. Сделал отображение итого часов за день.

This commit is contained in:
Anton Ivanov 2019-12-22 11:46:34 +03:00
parent 6f0070ab9d
commit c5e0c16d3b
4 changed files with 227 additions and 2 deletions

View File

@ -272,6 +272,45 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="6cae06fa-9d1d-4196-890b-31a4edf09c44">
<Properties>
<Name>ЧасыФактЗаДень</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Часы факт за день</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>15</v8:Digits>
<v8:FractionDigits>2</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<TabularSection uuid="d5d56e37-245d-4ce1-890b-6cf255c39f38">
<InternalInfo>
<xr:GeneratedType name="DataProcessorTabularSection.узТекущиеДела.ТЧТекущиеДела" category="TabularSection">

View File

@ -305,3 +305,9 @@
Возврат РеглЗаданиеОбъект;
КонецФункции
Процедура ОбновитьЧасыФактЗаДень()
ЧасыФактЗаДень = РегистрыНакопления.узФактПоЗадачам.ПолучитьЧасыФактЗаДень();
КонецПроцедуры

View File

@ -10,6 +10,11 @@
<Event name="OnClose">ПриЗакрытии</Event>
</Events>
<ChildItems>
<UsualGroup name="Группа4" id="166">
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа4РасширеннаяПодсказка" id="167"/>
</UsualGroup>
<UsualGroup name="Группа2" id="106">
<Group>Horizontal</Group>
<Representation>None</Representation>
@ -31,10 +36,25 @@
<CommandName>Form.Command.КомандаСделал</CommandName>
<ExtendedTooltip name="ТЧТекущиеДелаКонтекстноеМенюКомандаВыполнилРасширеннаяПодсказка" id="64"/>
</Button>
<Button name="ТЧТекущиеДелаКонтекстноеМенюКомандаДобавитьФактРабот" id="159">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаДобавитьФактРабот</CommandName>
<ExtendedTooltip name="ТЧТекущиеДелаКонтекстноеМенюКомандаДобавитьФактРаботРасширеннаяПодсказка" id="160"/>
</Button>
</ChildItems>
</ContextMenu>
<AutoCommandBar name="ТЧТекущиеДелаКоманднаяПанель" id="3">
<ChildItems>
<Button name="ТЧТекущиеДелаКомандаДобавитьФактРабот" id="161">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаДобавитьФактРабот</CommandName>
<ExtendedTooltip name="ТЧТекущиеДелаКомандаДобавитьФактРаботРасширеннаяПодсказка" id="162"/>
</Button>
<Button name="ТЧТекущиеДелаКомандаЧасовЗаДень" id="168">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаЧасовЗаДень</CommandName>
<ExtendedTooltip name="ТЧТекущиеДелаКомандаЧасовЗаДеньРасширеннаяПодсказка" id="169"/>
</Button>
<Button name="ТЧТекущиеДелаПереместитьВверх" id="46">
<Type>CommandBarButton</Type>
<OnlyInAllActions>true</OnlyInAllActions>
@ -615,6 +635,28 @@
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="узИспользоватьУчетВремени" id="8">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Уз использовать учет времени</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="ТекущийПользователь" id="9">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Текущий пользователь</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:CatalogRef.Пользователи</v8:Type>
</Type>
</Attribute>
<ConditionalAppearance>
<dcsset:item>
<dcsset:selection>
@ -858,5 +900,46 @@
<Action>КомандаСохранитьРегламентноеТекущееДело</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаДобавитьФактРабот" id="11">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Добавить факт работ</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда добавить факт работ</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.ScheduledJob</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаДобавитьФактРабот</Action>
<FunctionalOptions>
<Item>FunctionalOption.узИспользоватьУчетВремени</Item>
</FunctionalOptions>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаЧасовЗаДень" id="12">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>0 часов</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Часов за день</v8:content>
</v8:item>
</ToolTip>
<Action>КомандаЧасовЗаДень</Action>
<FunctionalOptions>
<Item>FunctionalOption.узИспользоватьУчетВремени</Item>
</FunctionalOptions>
</Command>
</Commands>
</Form>

View File

@ -24,6 +24,9 @@
Объект.ПоказыватьНаНеделе = Истина;
Объект.ПоказыватьПозже = Истина;
узИспользоватьУчетВремени = Константы.узИспользоватьУчетВремени.Получить();
ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
ОтключитьВозможностьСозданиеРегламентныхТекущихДел = Справочники.узКонстанты.ПолучитьЗначениеКонстанты(
"ОтключитьВозможностьСозданиеРегламентныхТекущихДел",Тип("Булево"),Отказ,Истина,Истина);
@ -287,6 +290,8 @@
Если Объект.АвтоматическиСохранятьТекущиеДела Тогда
ПодключитьОбработчикОжидания("СохранитьТекущиеДелаНаКлиенте", 600);
Конецесли;
ОбновитьНадписьЧасовЗаДень();
КонецПроцедуры
&НаКлиенте
@ -294,7 +299,8 @@
Объект.НаДату = НаДатуНовая;
Объект.НаДатуКонецДня = КонецДня(Объект.НаДату);
ОбновитьТекущиеДелаНаСервере();
ОбновитьЗаголовокКомандаНаДату();
ОбновитьЗаголовокКомандаНаДату();
ОбновитьНадписьЧасовЗаДень();
КонецПроцедуры
&НаКлиенте
@ -331,8 +337,11 @@
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "КомандаДобавитьВТекущиеДела" Тогда
ОбновитьТекущиеДелаНаСервере();
ОбновитьТекущиеДелаНаСервере();
ИначеЕсли ИмяСобытия = "узВводФактаПоЗадачеЗаписан" Тогда
ОбновитьНадписьЧасовЗаДень();
Конецесли;
КонецПроцедуры
&НаКлиенте
@ -341,6 +350,11 @@
ОбновитьТекущиеДелаНаСервере();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьЧасыФактЗаДеньНаСервере(НаДату,Исполнитель)
Возврат РегистрыНакопления.узФактПоЗадачам.ПолучитьЧасыФактЗаДень(НаДату,Исполнитель);
КонецФункции
&НаКлиенте
Процедура СохранитьТекущиеДелаНаКлиенте()
СохранитьТекущиеДелаНаСервере();
@ -705,3 +719,86 @@
Процедура ТЧТекущиеДелаГруппаТекущегоДелаПриИзменении(Элемент)
УстановитьВидимостьДоступностьНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура КомандаДобавитьФактРабот(Команда)
#Если ВебКлиент Тогда
ОкноОтображения = Неопределено;
#Иначе
ОкноОтображения = ВариантОткрытияОкна.ОтдельноеОкно;
#КонецЕсли
МассивВыделенныхСтрок = Элементы.ТЧТекущиеДела.ВыделенныеСтроки;
МассивЗадач = Новый Массив();
пПримечание = "";
пЗадачаДляФактаЗадач = Неопределено;
Для каждого ЭлМассиваВыделенныхСтрок из МассивВыделенныхСтрок цикл
ИдентификаторСтроки = ЭлМассиваВыделенныхСтрок;
СтрокаТЧТекущиеДела = Объект.ТЧТекущиеДела.НайтиПоИдентификатору(ИдентификаторСтроки);
пПримечание = пПримечание + СтрокаТЧТекущиеДела.ТекстСодержания + Символы.ПС;
пЗадача = СтрокаТЧТекущиеДела.Задача;
Если ЗначениеЗаполнено(пЗадача)
И МассивЗадач.Найти(пЗадача) = Неопределено Тогда
МассивЗадач.Добавить(пЗадача);
Конецесли;
Конеццикла;
Если МассивЗадач.Количество() = 1 Тогда
пЗадачаДляФактаЗадач = МассивЗадач[0];
Конецесли;
пПримечание = Лев(пПримечание,СтрДлина(пПримечание)-1);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Задача", пЗадачаДляФактаЗадач);
ПараметрыФормы.Вставить("Примечание", пПримечание);
ПараметрыФормы.Вставить("Исполнитель", ТекущийПользователь);
ОткрытьФорму("Документ.узВводФактаПоЗадаче.Форма.ФормаДокументаВводСЗадачи",
ПараметрыФормы,,,ОкноОтображения,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьНадписьЧасовЗаДень()
Если НЕ узИспользоватьУчетВремени Тогда
Возврат;
Конецесли;
Объект.ЧасыФактЗаДень = ПолучитьЧасыФактЗаДеньНаСервере(Объект.НаДату,ТекущийПользователь);
Элементы.ТЧТекущиеДелаКомандаЧасовЗаДень.Заголовок = "" + Формат(Объект.ЧасыФактЗаДень,"ЧДЦ=1; ЧН=0") + " ч.";
КонецПроцедуры
&НаКлиенте
Процедура КомандаЧасовЗаДень(Команда)
ТабДокумент = ПолучитьТабДокументЧасыЗаДеньНаСервере(Объект.НаДату,ТекущийПользователь);
ТабДокумент.Показать("Часы за день " + Формат(Объект.НаДату,"ДФ='dddd dd.MM.yyyy'"));
//ОбъектыПечати = Новый СписокЗначений();
//УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(Идентификаторы);
//УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм,
//
//ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
//ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
//ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
//ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
//ПараметрыОткрытия.Вставить("ОбъектыПечати", ОбъектыПечати);
//
//ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьТабДокументЧасыЗаДеньНаСервере(НаДату,Исполнитель)
ТабДокумент = РегистрыНакопления.узФактПоЗадачам.ПолучитьТабДокументЧасыЗаДень(НаДату, Исполнитель);
Возврат ТабДокумент;
КонецФункции