Имя: Пароль:
1C
1С v8
Как правильно Отказ = Истина или ВызватьИсключение?
0 fotov
 
09.08.19
12:00
Стандартно - все привыкли делать Отказ = Истина и отдельно писать пользователю причину через Сообщить или СообщениеПользователю.
Я тут подумал - если Отказ = Истина вызывает исключение - так может проще писать ВызватьИсключение и текст ошибки?
1 ДенисЧ
 
09.08.19
12:17
Отказ - это просто переменная. Можешь её в заголовке процедуры назвать "ОНетЯНеБудуДелатьЭтоАдынАдын" и ничего не изменится.
2 ДенисЧ
 
09.08.19
12:17
И присвоение ему истины не вызывает исключения.
3 Йохохо
 
09.08.19
12:18
а Отказ = Истина = Истина вызывает два исключения
4 ixijixi
 
09.08.19
12:18
Смотря где Отказ
5 Cyberhawk
 
09.08.19
12:20
(2) В транзакции записи объекта вызывает
6 Cyberhawk
 
09.08.19
12:21
"может проще писать ВызватьИсключение и текст ошибки?" // Недружественный сценарий по отношению к пользователю. К тому же ты прерываешь выполнение кода, в отличие от.
7 elCust
 
09.08.19
12:27
Будет совсем не красиво использовать "Вызвать исключение" в обработке проведения. Особенно при операции группового проведения
8 Cyberhawk
 
09.08.19
12:28
(7) Если вызывающий код рассчитывает на возможный отказ = истина то разницы с исключением для него никакой
9 Жан Пердежон
 
09.08.19
12:34
(2) СП:
ПередЗаписью(<Отказ>, <РежимЗаписи>, <РежимПроведения>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись выполнена не будет и будет вызвано исключение.
10 fotov
 
09.08.19
12:34
(6) Ну как раз дружественный - если просто написать "Отказ = Истина" - без отдельного Сообщить - пользователю отобразится "Не удалось записать "ИмяЭлемента"
Да даже если и делать "Сообщить" - место отображения сообщения - оно неочевидно.

(7) В синтаксис-помощнике написано, что установка Отказ = Истина приводит к вызову исключения
11 elCust
 
09.08.19
12:36
(10) Да, уже прочитал в СП.
12 Вафель
 
09.08.19
13:03
если потом програмно проводить документы, то удобнее вызвать исключение.
ибо оно само запишится в ЖР.
через сообщить нужно будет самому обрабатывать
13 Cyberhawk
 
09.08.19
13:30
(10) "место отображения сообщения - оно неочевидно" // Очевидно - это окно (форма), находящееся в фокусе до начала серверного вызова. Если ты намекаешь на то, что иногда форма закрывается с едва успевшим начать показываться в ней сообщением, то да - вызов исключения гарантирует сохранность текста сообщения и максимум внимания пользователя )
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший