diff --git a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl index 3e41d05ac..d7082135f 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl @@ -18,6 +18,10 @@ ЕстьПодчиненныеЗадачи = пЕстьПодчиненныеЗадачи; Конецесли; + Если пЕстьПодчиненныеЗадачи Тогда + ИзменитьОсновнуюЗадачуДляВсехПодчиненныхЗадач(); + Конецесли; + НовыйРодитель = Родитель; Если ЗначениеЗаполнено(НовыйРодитель) И НЕ НовыйРодитель.ЕстьПодчиненныеЗадачи Тогда @@ -605,4 +609,42 @@ ДополнительныеСвойства.Удалить("СобытияВИстории"); КонецПроцедуры +Процедура ИзменитьОсновнуюЗадачуДляВсехПодчиненныхЗадач() + Если ЭтоНовый() Тогда + Возврат; + Конецесли; + Если НЕ ЗначениеЗаполнено(ОсновнаяЗадача) Тогда + Возврат; + КонецЕсли; + + Запрос = Новый Запрос(" + |ВЫБРАТЬ + | узЗадачи.Ссылка + |ИЗ + | Справочник.узЗадачи КАК узЗадачи + |ГДЕ + | узЗадачи.Ссылка В ИЕРАРХИИ(&Задача) + | И узЗадачи.Ссылка <> &Задача + | И узЗадачи.ОсновнаяЗадача <> &ОсновнаяЗадача + |"); + Запрос.УстановитьПараметр("Задача", Ссылка); + Запрос.УстановитьПараметр("ОсновнаяЗадача", ОсновнаяЗадача); + + РезультатЗапроса = Запрос.Выполнить(); + Если РезультатЗапроса.Пустой() Тогда + Возврат; + Конецесли; + + Выборка = РезультатЗапроса.Выбрать(); + Пока Выборка.Следующий() Цикл + СпрОбъект = Выборка.Ссылка.ПолучитьОбъект(); + #Если Тромбон тогда + СпрОбъект = Справочники.узЗадачи.СоздатьЭлемент(); + #Конецесли + + СпрОбъект.ОсновнаяЗадача = ОсновнаяЗадача; + СпрОбъект.ДополнительныеСвойства.Вставить("узЭтоОбработка",Истина); + СпрОбъект.Записать(); + Конеццикла; +КонецПроцедуры