Приступив к внедрению «1С Документооборота» на предприятии, я столкнулся с некоторыми проблемами и неудобствами в работе с данной программой:
Не блокируется повторный запуск комплексного процесса по документу, если предыдущий процесс не закончен.
Проблему повторного запуска процессов удалось победить дополнительной проверкой вновь создаваемого комплексного процесса.
Данная доработка не мешает дальнейшему обновлению конфигурации. Она была внедрена на версии 2.0.7 и по текущий релиз, 2.1.7 работает без замечаний.
Порядок внедрения данной доработки:
1. Создаем общий модуль "ДополнительныеПроверкиСервер", содержание модуля в загружаемом файле.
2. Создаем подписку на событие "ПередЗаписью" для "БизнесПроцессОбъект.КомплексныйПроцесс" с обработчиком "ДополнительныеПроверкиСервер.ПроверкаНовогоПроцесса"
Теперь программа будет блокировать создание дубликата комплесного процесса, если предудущий аналогичный процесс не завершен.
Дополнение к версии 1.2: Производиться проверка и блокировка повторного запуска процесса только по одному и тому же шаблону. Если в начале названия комплексного процесса есть знак "*", то проверка повторного запуска не производиться.
+, жаль текст не видно
Как у вас происходит проверку прав на процесс если у пользователя их нет он не увидит процессы?
Модуль выполняется в привилегированном режиме, следовательно проверки доступа не выполняются. И обычно повторный запуск процесса пытается сделать тот же самый пользователь, что запустил его в первый раз.
Автор, как сделать условие, чтобы разрешить группе БП запускаться повторно? в нашей системе есть такие.
(3) Не очень понял, что за группа «БП», расшифруйте.
есть группа бизнес процессов, которая требует повторного запуска/ их нужно исключить из блокировки/
Да не проблема, в название комплексного процесса можно добавить ключевой символ, например «#» или «~», и не делать проверку, если такой символ в названии есть.
(6) мне нужно будет поправить запрос? как изменится код подскажите пожалуйста!
Я сделаю новую версию блокировки (версия 1.2), которая будет учитывать эти исключения, ее и скачаете. Подождите пору дней.
(8) Александр, есть ли новости по новой версии?
(9) Ваше пожелание учел в версии 1.2, если название шаблона комплексного процесса начинается со звездочки, проверка не производится.
(10) Здравствуйте. За новую версию мне нужно заплатить?
(11) Просто скачайте. Могу по удаленке поработать с Вами по Документообороту 2.1.
А на релизе 2.1.10.2 работает?
У нас последний релиз, все работает. Если будут замечания, поправлю.
Текущий 2.1.11.5, все работает.
Поддержка 1с предлагает ограничить доступность шаблонов процессов при помощи условий маршрутизаций в карточке привязки шаблона процесса к виду документов (Карточка шаблона процесса – Назначен видам документов).
Чем этот метод лучше?
Мой метод лучше потому, что не надо усложнять условия маршрутизации. Работает уже два года.
Без этой блокировки, поначалу, чуть не провалил проект, т.к пользователи, не разобравшись,
запускали по нескольку раз в обработку один и тот же документ. Соответственно начальство
психовало, согласовывая по три раза одно и тоже.
Понятно, что такая блокировка жизненно необходима.
Вопрос как лучше реализовать.
В вашем методе надо править конфигурация.
В методе через условия маршрутизации следующие минусы
— это условие придется добавлять по все шаблоны процессов
— шаблон пропадает из Отправить – В обработку, но пытливый пользователь может найти его в Отправить – Еще варианты
Правка конфигурации минимальна, только подписка на событие. Объекты типовой конфигурации не меняются. Обновляю конфигурацию без проблем на текущие релизы.
(19)
расскажите более подробнее, как это реализуется? Спасибо!
(21) Подписка на событие «БизнесПроцессОбъект.КомплексныйПроцесс» перед записью. Проверяю существование активного процесса по данному предмету по данному шаблону. Если есть, то отказ записи.
(20)
Добрый день.
А перевести в расширение Вашу обработку можно?
Видимо можно. Надо перехватывать расширением событие при открытии формы запуска комплексного процесса, проверять на активность такой же процесс и в случае надобности блокировать запуск нового процесса.
А как избежать вот этой ошибки —
{ОбщийМодуль.КомандыРаботыСБизнесПроцессамиКлиент.Модуль(27)}: Ошибка при вызове метода контекста (Записать)
РезультатЗаписи = Форма.Записать(ПараметрыЗаписи);
по причине:
Не удалось записать: «Комплексный процесс»!
(25) Если эта ошибка возникает при повторном запуске процесса, то это срабатывает блокировка, предыдущий комплексный процесс не закончен.