В 1С: Документообороте из коробки нет возможности ограничить повторный запуск комплексного процесса по определенному шаблону если таковой уже запущен у данного документа. в итоге можно запускать один и тот же процесс сколько угодно раз.
Чтобы этого избежать, нужно создать подписку на событие
Далее добавить код для процедуры обработчика:
Если НЕ ЗначениеЗаполнено(Источник.Ссылка) И ЗначениеЗаполнено(Источник.Шаблон) И Источник.Предметы.Количество() Тогда
УстановитьПривилегированныйРежим(Истина);
Предмет = Источник.Предметы[0].Предмет;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| БизнесПроцессыПоШаблону.Ссылка КАК СсылкаСсылка
|ИЗ
| КритерийОтбора.БизнесПроцессыПоШаблону(&Шаблон) КАК БизнесПроцессыПоШаблону
| ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы
| ПО БизнесПроцессыПоШаблону.Ссылка = КомплексныйПроцессПредметы.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцессыДляЗапуска КАК ПроцессыДляЗапуска
| ПО БизнесПроцессыПоШаблону.Ссылка = ПроцессыДляЗапуска.БизнесПроцесс
|ГДЕ
| НЕ БизнесПроцессыПоШаблону.Ссылка.Завершен
| И БизнесПроцессыПоШаблону.Ссылка.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Активен)
| И БизнесПроцессыПоШаблону.Ссылка <> &Ссылка
| И КомплексныйПроцессПредметы.Предмет = &Предмет
| И (ПроцессыДляЗапуска.Состояние ЕСТЬ NULL
| ИЛИ ПроцессыДляЗапуска.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияПроцессовДляЗапуска.СтартОтменен))
| И НЕ БизнесПроцессыПоШаблону.Ссылка.ПометкаУдаления";
Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
Запрос.УстановитьПараметр("Предмет", Предмет);
Запрос.УстановитьПараметр("Шаблон", Источник.Шаблон);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("По данному документу процесс обработки уже запущен!!!");
Отказ = Истина;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Проверено на релизе 1С:Предприятие 8.3 (8.3.16.1659)
Версия: редакция 2.1 (2.1.12.2)