🔝 Частая ошибка новичков - заблокировать запись документа
Довольно часто к программисту приходит задача с формулировкой: «при таком-то простом условии от бизнеса заблокировать запись документа».
Задача сама по себе несложная, для новичка выглядит очевидным в событии документа ПриЗаписи добавить простое условие и установить Отказ = Истина.
И ошибка заключается в том, что программисты не уточняют следующие вопросы:
⏩ - зачем эта блокировка?
Бывает нужно просто вывести сообщение, а блокировать нет необходимости.
⏩ - для всех ли эта блокировка или нужно разграничить по правам?
Как правило на полные права она распространяется.
⏩ - а как ещё данный документ записывается?
Бывает так, что он создаётся автоматически из другой обработки и это тоже надо учесть.
⏩ - есть ли исключения?
На такой вопрос заказчик может задуматься и правда найти исключение в своем условии.
⏩ - блокировать программное проведение или пользовательское?
Если пользовательское, то эту проверку надо перенести на форму. Если не задаться этим вопросом, можно заблокировать какой-нибудь обмен данными, который возможно происходит и без установленного флага ОбменДанными.Загрузка = Истина.
⏩ - блокировать запись или проведение документа?
Бывают документы с огромным количеством строк, и если пользователь который их вбивал несколько часов, не сможет записать документ, то он вряд ли обрадуется, когда выяснит, что теперь ему надо внести данные заново.
На какие-то вопросы нужно получить ответ от бизнеса, а на какие-то можно постараться найти самим ответы. Но только после получения ответов на эти вопросы, можно говорить о жесткой блокировке записи документа.
Можно привязать данное условие к какому-то функционалу, который можно отключить. Например, константы, или периодический регистр сведений, чтобы отсекать по дате, где проверка нужна, а где нет и т.п.
📢 В начале карьеры я сам делал такие блокировки, благо мне быстро объяснили опытные коллеги, чем плоха такая «жесткая» блокировка.
> > > Случайный пост < < <
#ЕБ_Повседневность
Post #307
5.86K
- 👍 46
- ✍ 11
- 🔥 4
- ❤ 1
- 👌 1