1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-21 21:17:24 +02:00

Реализована возможность создания повторяющихся (регламентных) текущих дел по произвольному расписанию.

This commit is contained in:
Anton Ivanov 2019-05-09 10:39:10 +03:00
parent 99b8283fe7
commit 3cd6d56c34
10 changed files with 1099 additions and 16 deletions

View File

@ -12,6 +12,12 @@
<Description>Позже</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="d9778975-b331-44c5-a123-e40d619cdf47">
<Name>Регламентное</Name>
<Code>000000004</Code>
<Description>Регламентное</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="496c50c8-0f65-4bc1-8bce-fe7a039a3cd3">
<Name>Сегодня</Name>
<Code>000000001</Code>

View File

@ -12,6 +12,12 @@
<Description>Дата последней выгрузки файла листа задач</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="d7b479f7-711b-4681-a071-f917cf75c1c3">
<Name>ОтключитьВозможностьСозданиеРегламентныхТекущихДел</Name>
<Code>000000007</Code>
<Description>Отключить возможность создание регламентных текущих дел</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="ae4a846f-f623-4b56-830a-0f93a7e258e7">
<Name>СписокПользователейКомуОтправлятьСистемныеУведомления</Name>
<Code>000000001</Code>

View File

@ -558,6 +558,135 @@
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="4c4959a4-3f51-486b-9a12-c29529a8429e">
<Properties>
<Name>ВключеноРегламентноеТекущееДело</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Включено регламентное текущее дело</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="96d3f137-3906-4c88-9e02-681b89ae6b1e">
<Properties>
<Name>ИдентификаторРасписаниеРегламента</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Идентификатор расписание регламента</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>v8:UUID</v8:Type>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>DontUse</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="f22cbdb8-d75c-4985-979c-808c1f210e2b">
<Properties>
<Name>ТекстСодержанияСтарое</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Cодержания старое</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Content</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Content</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Form>ФормаСписка</Form>
</ChildObjects>
</Catalog>

View File

@ -70,4 +70,58 @@
// Конецесли;
//Конецесли;
//Возврат пПорядокДоп;
КонецФункции
Процедура СоздатьТекущееДелоПоРегламентномуДелу(ТекРегламентноеДело) Экспорт
Если НЕ ЗначениеЗаполнено(ТекРегламентноеДело) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Ошибка! не заполнено ТекРегламентноеДело";
Сообщение.Сообщить();
Возврат;
Конецесли;
СпрОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
СпрОбъект.ТекстСодержания = ТекРегламентноеДело.ТекстСодержания;
СпрОбъект.Автор = ТекРегламентноеДело.Автор;
СпрОбъект.Задача = ТекРегламентноеДело.Задача;
СпрОбъект.Вопрос = ТекРегламентноеДело.Вопрос;
СпрОбъект.ВключеноРегламентноеТекущееДело = Ложь;
СпрОбъект.ИдентификаторРасписаниеРегламента = Неопределено;
СпрОбъект.ТекстСодержанияСтарое = "Создано регламентным заданием";
СпрОбъект.ГруппаТекущегоДела = Неопределено;
СпрОбъект.Выполнено = Ложь;
СпрОбъект.ДатаВыполнения = Неопределено;
СпрОбъект.ДатаСоздания = ТекущаяДата();
СпрОбъект.ДатаТекущегоДела = СпрОбъект.ДатаСоздания;
СпрОбъект.Порядок = 1000;
СпрОбъект.Записать();
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Добавлено дело",80);
пТекстСообщения = пТекстСообщения + " "+ СпрОбъект.ТекстСодержания;
Сообщить(пТекстСообщения);
ТекстСообщения = "Добавлено новое текущее дело " + СпрОбъект.Ссылка;
ЗаписьЖурналаРегистрации("log_DeloReglament", УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
КонецПроцедуры
Функция ПолучитьРасписаниеРегламентногоЗадания(ДопПараметры) Экспорт
Перем пРасписаниеРегламентногоЗадания;
пИдентификаторРасписаниеРегламента = ДопПараметры.ИдентификаторРасписаниеРегламента;
//пИдентификаторРасписаниеРегламента = ПолучитьИдентификаторРасписаниеРегламента(ДопПараметры);
РеглЗаданиеОбъект = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(пИдентификаторРасписаниеРегламента);
Если РеглЗаданиеОбъект <> Неопределено Тогда
пРасписаниеРегламентногоЗадания = РеглЗаданиеОбъект.Расписание;
Конецесли;
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("ИдентификаторРасписаниеРегламента",пИдентификаторРасписаниеРегламента);
РезультатФункции.Вставить("РасписаниеРегламентногоЗадания",пРасписаниеРегламентногоЗадания);
Возврат РезультатФункции;
КонецФункции

View File

@ -967,4 +967,21 @@
Возврат ТЗПользователей;
КонецФункции // --- 79Vlad 06.02.2019
Процедура узСозданиеТекущихДелПоРегламенту(ТекРегламентноеДело = Неопределено) Экспорт
Если НЕ ЗначениеЗаполнено(ТекРегламентноеДело) Тогда
ТекстСообщения = "Ошибка! Не заполнен параметр ТекРегламентноеДело в узСозданиеТекущихДелПоРегламенту";
ЗаписьЖурналаРегистрации("log_DeloReglament", УровеньЖурналаРегистрации.Ошибка,,, ТекстСообщения);
Возврат;
Конецесли;
//ТекстСообщения = "ТипЗначения " + ТипЗнч(МассивТекРегламентныхДел)
// + " ТекРегламентноеДело ["+ МассивТекРегламентныхДел +"]"
// ;
//ЗаписьЖурналаРегистрации("log_DeloReglament", УровеньЖурналаРегистрации.Ошибка,,, ТекстСообщения);
Справочники.узТекущиеДела.СоздатьТекущееДелоПоРегламентномуДелу(ТекРегламентноеДело);
КонецПроцедуры

View File

@ -238,6 +238,40 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="ff1954b6-455f-4f9e-a803-b63cd8987c4f">
<Properties>
<Name>ПоказыватьРегламентные</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Регламентные</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</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">
@ -843,6 +877,166 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="68402207-f380-4cdf-a483-2860561adeed">
<Properties>
<Name>ВключеноРегламентноеТекущееДело</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Включено регламентное текущее дело</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="e548a09d-1c3f-4b56-89ea-90dabdbce6b3">
<Properties>
<Name>ИдентификаторРасписаниеРегламента</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Идентификатор расписание регламента</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>v8:UUID</v8:Type>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="9b5007d9-1fa0-416b-8dc2-b5b155b3836f">
<Properties>
<Name>ТекстСодержанияСтарое</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Cодержания старое</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Content</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Content</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="6c919362-029e-4649-9cad-0af162e0e5d6">
<Properties>
<Name>РасписаниеРегламентногоЗаданияПредставление</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Расписание регламентного задания представление</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
<Form>Форма</Form>

View File

@ -14,11 +14,15 @@
| узТекущиеДела.ДатаВыполнения,
| узТекущиеДела.Задача,
| узТекущиеДела.Вопрос,
| узТекущиеДела.ВключеноРегламентноеТекущееДело,
| узТекущиеДела.ИдентификаторРасписаниеРегламента,
| узТекущиеДела.ТекстСодержанияСтарое,
| узТекущиеДела.Порядок КАК Порядок
|ИЗ
| Справочник.узТекущиеДела КАК узТекущиеДела
|ГДЕ
| узТекущиеДела.Автор = &Автор
| И НЕ узТекущиеДела.ПометкаУдаления
| И узТекущиеДела.ГруппаТекущегоДела В(&МассивГруппыТекущихДел)
| И ВЫБОР
| КОГДА узТекущиеДела.ДатаВыполнения = ДАТАВРЕМЯ(1, 1, 1)
@ -51,6 +55,10 @@
Если ПоказыватьПозже Тогда
МассивГруппыТекущихДел.Добавить(ПредопределенноеЗначение("Справочник.узГруппыТекущихДел.Позже"));
Конецесли;
Если ПоказыватьРегламентные Тогда
МассивГруппыТекущихДел.Добавить(ПредопределенноеЗначение("Справочник.узГруппыТекущихДел.Регламентное"));
Конецесли;
Запрос.УстановитьПараметр("МассивГруппыТекущихДел", МассивГруппыТекущихДел);
Запрос.УстановитьПараметр("Автор", ПараметрыСеанса.ТекущийПользователь);
@ -67,13 +75,48 @@
//
//ТЗРезультат.Сортировать("ПорядокДоп,Порядок");
ГруппаТекДел_Регламентное = ПредопределенноеЗначение("Справочник.узГруппыТекущихДел.Регламентное");
Для каждого СтрокаТЗРезультат из ТЗРезультат цикл
СтрокаТЧТекущиеДела = ТЧТекущиеДела.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧТекущиеДела,СтрокаТЗРезультат);
СтрокаТЧТекущиеДела.НомерСтрокиОбработка = СтрокаТЧТекущиеДела.НомерСтроки;
ЗаполнитьРасписаниеРегламентногоЗадания(СтрокаТЧТекущиеДела,ГруппаТекДел_Регламентное);
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьРасписаниеРегламентногоЗадания(СтрокаТЧТекущиеДела,ГруппаТекДел_Регламентное)
пГруппаТекущегоДела = СтрокаТЧТекущиеДела.ГруппаТекущегоДела;
пРасписаниеРегламентногоЗаданияПредставление = "<Расписание не задано>";
СтрокаТЧТекущиеДела.РасписаниеРегламентногоЗаданияПредставление = пРасписаниеРегламентногоЗаданияПредставление;
Если пГруппаТекущегоДела <> ГруппаТекДел_Регламентное Тогда
Возврат;
Конецесли;
пИдентификаторРасписаниеРегламента = СтрокаТЧТекущиеДела.ИдентификаторРасписаниеРегламента;
Если НЕ ЗначениеЗаполнено(пИдентификаторРасписаниеРегламента) Тогда
СтрокаТЧТекущиеДела.РасписаниеРегламентногоЗаданияПредставление = пРасписаниеРегламентногоЗаданияПредставление;
Возврат;
Конецесли;
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ИдентификаторРасписаниеРегламента",пИдентификаторРасписаниеРегламента);
РезультатФункции = Справочники.узТекущиеДела.ПолучитьРасписаниеРегламентногоЗадания(ВТДопПараметры);
РасписаниеРегламентногоЗадания = РезультатФункции.РасписаниеРегламентногоЗадания;
Если РасписаниеРегламентногоЗадания <> Неопределено Тогда
пРасписаниеРегламентногоЗаданияПредставление = "" + РасписаниеРегламентногоЗадания;
Конецесли;
СтрокаТЧТекущиеДела.РасписаниеРегламентногоЗаданияПредставление = пРасписаниеРегламентногоЗаданияПредставление;
КонецПроцедуры
Функция ПолучитьПорядоДоп(пВыполнено,пДатаВыполнения,пНаДату) Экспорт
Возврат Справочники.узТекущиеДела.ПолучитьПорядоДоп(пВыполнено,пДатаВыполнения,пНаДату);
////Такая же функция есть в форме обработки
@ -106,7 +149,21 @@
Конецесли;
ТекущееДелоОбъект = ПолучитьТекущееДелоОбъект(СтрокаТЧТекущиеДела);
Если НЕ ТекущееДелоОбъект.Ссылка.Пустая()
И СокрЛП(ТекущееДелоОбъект.ТекстСодержания) <> СокрЛП(СтрокаТЧТекущиеДела.ТекстСодержания) Тогда
пТекстСодержанияСтарое =
"----------------------РАНЕЕ-----"+ТекущаяДата()+"--------------------"
+ Символы.ПС
+ ТекущееДелоОбъект.ТекстСодержания
+ Символы.ПС
+ ТекущееДелоОбъект.ТекстСодержанияСтарое
;
Конецесли;
ЗаполнитьЗначенияСвойств(ТекущееДелоОбъект,СтрокаТЧТекущиеДела,,"Автор,ДатаСоздания,Порядок");
ТекущееДелоОбъект.ТекстСодержанияСтарое = пТекстСодержанияСтарое;
ТекущееДелоОбъект.Наименование = ТекущееДелоОбъект.ТекстСодержания;
//Если ЭтоСегодня Тогда
ТекущееДелоОбъект.Порядок = СтрокаТЧТекущиеДела.НомерСтроки;
@ -150,18 +207,101 @@
Процедура УбратьТекущееДело(МассивТекущихДел) Экспорт
СохранитьТекущиеДела();
ГруппаТекДел_Регламентное = ПредопределенноеЗначение("Справочник.узГруппыТекущихДел.Регламентное");
Для каждого пТекущееДело из МассивТекущихДел цикл
Если НЕ ЗначениеЗаполнено(пТекущееДело) Тогда
Продолжить;
Конецесли;
ОтключитьРегламентныеТекущееДело(пТекущееДело,ГруппаТекДел_Регламентное);
ТекущееДелоОбъект = пТекущееДело.ПолучитьОбъект();
ТекущееДелоОбъект.Удалить();
ТекущееДелоОбъект.ПометкаУдаления = Истина;
ТекущееДелоОбъект.Записать();
//ТекущееДелоОбъект.Удалить();
Конеццикла;
ЗаполнитьТекущиеДела();
КонецПроцедуры
Процедура ОтключитьРегламентныеТекущееДело(пТекущееДело,ГруппаТекДел_Регламентное)
Если пТекущееДело.ГруппаТекущегоДела <> ГруппаТекДел_Регламентное Тогда
Возврат;
Конецесли;
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ИдентификаторРасписаниеРегламента",пТекущееДело.ИдентификаторРасписаниеРегламента);
ДопПараметры.Вставить("ВключеноРегламентноеТекущееДело",Ложь);
ДопПараметры.Вставить("ТекущееДело",пТекущееДело);
ДопПараметры.Вставить("РасписаниеРегламентногоЗадания",Новый РасписаниеРегламентногоЗадания);
РезультатФункции = СоздатьОбновитьРегламентноеЗадание(ДопПараметры);
КонецПроцедуры
Процедура ОбновитьНаСервере() Экспорт
СохранитьТекущиеДела();
ЗаполнитьТекущиеДела();
КонецПроцедуры
Функция СоздатьОбновитьРегламентноеЗадание(ДопПараметры) Экспорт
пВключеноРегламентноеТекущееДело = ДопПараметры.ВключеноРегламентноеТекущееДело;
пРасписаниеРегламентногоЗадания = ДопПараметры.РасписаниеРегламентногоЗадания;
пТекущееДело = ДопПараметры.ТекущееДело;
РеглЗаданиеОбъект = ПолучитьРеглЗаданиеОбъект(ДопПараметры);
РеглЗаданиеОбъект.Использование = пВключеноРегламентноеТекущееДело;
РеглЗаданиеОбъект.Наименование = "Создание текущего дела: " + пТекущееДело;
РеглЗаданиеОбъект.Расписание = пРасписаниеРегламентногоЗадания;
РеглЗаданиеОбъект.Записать();
пИдентификаторРасписаниеРегламента = РеглЗаданиеОбъект.УникальныйИдентификатор;
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("ИдентификаторРасписаниеРегламента",пИдентификаторРасписаниеРегламента);
РезультатФункции.Вставить("РасписаниеРегламентногоЗаданияПредставление",""+пРасписаниеРегламентногоЗадания);
Возврат РезультатФункции;
КонецФункции
Функция ПолучитьРеглЗаданиеОбъект(ДопПараметры)
Перем РеглЗаданиеОбъект;
пИдентификаторРасписаниеРегламента = ДопПараметры.ИдентификаторРасписаниеРегламента;
Если НЕ ЗначениеЗаполнено(пИдентификаторРасписаниеРегламента) Тогда
пИдентификаторРасписаниеРегламента = Новый УникальныйИдентификатор();
Конецесли;
РеглЗаданиеОбъект = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(пИдентификаторРасписаниеРегламента);
Если РеглЗаданиеОбъект = Неопределено Тогда
РеглЗаданиеОбъект = СоздатьРегламентоеЗадание(ДопПараметры);
Конецесли;
Возврат РеглЗаданиеОбъект;
КонецФункции
Функция СоздатьРегламентоеЗадание(ДопПараметры)
//пИдентификаторРасписаниеРегламента = ДопПараметры.ИдентификаторРасписаниеРегламента;
//Если НЕ ЗначениеЗаполнено(пИдентификаторРасписаниеРегламента) Тогда
// пИдентификаторРасписаниеРегламента = Новый УникальныйИдентификатор();
//Конецесли;
пТекущееДело = ДопПараметры.ТекущееДело;
//МассивТекРегламентныхДел = Новый Массив();
//МассивТекРегламентныхДел.Добавить(пТекущееДело);
РеглЗаданиеОбъект = РегламентныеЗадания.СоздатьРегламентноеЗадание(Метаданные.РегламентныеЗадания.узСозданиеТекущихДелПоРегламенту);
//РеглЗаданиеОбъект.Ключ = пИдентификаторРасписаниеРегламента;
РеглЗаданиеОбъект.Параметры.Добавить(пТекущееДело);
Возврат РеглЗаданиеОбъект;
КонецФункции

View File

@ -120,7 +120,10 @@
<ExtendedTooltip name="ТЧТекущиеДелаУправлениеПоискомРасширеннаяПодсказка" id="13"/>
</SearchControlAddition>
<Events>
<Event name="ValueChoice">ТЧТекущиеДелаВыборЗначения</Event>
<Event name="Selection">ТЧТекущиеДелаВыбор</Event>
<Event name="BeforeDeleteRow">ТЧТекущиеДелаПередУдалением</Event>
<Event name="OnActivateRow">ТЧТекущиеДелаПриАктивизацииСтроки</Event>
<Event name="OnStartEdit">ТЧТекущиеДелаПриНачалеРедактирования</Event>
<Event name="OnChange">ТЧТекущиеДелаПриИзменении</Event>
</Events>
@ -244,6 +247,71 @@
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДопСведенияРасширеннаяПодсказка" id="109"/>
<ChildItems>
<UsualGroup name="ГруппаНастройкаРегламента" id="138">
<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>
<Group>Vertical</Group>
<Behavior>Collapsible</Behavior>
<CollapsedRepresentationTitle>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройка регламента</v8:content>
</v8:item>
</CollapsedRepresentationTitle>
<Representation>None</Representation>
<ExtendedTooltip name="ГруппаНастройкаРегламентаРасширеннаяПодсказка" id="139"/>
<ChildItems>
<UsualGroup name="Группа3" id="157">
<Group>Horizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа3РасширеннаяПодсказка" id="158"/>
<ChildItems>
<Button name="КомандаНастроитьРасписание" id="153">
<Type>Hyperlink</Type>
<CommandName>Form.Command.КомандаНастроитьРасписание</CommandName>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>&lt;Расписание не задано&gt;</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="КомандаНастроитьРасписаниеРасширеннаяПодсказка" id="154"/>
</Button>
<Button name="КомандаСохранитьРегламентноеТекущееДело" id="155">
<Type>UsualButton</Type>
<CommandName>Form.Command.КомандаСохранитьРегламентноеТекущееДело</CommandName>
<ExtendedTooltip name="КомандаСохранитьРегламентноеТекущееДелоРасширеннаяПодсказка" id="156"/>
</Button>
</ChildItems>
</UsualGroup>
<CheckBoxField name="ТЧТекущиеДелаВключеноРегламентноеТекущееДело" id="143">
<DataPath>Items.ТЧТекущиеДела.CurrentData.ВключеноРегламентноеТекущееДело</DataPath>
<CheckBoxType>Tumbler</CheckBoxType>
<EditFormat>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>БЛ=Нет; БИ=Да</v8:content>
</v8:item>
</EditFormat>
<ContextMenu name="ТЧТекущиеДелаВключеноРегламентноеТекущееДелоКонтекстноеМеню" id="144"/>
<ExtendedTooltip name="ТЧТекущиеДелаВключеноРегламентноеТекущееДелоРасширеннаяПодсказка" id="145"/>
<Events>
<Event name="OnChange">ТЧТекущиеДелаВключеноРегламентноеТекущееДелоПриИзменении</Event>
</Events>
</CheckBoxField>
</ChildItems>
</UsualGroup>
<InputField name="ТЧТекущиеДелаТекстСодержания1" id="110">
<DataPath>Items.ТЧТекущиеДела.CurrentData.ТекстСодержания</DataPath>
<TitleLocation>Top</TitleLocation>
@ -392,18 +460,45 @@
<ContextMenu name="ТЧТекущиеДелаПорядокКонтекстноеМеню" id="61"/>
<ExtendedTooltip name="ТЧТекущиеДелаПорядокРасширеннаяПодсказка" id="62"/>
</InputField>
<UsualGroup name="ГруппаСтароеСодержание" id="151">
<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>
<Behavior>Collapsible</Behavior>
<CollapsedRepresentationTitle>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Старое содержание</v8:content>
</v8:item>
</CollapsedRepresentationTitle>
<Collapsed>true</Collapsed>
<Representation>None</Representation>
<ExtendedTooltip name="ГруппаСтароеСодержаниеРасширеннаяПодсказка" id="152"/>
<ChildItems>
<InputField name="ТЧТекущиеДелаТекстСодержанияСтарое" id="146">
<DataPath>Items.ТЧТекущиеДела.CurrentData.ТекстСодержанияСтарое</DataPath>
<TitleLocation>None</TitleLocation>
<AutoMaxWidth>false</AutoMaxWidth>
<AutoMaxHeight>false</AutoMaxHeight>
<HorizontalStretch>true</HorizontalStretch>
<VerticalStretch>true</VerticalStretch>
<MultiLine>true</MultiLine>
<ContextMenu name="ТЧТекущиеДелаТекстСодержанияСтароеКонтекстноеМеню" id="147"/>
<ExtendedTooltip name="ТЧТекущиеДелаТекстСодержанияСтароеРасширеннаяПодсказка" id="148"/>
</InputField>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
<UsualGroup name="Группа4" id="119">
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа4РасширеннаяПодсказка" id="120"/>
</UsualGroup>
<UsualGroup name="Группа5" id="121">
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа5РасширеннаяПодсказка" id="122"/>
</UsualGroup>
</ChildItems>
</UsualGroup>
</ChildItems>
@ -441,6 +536,15 @@
<Event name="OnChange">ПоказыватьПозжеПриИзменении</Event>
</Events>
</CheckBoxField>
<CheckBoxField name="ПоказыватьРегламентные" id="135">
<DataPath>Объект.ПоказыватьРегламентные</DataPath>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ПоказыватьРегламентныеКонтекстноеМеню" id="136"/>
<ExtendedTooltip name="ПоказыватьРегламентныеРасширеннаяПодсказка" id="137"/>
<Events>
<Event name="OnChange">ПоказыватьРегламентныеПриИзменении</Event>
</Events>
</CheckBoxField>
</ChildItems>
</UsualGroup>
</ChildItems>
@ -462,6 +566,48 @@
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="РасписаниеРегламентногоЗадания" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Расписание регламентного задания</v8:content>
</v8:item>
</Title>
<Type/>
</Attribute>
<Attribute name="СтрокаТЧТекущиеДелаТекущееДело" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Строка ТЧТекущие дела текущее дело</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:CatalogRef.узТекущиеДела</v8:Type>
</Type>
</Attribute>
<Attribute name="МодифицированностьТекущегоДела" id="6">
<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="7">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отключить возможность создание регламентных текущих дел</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<ConditionalAppearance>
<dcsset:item>
<dcsset:selection>
@ -670,5 +816,40 @@
</ToolTip>
<Action>КомандаНастройки</Action>
</Command>
<Command name="КомандаНастроитьРасписание" id="9">
<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>
<Action>КомандаНастроитьРасписание</Action>
</Command>
<Command name="КомандаСохранитьРегламентноеТекущееДело" id="10">
<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.SaveFile</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаСохранитьРегламентноеТекущееДело</Action>
<Representation>TextPicture</Representation>
</Command>
</Commands>
</Form>

View File

@ -23,23 +23,59 @@
Объект.ПоказыватьСегодня = Истина;
Объект.ПоказыватьНаНеделе = Истина;
Объект.ПоказыватьПозже = Истина;
ОтключитьВозможностьСозданиеРегламентныхТекущихДел = Справочники.узКонстанты.ПолучитьЗначениеКонстанты(
"ОтключитьВозможностьСозданиеРегламентныхТекущихДел",Тип("Булево"),Отказ,Истина,Истина);
ЗаполнитьТекущиеДелаНаСервере();
УстановитьВидимостьДоступность();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступность()
Процедура УстановитьВидимостьДоступность(ДопПараметры = Неопределено)
Элементы.ГруппаДопСведения.Видимость = Ложь;
Элементы.ТЧТекущиеДелаГруппаЗадачаНомерЗадачи.Видимость = Ложь;
Элементы.ТЧТекущиеДелаВопрос.Видимость = Ложь;
//Элементы.ТЧТекущиеДелаГруппаЗадачаНомерЗадачи.Видимость = Ложь;
//Элементы.ТЧТекущиеДелаВопрос.Видимость = Ложь;
Элементы.ТЧТекущиеДелаВыполнено.Видимость = Ложь;
Элементы.ТЧТекущиеДелаДатаВыполнения.Видимость = Ложь;
Элементы.ГруппаНастройкаРегламента.Видимость = Ложь;
Элементы.КомандаСохранитьРегламентноеТекущееДело.Видимость = Ложь;
Элементы.ПоказыватьРегламентные.Видимость = Ложь;
Если ПоказыватьДопСведения Тогда
Элементы.ГруппаДопСведения.Видимость = Истина;
Иначе
Элементы.ТЧТекущиеДелаГруппаЗадачаНомерЗадачи.Видимость = Истина;
Элементы.ТЧТекущиеДелаВопрос.Видимость = Истина;
//Элементы.ТЧТекущиеДелаГруппаЗадачаНомерЗадачи.Видимость = Истина;
//Элементы.ТЧТекущиеДелаВопрос.Видимость = Истина;
КонецЕсли;
ГруппаТекДел_Регламентное = ПредопределенноеЗначение("Справочник.узГруппыТекущихДел.Регламентное");
пГруппаТекущегоДела = Неопределено;
СтрокаТЧТекущиеДела = Неопределено;
Если ДопПараметры <> Неопределено Тогда
СтрокаТЧТекущиеДела = ДопПараметры.СтрокаТЧТекущиеДела;
Конецесли;
Если СтрокаТЧТекущиеДела = Неопределено тогда
Элементы.ТЧТекущиеДелаВыполнено.Видимость = Истина;
Элементы.ТЧТекущиеДелаДатаВыполнения.Видимость = Истина;
Иначе
пГруппаТекущегоДела = СтрокаТЧТекущиеДела.ГруппаТекущегоДела;
Конецесли;
Если пГруппаТекущегоДела = ГруппаТекДел_Регламентное Тогда
Элементы.ГруппаНастройкаРегламента.Видимость = Истина;
Если МодифицированностьТекущегоДела Тогда
Элементы.КомандаСохранитьРегламентноеТекущееДело.Видимость = Истина
Конецесли;
Иначе
Элементы.ТЧТекущиеДелаВыполнено.Видимость = Истина;
Элементы.ТЧТекущиеДелаДатаВыполнения.Видимость = Истина;
Конецесли;
Если НЕ ОтключитьВозможностьСозданиеРегламентныхТекущихДел Тогда
Элементы.ПоказыватьРегламентные.Видимость = Истина;
Конецесли;
КонецПроцедуры
&НаСервере
@ -325,3 +361,301 @@
ОтключитьОбработчикОжидания("СохранитьТекущиеДелаНаКлиенте");
Конецесли;
КонецПроцедуры
&НаКлиенте
Процедура ТЧТекущиеДелаПриАктивизацииСтроки(Элемент)
УстановитьВидимостьДоступностьДляТекущегоДелаНаКлиенте(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасписаниеРегламентногоЗадания()
СтрокаТЧТекущиеДела = Элементы.ТЧТекущиеДела.ТекущиеДанные;
Если СтрокаТЧТекущиеДела = Неопределено тогда
Возврат;
Конецесли;
Если НЕ ПоказыватьДопСведения Тогда
Возврат;
Конецесли;
Если ЗначениеЗаполнено(РасписаниеРегламентногоЗадания) Тогда
Возврат;
Конецесли;
пГруппаТекущегоДела = СтрокаТЧТекущиеДела.ГруппаТекущегоДела;
ГруппаТекДел_Регламентное = ПредопределенноеЗначение("Справочник.узГруппыТекущихДел.Регламентное");
Если пГруппаТекущегоДела <> ГруппаТекДел_Регламентное Тогда
Возврат;
Конецесли;
пТекущееДело = СтрокаТЧТекущиеДела.ТекущееДело;
СтрокаТЧТекущиеДелаТекущееДело = пТекущееДело;
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ИдентификаторРасписаниеРегламента",СтрокаТЧТекущиеДела.ИдентификаторРасписаниеРегламента);
РезультатФункции = ПолучитьРасписаниеРегламентногоЗаданияНаСервере(ВТДопПараметры);
РасписаниеРегламентногоЗадания = РезультатФункции.РасписаниеРегламентногоЗадания;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьВидимостьДоступностьДляТекущегоДелаНаКлиенте(ЭтоАктивизацияСтроки = Ложь)
СтрокаТЧТекущиеДела = Элементы.ТЧТекущиеДела.ТекущиеДанные;
Если СтрокаТЧТекущиеДела = Неопределено тогда
Возврат;
Конецесли;
Если НЕ ПоказыватьДопСведения Тогда
Возврат;
Конецесли;
пТекущееДело = СтрокаТЧТекущиеДела.ТекущееДело;
Если ЭтоАктивизацияСтроки Тогда
Если СтрокаТЧТекущиеДелаТекущееДело = пТекущееДело Тогда
Возврат;
Конецесли;
//Элементы.КомандаНастроитьРасписание.Заголовок = "<Расписание не задано>";
МодифицированностьТекущегоДела = Ложь;
Конецесли;
Элементы.КомандаНастроитьРасписание.Заголовок = "" + СтрокаТЧТекущиеДела.РасписаниеРегламентногоЗаданияПредставление;
//ЗаполнитьДанныеПоРегламентномуЗаданию(Истина);
СтрокаТЧТекущиеДелаТекущееДело = пТекущееДело;
СтруктураСтрокаТЧТекущиеДела = Новый Структура();
СтруктураСтрокаТЧТекущиеДела.Вставить("ГруппаТекущегоДела",СтрокаТЧТекущиеДела.ГруппаТекущегоДела);
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("СтрокаТЧТекущиеДела",СтруктураСтрокаТЧТекущиеДела);
УстановитьВидимостьДоступность(ВТДопПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ТЧТекущиеДелаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура ТЧТекущиеДелаВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьРегламентныеПриИзменении(Элемент)
ОбновитьТекущиеДелаНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеРасписанияРегламентногоЗаданияНажатие(Элемент, СтандартнаяОбработка)
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьРасписаниеРегламентногоЗаданияНаСервере(ДопПараметры)
Возврат Справочники.узТекущиеДела.ПолучитьРасписаниеРегламентногоЗадания(ДопПараметры);
КонецФункции
&НаКлиенте
Процедура ТЧТекущиеДелаВключеноРегламентноеТекущееДелоПриИзменении(Элемент)
МодифицированностьТекущегоДела = Истина;
УстановитьВидимостьДоступностьДляТекущегоДелаНаКлиенте(Ложь);
КонецПроцедуры
&НаСервере
Функция Удалить_ПолучитьИдентификаторРасписаниеРегламента(ДопПараметры)
ИдентификаторРасписаниеРегламента = ДопПараметры.ИдентификаторРасписаниеРегламента;
Если НЕ ЗначениеЗаполнено(ИдентификаторРасписаниеРегламента) Тогда
ИдентификаторРасписаниеРегламента = Новый УникальныйИдентификатор;
Конецесли;
Возврат ИдентификаторРасписаниеРегламента;
КонецФункции
&НаСервере
Функция СоздатьОбновитьРегламентноеЗаданиеНаСервере(ДопПараметры)
пОбъект = РеквизитФормыВЗначение("Объект");
РезультатФункции = пОбъект.СоздатьОбновитьРегламентноеЗадание(ДопПараметры);
ЗначениеВРеквизитФормы(пОбъект,"Объект");
МодифицированностьТекущегоДела = Ложь;
УстановитьВидимостьДоступность();
Возврат РезультатФункции;
КонецФункции
&НаКлиенте
Процедура ПредставлениеРасписанияРегламентногоЗаданияПриИзменении(Элемент)
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура КомандаНастроитьРасписание(Команда)
СтрокаТЧТекущиеДела = Элементы.ТЧТекущиеДела.ТекущиеДанные;
Если СтрокаТЧТекущиеДела = Неопределено тогда
Возврат;
Конецесли;
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ИдентификаторРасписаниеРегламента",СтрокаТЧТекущиеДела.ИдентификаторРасписаниеРегламента);
РезультатФункции = ПолучитьРасписаниеРегламентногоЗаданияНаСервере(ВТДопПараметры);
//СтрокаТЧТекущиеДела.ИдентификаторРасписаниеРегламента = РезультатФункции.ИдентификаторРасписаниеРегламента;
РасписаниеРегламентногоЗадания = РезультатФункции.РасписаниеРегламентногоЗадания;
Если РасписаниеРегламентногоЗадания = Неопределено Тогда
РасписаниеРегламентногоЗадания = Новый РасписаниеРегламентногоЗадания;
Конецесли;
ДиалогРасписания = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеРегламентногоЗадания);
ВТДопПараметрыЗакрытия = Новый Структура();
ВТДопПараметрыЗакрытия.Вставить("СтрокаТЧТекущиеДела",СтрокаТЧТекущиеДела);
//ДопПараметры.Вставить("",);
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьДиалогРасписанияПриВыборе", ЭтаФорма, ВТДопПараметрыЗакрытия);
ДиалогРасписания.Показать(ОповещениеОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьДиалогРасписанияПриВыборе(РезультатЗакрытия, ДопПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
Конецесли;
СтрокаТЧТекущиеДела = ДопПараметры.СтрокаТЧТекущиеДела;
МодифицированностьТекущегоДела = Истина;
РасписаниеРегламентногоЗадания = РезультатЗакрытия;
пРасписаниеРегламентногоЗаданияПредставление = "" + РасписаниеРегламентногоЗадания;
Элементы.КомандаНастроитьРасписание.Заголовок = пРасписаниеРегламентногоЗаданияПредставление;
СтрокаТЧТекущиеДела.РасписаниеРегламентногоЗаданияПредставление = пРасписаниеРегламентногоЗаданияПредставление;
УстановитьВидимостьДоступностьДляТекущегоДелаНаКлиенте(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьТекущееДелоРегламентноеНаКлиенте()
СтрокаТЧТекущиеДела = Элементы.ТЧТекущиеДела.ТекущиеДанные;
Если СтрокаТЧТекущиеДела = Неопределено тогда
Возврат;
Конецесли;
пТекущееДело = СтрокаТЧТекущиеДела.ТекущееДело;
Если НЕ ЗначениеЗаполнено(пТекущееДело) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Сохраните текущие дела прежде чем настраивать регламентое текущее дело";
Сообщение.Сообщить();
СтрокаТЧТекущиеДела.ВключеноРегламентноеТекущееДело = Ложь;
Возврат;
Конецесли;
ЗаполнитьРасписаниеРегламентногоЗадания();
Если НЕ УказаноРасписаниеРегламентногоЗадания() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Укажите расписание текущего дела, перед тем как его включать";
Сообщение.Сообщить();
СтрокаТЧТекущиеДела.ВключеноРегламентноеТекущееДело = Ложь;
Возврат;
Конецесли;
СтрокаТЧТекущиеДелаТекущееДело = Неопределено;
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ИдентификаторРасписаниеРегламента",СтрокаТЧТекущиеДела.ИдентификаторРасписаниеРегламента);
ДопПараметры.Вставить("ВключеноРегламентноеТекущееДело",СтрокаТЧТекущиеДела.ВключеноРегламентноеТекущееДело);
ДопПараметры.Вставить("ТекущееДело",пТекущееДело);
ДопПараметры.Вставить("РасписаниеРегламентногоЗадания",РасписаниеРегламентногоЗадания);
РезультатФункции = СоздатьОбновитьРегламентноеЗаданиеНаСервере(ДопПараметры);
СтрокаТЧТекущиеДела.ИдентификаторРасписаниеРегламента = РезультатФункции.ИдентификаторРасписаниеРегламента;
СтрокаТЧТекущиеДела.РасписаниеРегламентногоЗаданияПредставление = РезультатФункции.РасписаниеРегламентногоЗаданияПредставление;
СохранитьТекущиеДелаНаКлиенте();
КонецПроцедуры
&НаКлиенте
Функция УказаноРасписаниеРегламентногоЗадания()
пУказаноРасписаниеРегламентногоЗадания = Ложь;
МассивСвойств = Новый Массив();
МассивСвойств.Добавить("ВремяЗавершения");
МассивСвойств.Добавить("ВремяКонца");
МассивСвойств.Добавить("ВремяНачала");
МассивСвойств.Добавить("ДатаКонца");
МассивСвойств.Добавить("ДатаНачала");
МассивСвойств.Добавить("ДеньВМесяце");
МассивСвойств.Добавить("ДеньНеделиВМесяце");
МассивСвойств.Добавить("ИнтервалЗавершения");
МассивСвойств.Добавить("ПаузаПовтора");
МассивСвойств.Добавить("ПериодНедель");
МассивСвойств.Добавить("ПериодПовтораВТечениеДня");
МассивСвойств.Добавить("ПериодПовтораДней");
МассивСвойствСПроверкойКоличества = Новый Массив();
МассивСвойствСПроверкойКоличества.Добавить("ДетальныеРасписанияДня");
МассивСвойствСПроверкойКоличества.Добавить("ДниНедели");
МассивСвойствСПроверкойКоличества.Добавить("Месяцы");
Для каждого ИмяСвойства из МассивСвойств Цикл
ЗначениеСвойства = РасписаниеРегламентногоЗадания[ИмяСвойства];
Если ЗначениеЗаполнено(ЗначениеСвойства) Тогда
пУказаноРасписаниеРегламентногоЗадания = Истина;
Возврат пУказаноРасписаниеРегламентногоЗадания;
Конецесли;
КонецЦикла;
Для каждого ИмяСвойстваСПроверкойКоличества из МассивСвойствСПроверкойКоличества Цикл
МассивЗначенияСвойства = РасписаниеРегламентногоЗадания[ИмяСвойстваСПроверкойКоличества];
Если МассивЗначенияСвойства.Количество() > 0 Тогда
пУказаноРасписаниеРегламентногоЗадания = Истина;
Возврат пУказаноРасписаниеРегламентногоЗадания;
Конецесли;
КонецЦикла;
Возврат пУказаноРасписаниеРегламентногоЗадания;
КонецФункции
&НаКлиенте
Процедура КомандаСохранитьРегламентноеТекущееДело(Команда)
СохранитьТекущееДелоРегламентноеНаКлиенте();
КонецПроцедуры

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2">
<ScheduledJob uuid="5673fd28-d7ea-462d-aeb4-bd0ae2d400a8">
<Properties>
<Name>узСозданиеТекущихДелПоРегламенту</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Создание текущих дел по регламенту</v8:content>
</v8:item>
</Synonym>
<Comment/>
<MethodName>CommonModule.узОбщийМодульСервер.узСозданиеТекущихДелПоРегламенту</MethodName>
<Description/>
<Key/>
<Use>true</Use>
<Predefined>true</Predefined>
<RestartCountOnFailure>3</RestartCountOnFailure>
<RestartIntervalOnFailure>10</RestartIntervalOnFailure>
</Properties>
</ScheduledJob>
</MetaDataObject>