BlizD / BPS

Согласование (подсистема). Для любого справочника и документа в 1С. Встраивается в любые конфигурации
http://infostart.ru/public/544937/
70 stars 21 forks source link

Доработка механизма блокировки/разблокировки объекта #13

Open BlizD opened 6 years ago

BlizD commented 6 years ago

Механизм согласования не работает как нужно. Пример: Настройки: Перед стартом - Заблокировать объект БД При завершении если не согласовано - Разблокировать объект БД При возвращении на доработку - Разблокировать объект БД Запретить проведение объекта БД пока он не согласован - Истина Стоит условие на документ "Реализация товаров и услуг" если Сумма документа Больше или равно "1 000" Создаем новый документ "Реализация товаров и услуг" где сумма документа больше 1000. При проведении выдает "Ошибка! запрещено проводить документ, пока он не согласован для предмета согласования [Согласование по реализации товаров и услуг]". Все правильно документ подходит под условие и нужно его согласовать. Записываем документ. Далее отправляем на согласование и согласовываем этот документ, статус становится "Утверждено". И после согласования документу разрешено проведение, но срабатывает другая проверка на блокировку так как стоит условие "Перед стартом - Заблокировать объект БД" и выдает ""Ошибка! запрещено изменять объект согласования [Реализация товаров и услуг]" его все равно нельзя провести! Потому что в подписке на события перед записью сначала идет проверка на проведение, и потом проверка на блокировку объекта и отказ становится Истина, если он находится в регистре заблокированных документов. Если поставить условие "При завершении если согласовано - Разблокировать объект БД" тогда смысл от этого согласования, если пользователь после согласования сможет зайти изменить спокойно данные в документе и провести его с новыми изменениями без всяких проверок. Документ при проведении уже не отправится на согласование так как уже имеет статус "Утверждено".

Описание от пользователя

AnderWonder commented 6 years ago

А почему бы просто не отключить у пользователя право "Изменение проведенных"? У себя сделали таким образом. Можно также использовать свойство формы "ПриЗаписиПерепроводить", но это не защитит от программного изменения объекта.