123
Если Не
ОбщийСрв.ПроверкаПрав(ОбщийСрв.ПолучитьРеквизитЗадачи(ЭтаЗадача,
"Автор"), ОбщийСрв.ПолучитьГлПользователь()) Тогда
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтаЗадача) +
"Нет прав редактировать чужой документ");
Возврат;
КонецЕсли;
Если (ОбщийСрв.ПолучитьРеквизитЗадачи(ЭтаЗадача, "Проведен"))
И
(ОбщийСрв.обПолучитьКонстанту("ЗапретПроведенных"))
Тогда
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтаЗадача) +
"Уже выполнена. Редактирование невозможно");
Возврат;
КонецЕсли;
НоваяПодЗадача = СоздатьПодзадачуНаСервере(Шаблон,
ЭтаЗадача); // создать новый документ и записать его
ДобавитьСуществующуюПодзадачуНаСервере(ЭтаЗадача,
НоваяПодЗадача); // добавить новую задачу в объект (в таб. часть)
ПутьВДереве =
ПолучитьПутьВДереве(Элементы.ДеревоПодзадач.ТекущиеДанные,
НоваяПодЗадача); //сформировать массив подзадач от текущего узла до корня
ЗаполнитьПоШаблонуРекурсивно(Шаблон, НоваяПодЗадача);
ЭтаФорма.Прочитать(); // перечитать данные формы
ЗаполнитьДеревоПодзадач(); // перстроить дерево подзадач
Элементы.ДеревоПодзадач.ТекущаяСтрока =
СпозиционироватьсяВДеревеПодзадач(ДеревоПодзадач, ПутьВДереве,
ПутьВДереве.Количество()-1); // спозиционироваться на добавленной задаче
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоШаблонуРекурсивно(Шаблон, Основание)
ВыборкаСправочника = Справочники.Этапы.Выбрать(Шаблон);
Пока ВыборкаСправочника.Следующий() Цикл