|
8.3 Справочник. Модуль объекта. Отказ записи и вывод сообщения |
☑ |
0
Wefast
21.02.24
✎
13:16
|
Собственно у справочника отключен контроль уникальности.
Хочу программно проверить уникальность по наименованию
1. В модуле объекта ПередЗаписью проверяю, и если данный элемент справочника не уникален нужно сообщить об этом пользователю и отказаться от записи.
Если пишу
ОбщегоНазначения.СообщитьПользователю("какой то текст",,,ИСТИНА);
Или
Текст = "какой то текст"
ВызватьИсключение Текст;
То пользователю выводится ошибка, что не смог записать и в тексте "путь" до строчки кода где это произошло.
В общем не такую ошибку я хочу выдать пользователю. А обычную
2. Так же возможно нужно учесть, что записывать могут несколько человек, и нужно видимо блокировать весь справочник. Но звучит как что то избыточное.
Смотрю как сделано что то подобное в других справочниках. И там никаких блокировок, и так же вызывается исключение либо сообщение пользователю.
|
|
1
Волшебник
21.02.24
✎
13:22
|
Проверять надо в форме ПередЗаписью
Пишите там:
Сообщить("текст");
|
|
2
Wefast
21.02.24
✎
13:25
|
(1) а если программно запись происходит?
|
|
3
Волшебник
21.02.24
✎
13:26
|
(2) При программной записи контроля быть не должно
|
|
4
Dmitrii
21.02.24
✎
13:56
|
(2) >> а если программно запись происходит?
Если программно производится запись, то какая разница - что в тексте об ошибке?
При программной записи объекта как раз таки будет немаловажным знать - в какой именно строке Вашей чудо-программы возникло исключение.
|
|
5
vicof
21.02.24
✎
14:29
|
(1) Проверять надо в обработке проверки заполнения
|
|
6
Волшебник
21.02.24
✎
14:31
|
(5) Да, это ещё более правильно
|
|
7
sikuda
21.02.24
✎
14:33
|
(1) Да лучше контролирвать в форме.
(3) Согласен не должно, но незабываем стандартный = ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
https://its.1c.ru/db/v8std/content/463/hdoc
|
|
8
Valdis2007
22.02.24
✎
04:30
|
Рекомендация с ИТС -"...Поэтому для реквизитов, некорректные значения которых могут привести к рассогласованности данных в информационной базе, проверку корректности следует выполнять в обработчиках событий, возникающих в транзакции записи - ПередЗаписью..."
Не уникальность наименования, это рассогласованность данных в БД. Поэтому используй - ПередЗаписью
|
|
9
Valdis2007
22.02.24
✎
04:33
|
Другими словами...ОбработкаПроверкиЗаполнения - проверка корректности в контексте конкретного объекта.
ПередЗаписью - проверка корректности в конексте окружения
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший