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

#49 Добавить реквизит "Это основная задача", чтобы при получении основной задачи поиск прерывался на той в которой указано, что это основная задача

This commit is contained in:
Anton Ivanov 2017-09-09 18:24:40 +03:00
parent 1a6de852eb
commit ec1952cbd0
3 changed files with 147 additions and 36 deletions

View File

@ -1830,6 +1830,53 @@
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="2f25c8d3-27d9-4ef7-addf-fba2e288e7c7">
<Properties>
<Name>ЭтоОсновнаяЗадача</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Это основная задача</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>This Main Task</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>This Main Task</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>
<TabularSection uuid="0d958c66-1f6d-4b4a-a9ce-2a378e7394ad">
<InternalInfo>
<xr:GeneratedType name="CatalogTabularSection.узЗадачи.История" category="TabularSection">
@ -3143,11 +3190,19 @@
</Command>
<Command uuid="95c477f0-c85c-43c0-a11c-68c351f5ceee">
<Properties>
<Name>КомандаСоздатьИерархиюЗадачНаДиске</Name>
<Name>КомандаСоздатьФайлДляЗадачиНаДиске</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Создать иерархию задач на диске</v8:content>
<v8:content>Создать файл для задачи на диске</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Create a file for the task on disk</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Create a file for the task on disk</v8:content>
</v8:item>
</Synonym>
<Comment/>

View File

@ -14,6 +14,12 @@
Если НЕ ЗначениеЗаполнено(ДатаНачалаРаботПоЗадаче) Тогда
ДатаНачалаРаботПоЗадаче = ДатаСоздания;
Конецесли;
Если ЭтоНовый()
И НЕ ЗначениеЗаполнено(Родитель) Тогда
ЭтоОсновнаяЗадача = Истина;
Конецесли;
ОсновнаяЗадача = ПолучитьОсновнуюЗадачу(Родитель);
ЗаполнитьСтатусЗадачиЕслиОнНеЗаполнен(Отказ);
@ -791,7 +797,8 @@
Функция ПолучитьОсновнуюЗадачу(СсылкаНаОбъект)
РодителяОбъекта = СсылкаНаОбъект.Родитель;
Если ЗначениеЗаполнено(РодителяОбъекта) Тогда
Если ЗначениеЗаполнено(РодителяОбъекта)
И НЕ СсылкаНаОбъект.ЭтоОсновнаяЗадача Тогда
Возврат ПолучитьОсновнуюЗадачу(РодителяОбъекта);
Иначе
Возврат СсылкаНаОбъект;
@ -825,40 +832,69 @@
Если ЭтоНовый() Тогда
Возврат;
Конецесли;
Если НЕ ЗначениеЗаполнено(ОсновнаяЗадача) Тогда
пОсновнаяЗадача = ОсновнаяЗадача;
Если ЭтоОсновнаяЗадача Тогда
пОсновнаяЗадача = Ссылка;
Конецесли;
Если НЕ ЗначениеЗаполнено(пОсновнаяЗадача) Тогда
Возврат;
КонецЕсли;
МассивПодчиненныхЗадач = Новый Массив();
ЗаполнитьМассивПодчиненныхЗадач(Ссылка,пОсновнаяЗадача,МассивПодчиненныхЗадач);
Для каждого пЗадача из МассивПодчиненныхЗадач цикл
СпрОбъект = пЗадача.ПолучитьОбъект();
#Если Тромбон тогда
СпрОбъект = Справочники.узЗадачи.СоздатьЭлемент();
#Конецесли
СпрОбъект.ОсновнаяЗадача = пОсновнаяЗадача;
СпрОбъект.ДополнительныеСвойства.Вставить("узЭтоОбработка",Истина);
СпрОбъект.Записать();
Конеццикла;
КонецПроцедуры
Процедура ЗаполнитьМассивПодчиненныхЗадач(ЗадачаРодитель,пОсновнаяЗадача,МассивПодчиненныхЗадач)
Запрос = Новый Запрос("
|ВЫБРАТЬ
| узЗадачи.Ссылка
|ИЗ
| Справочник.узЗадачи КАК узЗадачи
|ГДЕ
| узЗадачи.Ссылка В ИЕРАРХИИ(&Задача)
| И узЗадачи.Ссылка <> &Задача
| И узЗадачи.ОсновнаяЗадача <> &ОсновнаяЗадача
| узЗадачи.Родитель = &ЗадачаРодитель
| И узЗадачи.Ссылка <> &ЗадачаРодитель
|");
Запрос.УстановитьПараметр("Задача", Ссылка);
Запрос.УстановитьПараметр("ОсновнаяЗадача", ОсновнаяЗадача);
Запрос.УстановитьПараметр("ЗадачаРодитель", ЗадачаРодитель);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
Конецесли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
#Если Тромбон тогда
СпрОбъект = Справочники.узЗадачи.СоздатьЭлемент();
#Конецесли
пЗадача = Выборка.Ссылка;
СпрОбъект.ОсновнаяЗадача = ОсновнаяЗадача;
СпрОбъект.ДополнительныеСвойства.Вставить("узЭтоОбработка",Истина);
СпрОбъект.Записать();
МассивПодчиненныхЗадач.Добавить(пЗадача);
Если пЗадача.ЭтоОсновнаяЗадача Тогда
Продолжить;
Конецесли;
Если пЗадача.ОсновнаяЗадача = пОсновнаяЗадача Тогда
Продолжить;
Конецесли;
ЗаполнитьМассивПодчиненныхЗадач(пЗадача,пОсновнаяЗадача,МассивПодчиненныхЗадач);
Конеццикла;
КонецПроцедуры
Функция ПроверитьWIPЛимит() Экспорт

View File

@ -963,6 +963,24 @@
</CheckBoxField>
</ChildItems>
</UsualGroup>
<UsualGroup name="Группа1" id="494">
<Group>Horizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа1РасширеннаяПодсказка" id="495"/>
<ChildItems>
<CheckBoxField name="ЭтоОсновнаяЗадача" id="496">
<DataPath>Объект.ЭтоОсновнаяЗадача</DataPath>
<CheckBoxType>Tumbler</CheckBoxType>
<EditFormat>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>БЛ=Нет; БИ=Да</v8:content>
</v8:item>
</EditFormat>
<ContextMenu name="ЭтоОсновнаяЗадачаКонтекстноеМеню" id="497"/>
<ExtendedTooltip name="ЭтоОсновнаяЗадачаРасширеннаяПодсказка" id="498"/>
</CheckBoxField>
<InputField name="ОсновнаяЗадача" id="49">
<DataPath>Объект.ОсновнаяЗадача</DataPath>
<ReadOnly>true</ReadOnly>
@ -979,6 +997,8 @@
<ContextMenu name="ОсновнаяЗадачаКонтекстноеМеню" id="50"/>
<ExtendedTooltip name="ОсновнаяЗадачаРасширеннаяПодсказка" id="51"/>
</InputField>
</ChildItems>
</UsualGroup>
<InputField name="Автор" id="78">
<DataPath>Объект.Автор</DataPath>
<ContextMenu name="АвторКонтекстноеМеню" id="79"/>