diff --git a/src/cf/Catalogs/узЗадачи.xml b/src/cf/Catalogs/узЗадачи.xml
index a62a01bef..d4d87846d 100644
--- a/src/cf/Catalogs/узЗадачи.xml
+++ b/src/cf/Catalogs/узЗадачи.xml
@@ -1830,6 +1830,53 @@
Use
+
+
+ ЭтоОсновнаяЗадача
+
+
+ ru
+ Это основная задача
+
+
+ en
+ This Main Task
+
+
+ ro
+ This Main Task
+
+
+
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+
+
@@ -3143,11 +3190,19 @@
- КомандаСоздатьИерархиюЗадачНаДиске
+ КомандаСоздатьФайлДляЗадачиНаДиске
ru
- Создать иерархию задач на диске
+ Создать файл для задачи на диске
+
+
+ en
+ Create a file for the task on disk
+
+
+ ro
+ Create a file for the task on disk
diff --git a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl
index d677c0944..c0087acaa 100644
--- a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl
+++ b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl
@@ -14,6 +14,12 @@
Если НЕ ЗначениеЗаполнено(ДатаНачалаРаботПоЗадаче) Тогда
ДатаНачалаРаботПоЗадаче = ДатаСоздания;
Конецесли;
+
+ Если ЭтоНовый()
+ И НЕ ЗначениеЗаполнено(Родитель) Тогда
+ ЭтоОсновнаяЗадача = Истина;
+ Конецесли;
+
ОсновнаяЗадача = ПолучитьОсновнуюЗадачу(Родитель);
ЗаполнитьСтатусЗадачиЕслиОнНеЗаполнен(Отказ);
@@ -791,7 +797,8 @@
Функция ПолучитьОсновнуюЗадачу(СсылкаНаОбъект)
РодителяОбъекта = СсылкаНаОбъект.Родитель;
- Если ЗначениеЗаполнено(РодителяОбъекта) Тогда
+ Если ЗначениеЗаполнено(РодителяОбъекта)
+ И НЕ СсылкаНаОбъект.ЭтоОсновнаяЗадача Тогда
Возврат ПолучитьОсновнуюЗадачу(РодителяОбъекта);
Иначе
Возврат СсылкаНаОбъект;
@@ -825,9 +832,33 @@
Если ЭтоНовый() Тогда
Возврат;
Конецесли;
- Если НЕ ЗначениеЗаполнено(ОсновнаяЗадача) Тогда
+
+ пОсновнаяЗадача = ОсновнаяЗадача;
+ Если ЭтоОсновнаяЗадача Тогда
+ пОсновнаяЗадача = Ссылка;
+ Конецесли;
+
+ Если НЕ ЗначениеЗаполнено(пОсновнаяЗадача) Тогда
Возврат;
- КонецЕсли;
+ КонецЕсли;
+
+ МассивПодчиненныхЗадач = Новый Массив();
+ ЗаполнитьМассивПодчиненныхЗадач(Ссылка,пОсновнаяЗадача,МассивПодчиненныхЗадач);
+
+ Для каждого пЗадача из МассивПодчиненныхЗадач цикл
+ СпрОбъект = пЗадача.ПолучитьОбъект();
+ #Если Тромбон тогда
+ СпрОбъект = Справочники.узЗадачи.СоздатьЭлемент();
+ #Конецесли
+
+ СпрОбъект.ОсновнаяЗадача = пОсновнаяЗадача;
+ СпрОбъект.ДополнительныеСвойства.Вставить("узЭтоОбработка",Истина);
+ СпрОбъект.Записать();
+ Конеццикла;
+
+КонецПроцедуры
+
+Процедура ЗаполнитьМассивПодчиненныхЗадач(ЗадачаРодитель,пОсновнаяЗадача,МассивПодчиненныхЗадач)
Запрос = Новый Запрос("
|ВЫБРАТЬ
@@ -835,30 +866,35 @@
|ИЗ
| Справочник.узЗадачи КАК узЗадачи
|ГДЕ
- | узЗадачи.Ссылка В ИЕРАРХИИ(&Задача)
- | И узЗадачи.Ссылка <> &Задача
- | И узЗадачи.ОсновнаяЗадача <> &ОсновнаяЗадача
+ | узЗадачи.Родитель = &ЗадачаРодитель
+ | И узЗадачи.Ссылка <> &ЗадачаРодитель
|");
- Запрос.УстановитьПараметр("Задача", Ссылка);
- Запрос.УстановитьПараметр("ОсновнаяЗадача", ОсновнаяЗадача);
-
- РезультатЗапроса = Запрос.Выполнить();
+ Запрос.УстановитьПараметр("ЗадачаРодитель", ЗадачаРодитель);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
Если РезультатЗапроса.Пустой() Тогда
- Возврат;
+ Возврат;
Конецесли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
- СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
- #Если Тромбон тогда
- СпрОбъект = Справочники.узЗадачи.СоздатьЭлемент();
- #Конецесли
+ пЗадача = Выборка.Ссылка;
- СпрОбъект.ОсновнаяЗадача = ОсновнаяЗадача;
- СпрОбъект.ДополнительныеСвойства.Вставить("узЭтоОбработка",Истина);
- СпрОбъект.Записать();
+ МассивПодчиненныхЗадач.Добавить(пЗадача);
+
+ Если пЗадача.ЭтоОсновнаяЗадача Тогда
+ Продолжить;
+ Конецесли;
+
+ Если пЗадача.ОсновнаяЗадача = пОсновнаяЗадача Тогда
+ Продолжить;
+ Конецесли;
+
+ ЗаполнитьМассивПодчиненныхЗадач(пЗадача,пОсновнаяЗадача,МассивПодчиненныхЗадач);
Конеццикла;
+
КонецПроцедуры
Функция ПроверитьWIPЛимит() Экспорт
diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml
index 22fe75368..a8542abb1 100644
--- a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml
+++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml
@@ -963,22 +963,42 @@
-
- Объект.ОсновнаяЗадача
- true
- EnterOnInput
- 1
-
-
-
-
- Catalog.узЗадачи.EmptyRef
-
-
-
-
-
-
+
+ Horizontal
+ None
+ false
+
+
+
+ Объект.ЭтоОсновнаяЗадача
+ Tumbler
+
+
+ ru
+ БЛ=Нет; БИ=Да
+
+
+
+
+
+
+ Объект.ОсновнаяЗадача
+ true
+ EnterOnInput
+ 1
+
+
+
+
+ Catalog.узЗадачи.EmptyRef
+
+
+
+
+
+
+
+
Объект.Автор