Ограничение выбора вариантов шаблонов запуска процессов в Документообороте 2.1

20.07.20

Функциональные - Документооборот и делопроизводство (СЭД)

Столкнулся с проблемой, что Документооборот позволяет пользователю выбрать к запуску шаблоны процессов, которые напрямую не указаны в том виде документа, для которого производится запуск процесса.

 

В список шаблонов для запуска процессов попадают шаблоны, которые оформлялись для других типов документов (внутренних, входящих, исходящих), а также общие варианты, как то различные согласования и исполнения.

Также шаблоны процессов, которые могут быть настроены пользователем, с припиской (Новое)

Я решил данный вопрос через расширение, добавил общий модуль "ПомощникОтправить" и сделал изменения в процедуре "ДобавитьВДеревоВариантыСозданияПроцессов":

 

&ИзменениеИКонтроль("ДобавитьВДеревоВариантыСозданияПроцессов")
Процедура НАДО_ДобавитьВДеревоВариантыСозданияПроцессов(Помощник)

	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьБизнесПроцессыИЗадачи") Тогда
		Возврат;
	КонецЕсли;

	// Очищаем основные варианты создания процессов.
	Помощник.ОсновныеВариантыСозданияПроцессов.Очистить();

	// Выполняем заполнение данных по предметам.
	ЗаполнитьДопустимыеТипыПредметовВПроцессах(Помощник);
	ЗаполнитьПредметыПроцесса(Помощник);

	Если ЗначениеЗаполнено(Помощник.ПредметыПроцесса)
		И Не ЕстьПредметыДопустимыеВПроцессах(Помощник) Тогда

		Возврат;
	КонецЕсли;

	ЗаполнитьДопустимыеТипыВариантовДляПредметов(Помощник);

	// Вначале определяем все возможные варианты создания процессов,
	// с учетом предметов процессов в помощнике.

#Вставка	
	ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
	Если Помощник.ПредметыПроцесса.Количество() = 0 
		Или Не ЗначениеЗаполнено(Помощник.ПредметыПроцесса[0].Ссылка) Тогда
		ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
		ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
		ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
	КонецЕсли; 
#КонецВставки
#Удаление	
	ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
	ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
	ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
	ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
#КонецУдаления
	
	// После добавляем в дерево основные варианты создания процессов,
	// в отдельной группе остальные доступные варианты.

	ДобавитьВДеревоОсновныеВариантыСозданияПроцесса(Помощник);
	ДобавитьВДеревоОстальныеВариантыОтправки(Помощник);

КонецПроцедуры

 

В итоге окно для запуска процесса содержит только тот шаблон, который указан в данном типе документа:

p.s. Первый пост, строго не судите :)

документооборот

См. также

1С:Документооборот - цена на лицензии КОРП, ПРОФ и ДГУ

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    107647    108    5    

89

1С:Архив

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Платные (руб)

"1С:Архив" – это универсальная система, обеспечивающая надежное долговременное хранение документов с гарантией юридической значимости на неограниченный срок. "1С:Архив" разработан на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов – от попадания в архив до уничтожения – и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. Продукт подходит для малых, средних, крупных предприятий и учреждений любых отраслей.

90000 руб.

24.10.2022    5072    6    1    

6

RayCon® Foreign Trade - Документооборот валютного контроля и международных платежей для участников ВЭД

Операции по ВЭД Документооборот и делопроизводство (СЭД) Бухгалтер Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Программа предназначена для автоматизации внешнеторговых компаний и обеспечивает документооборот валютного контроля: присвоение Уникального номера контракта (УНК), формирований сведений о валютных операциях (СВО) и справок о подтверждающих документах (СПД), прочих необходимых форм учета и отчетности по валютным операциям согласно действующему валютному законодательству Российской Федерации, документооборот валютных платежей согласно международным стандартам и документооборот купли-продажи валюты, а также выгрузку любых документов 1С в любую систему клиент-банк.

30000 руб.

13.05.2009    67230    3    29    

42

Таймлист (1С:Совещание, Таймлист Лайт)

Документооборот и делопроизводство (СЭД) Конфигурации 1cv8

«Таймлист» – экосистема сервисов («Таймлист Лайт», «1C:Совещание», «Таймлист Recorder»), основанная на искусственном интеллекте Таймлист, который позволяет эффективно работать с легкими поручениями за счет фиксации всех важных идей при расшифровке и последующем формировании автопротокола встречи. Сервисы, в которые интегрирован ИИ, позволяют работать с задачами (поручениями), полученными из автопротокола.

10000 руб.

06.12.2023    1767    0    0    

10

ЭДО: организация архива оригиналов первичных документов, комплексный отчет по ошибкам

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    44801    62    51    

75

Легкий документооборот (+чат-бот для Telegram)

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в конфигурациях "1С: Бухгалтерия 3.0", "Управление нашей фирмой", "1С ERP Управление предприятием", "Бухгалтерия государственного учреждения". Ролевая адресация, условная маршрутизация, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    28532    30    48    

63

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    103017    300    173    

316

Бесшовная интеграция 1С:Бухгалтерия 3.0 ПРОФ + 1С:Документооборот. Модуль интеграции 1С:БП и 1С:ДО (ПРОФ или КОРП)

Перенос данных 1C Документооборот и делопроизводство (СЭД) Учет документов Системный администратор Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Бесшовная интеграция с 1С:Документооборот (КОРП или ПРОФ) - вот что обеспечит Вам и Вашим сотрудникам оперативный доступ и продуктивную работу с документами в учётной системе 1С на базе "1С:Бухгалтерия предприятия 3.0 ПРОФ". Бесшовный обмен и связь позволяют экономить до 60% времени на поиск и согласование первичной документации (актов, счетов-фактур, накладных), не говоря уже о других полезных функциональных возможностях: создании и запуске бизнес-процессов, работе с электронной почтой, штрихкодировании документов и многом другом.

30000 руб.

23.05.2017    54658    34    67    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gull22 95 22.07.20 09:35 Сейчас в теме
Понравилось с точки зрения облегчения мук пользователя. А можно оставить шаблоны процессов, которые могут быть настроены пользователем, с припиской (Новое) в отдельной папке (как на первом скриншоте в свернутой папке "Другие варианты"?
2. Maito 52 23.07.20 10:07 Сейчас в теме
(1)
Да, конечно возможно, нужно внести исправление в процедуру из статьи и еще две процедуры вывода:

&ИзменениеИКонтроль("ДобавитьВДеревоВариантыСозданияПроцессов")
Процедура НАДО_ДобавитьВДеревоВариантыСозданияПроцессов(Помощник)

	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьБизнесПроцессыИЗадачи") Тогда
		Возврат;
	КонецЕсли;

	// Очищаем основные варианты создания процессов.
	Помощник.ОсновныеВариантыСозданияПроцессов.Очистить();

	// Выполняем заполнение данных по предметам.
	ЗаполнитьДопустимыеТипыПредметовВПроцессах(Помощник);
	ЗаполнитьПредметыПроцесса(Помощник);

	Если ЗначениеЗаполнено(Помощник.ПредметыПроцесса)
		И Не ЕстьПредметыДопустимыеВПроцессах(Помощник) Тогда

		Возврат;
	КонецЕсли;

	ЗаполнитьДопустимыеТипыВариантовДляПредметов(Помощник);

	// Вначале определяем все возможные варианты создания процессов,
	// с учетом предметов процессов в помощнике.

	ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
#Удаление	
	ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
#КонецУдаления
	ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
#Удаление	
	ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
#КонецУдаления
	
	// После добавляем в дерево основные варианты создания процессов,
	// в отдельной группе остальные доступные варианты.

	ДобавитьВДеревоОсновныеВариантыСозданияПроцесса(Помощник);
	ДобавитьВДеревоОстальныеВариантыОтправки(Помощник);

КонецПроцедуры

&ИзменениеИКонтроль("ДобавитьВДеревоОсновныеВариантыСозданияПроцесса")
Процедура НАДО_ДобавитьВДеревоОсновныеВариантыСозданияПроцесса(Помощник)

	УстановитьПривилегированныйРежим(Истина);

	// Формируем общий список вариантов, добавляемых в корень дерева, из:
	// шаблонов по умолчанию, общих и рекомендуемых шаблонов.

	ВариантыСозданияПроцесса = Новый СписокЗначений;

	ЕстьПредметы = ЗначениеЗаполнено(Помощник.ПредметыПроцесса);

#Удаление	
	Для Каждого КлючЗначение Из Помощник.ВариантыСозданияПроцессовПоУмолчанию Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		Представление = ПредставлениеВариантаСозданияПроцессаПоУмолчанию(
		КлючЗначение.Ключ, Помощник);

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Представление);
	КонецЦикла;
#КонецУдаления

	Для Каждого КлючЗначение Из Помощник.ОбщиеВариантыСозданияПроцессов Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Строка(КлючЗначение.Ключ));
	КонецЦикла;

	Для Каждого КлючЗначение Из Помощник.РекомендуемыеВариантыСозданияПроцессов Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Строка(КлючЗначение.Ключ));
	КонецЦикла;

	ВариантыСозданияПроцесса.СортироватьПоПредставлению();

	Для Каждого ВариантСозданияПроцесса Из ВариантыСозданияПроцесса Цикл
		СтрокаВарианта = Помощник.ДеревоВариантов.Строки.Добавить();
		СтрокаВарианта.Вариант = ВариантСозданияПроцесса.Значение;
		СтрокаВарианта.Представление = ВариантСозданияПроцесса.Представление;
	КонецЦикла;

КонецПроцедуры

&ИзменениеИКонтроль("ДобавитьВДеревоОстальныеВариантыОтправки")
Процедура НАДО_ДобавитьВДеревоОстальныеВариантыОтправки(Помощник)

	ВариантыСозданияПроцесса = Новый СписокЗначений;

	ЕстьПредметы = ЗначениеЗаполнено(Помощник.ПредметыПроцесса);

#Вставка
	Для Каждого КлючЗначение Из Помощник.ВариантыСозданияПроцессовПоУмолчанию Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		Представление = ПредставлениеВариантаСозданияПроцессаПоУмолчанию(
		КлючЗначение.Ключ, Помощник);

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Представление);
	КонецЦикла;
#КонецВставки
	Для Каждого КлючЗначение Из Помощник.ДругиеВариантыСозданияПроцессов Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Строка(КлючЗначение.Ключ));
	КонецЦикла;

	ВариантыСозданияПроцесса.СортироватьПоПредставлению();

	Если ВариантыСозданияПроцесса.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;

	СтрокаВарианта = Помощник.ДеревоВариантов.Строки.Добавить();
	СтрокаВарианта.Вариант = ПомощникОтправитьКлиентСервер.ГруппаДругихВариантовСозданияПроцессов();
	СтрокаВарианта.Представление = НСтр("ru = 'Другие варианты'");
	Помощник.НедоступныеВарианты[СтрокаВарианта.Вариант] = Истина;

	Для Каждого ВариантСоздания Из ВариантыСозданияПроцесса Цикл
		ПодчиненнаяСтрокаВариант = СтрокаВарианта.Строки.Добавить();
		ПодчиненнаяСтрокаВариант.Вариант = ВариантСоздания.Значение;
		ПодчиненнаяСтрокаВариант.Представление = ВариантСоздания.Представление;
	КонецЦикла;

КонецПроцедуры
Показать


Результат:
Прикрепленные файлы:
3. Maito 52 23.07.20 14:20 Сейчас в теме
(1) Можно создать для них отдельную группу, тогда код будет выглядеть вот так:

&ИзменениеИКонтроль("ДобавитьВДеревоВариантыСозданияПроцессов")
Процедура НАДО_ДобавитьВДеревоВариантыСозданияПроцессов(Помощник)

	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьБизнесПроцессыИЗадачи") Тогда
		Возврат;
	КонецЕсли;

	// Очищаем основные варианты создания процессов.
	Помощник.ОсновныеВариантыСозданияПроцессов.Очистить();

	// Выполняем заполнение данных по предметам.
	ЗаполнитьДопустимыеТипыПредметовВПроцессах(Помощник);
	ЗаполнитьПредметыПроцесса(Помощник);

	Если ЗначениеЗаполнено(Помощник.ПредметыПроцесса)
		И Не ЕстьПредметыДопустимыеВПроцессах(Помощник) Тогда

		Возврат;
	КонецЕсли;

	ЗаполнитьДопустимыеТипыВариантовДляПредметов(Помощник);

	// Вначале определяем все возможные варианты создания процессов,
	// с учетом предметов процессов в помощнике.

#Вставка	
	ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
	ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
	Если Помощник.ПредметыПроцесса.Количество() = 0 
		Или Не ЗначениеЗаполнено(Помощник.ПредметыПроцесса[0].Ссылка) Тогда
		ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
		ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
	КонецЕсли; 
#КонецВставки
#Удаление	
	ЗаполнитьВариантыСозданияПроцессовПоУмолчанию(Помощник);
	ЗаполнитьОбщиеВариантыСозданияПроцессов(Помощник);
	ЗаполнитьРекомендуемыеВариантыСозданияПроцессов(Помощник);
	ЗаполнитьДругиеВариантыСозданияПроцессов(Помощник);
#КонецУдаления
	
	// После добавляем в дерево основные варианты создания процессов,
	// в отдельной группе остальные доступные варианты.

	ДобавитьВДеревоОсновныеВариантыСозданияПроцесса(Помощник);
	ДобавитьВДеревоОстальныеВариантыОтправки(Помощник);

КонецПроцедуры

&ИзменениеИКонтроль("ДобавитьВДеревоОсновныеВариантыСозданияПроцесса")
Процедура НАДО_ДобавитьВДеревоОсновныеВариантыСозданияПроцесса(Помощник)

	УстановитьПривилегированныйРежим(Истина);

	// Формируем общий список вариантов, добавляемых в корень дерева, из:
	// шаблонов по умолчанию, общих и рекомендуемых шаблонов.

	ВариантыСозданияПроцесса = Новый СписокЗначений;

	ЕстьПредметы = ЗначениеЗаполнено(Помощник.ПредметыПроцесса);

#Удаление	
	Для Каждого КлючЗначение Из Помощник.ВариантыСозданияПроцессовПоУмолчанию Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		Представление = ПредставлениеВариантаСозданияПроцессаПоУмолчанию(
		КлючЗначение.Ключ, Помощник);

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Представление);
	КонецЦикла;
#КонецУдаления

	Для Каждого КлючЗначение Из Помощник.ОбщиеВариантыСозданияПроцессов Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Строка(КлючЗначение.Ключ));
	КонецЦикла;

	Для Каждого КлючЗначение Из Помощник.РекомендуемыеВариантыСозданияПроцессов Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Строка(КлючЗначение.Ключ));
	КонецЦикла;

	ВариантыСозданияПроцесса.СортироватьПоПредставлению();

	Для Каждого ВариантСозданияПроцесса Из ВариантыСозданияПроцесса Цикл
		СтрокаВарианта = Помощник.ДеревоВариантов.Строки.Добавить();
		СтрокаВарианта.Вариант = ВариантСозданияПроцесса.Значение;
		СтрокаВарианта.Представление = ВариантСозданияПроцесса.Представление;
	КонецЦикла;
	
#Вставка
	ВариантыСозданияПроцесса.Очистить();
	
	Для Каждого КлючЗначение Из Помощник.ВариантыСозданияПроцессовПоУмолчанию Цикл

		Если Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Ключ)
			И Не ВозможноДобавлениеВарианта(Помощник, КлючЗначение.Значение) Тогда

			Продолжить;
		КонецЕсли;

		Если ЕстьПредметы И Помощник.ДопустимыеТипыВариантовДляПредметов[
			КлючЗначение.Значение] = Неопределено Тогда

			Продолжить;
		КонецЕсли;

		Если ЭтоВариантСозданияПроцессаОбработки(КлючЗначение.Значение)
			И Не ВозможноДобавлениеВариантовСозданияПроцессаОбработкиДокумент­ов(Помощник) Тогда

			Продолжить;
		КонецЕсли;

		Представление = ПредставлениеВариантаСозданияПроцессаПоУмолчанию(
		КлючЗначение.Ключ, Помощник);

		ВариантыСозданияПроцесса.Добавить(КлючЗначение.Ключ, Представление);
	КонецЦикла;
	
	ВариантыСозданияПроцесса.СортироватьПоПредставлению();

	СтрокаВарианта = Помощник.ДеревоВариантов.Строки.Добавить();
	СтрокаВарианта.Вариант = "По умолчанию";
	СтрокаВарианта.Представление = НСтр("ru = 'По умолчанию'");
	Помощник.НедоступныеВарианты[СтрокаВарианта.Вариант] = Истина;
	
    Для Каждого ВариантСоздания Из ВариантыСозданияПроцесса Цикл
        ПодчиненнаяСтрокаВариант = СтрокаВарианта.Строки.Добавить();
        ПодчиненнаяСтрокаВариант.Вариант = ВариантСоздания.Значение;
        ПодчиненнаяСтрокаВариант.Представление = ВариантСоздания.Представление;
    КонецЦикла;
#КонецВставки
КонецПроцедуры
Показать
hdv; emcya; +2 Ответить
4. emcya 4 28.11.20 04:02 Сейчас в теме
5. Sv_444 31.08.21 07:34 Сейчас в теме
6. AlekSo 15 28.09.21 05:35 Сейчас в теме
7. nkp14108 94 28.09.21 15:57 Сейчас в теме
Идея хорошая, но для массового применения в созданное расширение надо добавить в шаблоны документов реквизит (признак применения). Не во всех случаях это можно(нужно) применять.
8. Maito 52 29.09.21 08:59 Сейчас в теме
(7) Согласен. Всега можно сделать лучше. Я просто показал где искать и как скорректировать, дальше каждый может адаптировать решение под свои нужнды.
Оставьте свое сообщение