Ограничение выбора вариантов шаблонов запуска процессов в Документообороте 2.1
Столкнулся с проблемой, что Документооборот позволяет пользователю выбрать к запуску шаблоны процессов, которые напрямую не указаны в том виде документа, для которого производится запуск процесса.
- Описание
- Подробнее
Описание
В список шаблонов для запуска процессов попадают шаблоны, которые оформлялись для других типов документов (внутренних, входящих, исходящих), а также общие варианты, как то различные согласования и исполнения.
Также шаблоны процессов, которые могут быть настроены пользователем, с припиской (Новое)
Я решил данный вопрос через расширение, добавил общий модуль "ПомощникОтправить" и сделал изменения в процедуре "ДобавитьВДеревоВариантыСозданияПроцессов":
&ИзменениеИКонтроль("ДобавитьВДеревоВариантыСозданияПроцессов")
Процедура НАДО_ДобавитьВДеревоВариантыСозданияПроцессов(Помощник)
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьБизнесПроцессыИЗадачи") Тогда
Возврат;
КонецЕсли;
// Очищаем основные варианты создания процессов.
Помощник.ОсновныеВариантыСозданияПроцессов.Очистить();
// Выполняем заполнение данных по предметам.
ЗаполнитьДопустимыеТипыПредметовВПроцессах(Помощник);
ЗаполнитьПредметыПроцесса(Помощник);
Если ЗначениеЗаполнено(Помощник.ПредметыПроцесса)
И Не ЕстьПредметыДопустимыеВПроцессах(Помощник) Тогда
Возврат;
КонецЕсли;
ЗаполнитьДопустимыеТипыВариантовДляПредметов(Помощник);
// Вначале определяем все возможные варианты создания процессов,
// с учетом предметов процессов в помощнике.
#Вставка
ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
Если Помощник.ПредметыПроцесса.Количество() = 0
Или Не ЗначениеЗаполнено(Помощник.ПредметыПроцесса[0].Ссылка) Тогда
ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
КонецЕсли;
#КонецВставки
#Удаление
ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
#КонецУдаления
// После добавляем в дерево основные варианты создания процессов,
// в отдельной группе остальные доступные варианты.
ДобавитьВДеревоОсновныеВариантыСозданияПроцесса(Помощник);
ДобавитьВДеревоОстальныеВариантыОтправки(Помощник);
КонецПроцедуры
В итоге окно для запуска процесса содержит только тот шаблон, который указан в данном типе документа:
p.s. Первый пост, строго не судите 🙂