🔝 Частая ошибка новичков - заблокировать запись документа



Довольно часто к программисту приходит задача с формулировкой: «при таком-то простом условии от бизнеса заблокировать запись документа».

Задача сама по себе несложная, для новичка выглядит очевидным в событии документа ПриЗаписи добавить простое условие и установить Отказ = Истина.



И ошибка заключается в том, что программисты не уточняют следующие вопросы:



- зачем эта блокировка?

Бывает нужно просто вывести сообщение, а блокировать нет необходимости.



- для всех ли эта блокировка или нужно разграничить по правам?

Как правило на полные права она распространяется.



- а как ещё данный документ записывается?

Бывает так, что он создаётся автоматически из другой обработки и это тоже надо учесть.



- есть ли исключения?

На такой вопрос заказчик может задуматься и правда найти исключение в своем условии.



- блокировать программное проведение или пользовательское?

Если пользовательское, то эту проверку надо перенести на форму. Если не задаться этим вопросом, можно заблокировать какой-нибудь обмен данными, который возможно происходит и без установленного флага ОбменДанными.Загрузка = Истина.



- блокировать запись или проведение документа?

Бывают документы с огромным количеством строк, и если пользователь который их вбивал несколько часов, не сможет записать документ, то он вряд ли обрадуется, когда выяснит, что теперь ему надо внести данные заново.



На какие-то вопросы нужно получить ответ от бизнеса, а на какие-то можно постараться найти самим ответы. Но только после получения ответов на эти вопросы, можно говорить о жесткой блокировке записи документа.

Можно привязать данное условие к какому-то функционалу, который можно отключить. Например, константы, или периодический регистр сведений, чтобы отсекать по дате, где проверка нужна, а где нет и т.п.



📢 В начале карьеры я сам делал такие блокировки, благо мне быстро объяснили опытные коллеги, чем плоха такая «жесткая» блокировка.





> > > Случайный пост < < <



#ЕБ_Повседневность