Имя: Пароль:
1C
 
Отказ или ВызватьИсключение
0 rowvg
 
naïve
01.10.20
10:42
Подскажите, пожалуйста, как правильно прервать транзакцию при проведении документа:

Отказ = Истина;
Возврат;

ИЛИ

ВызватьИсключение(ТекстОшибки);

?
1 ДенисЧ
 
01.10.20
10:45
Много от чего зависит...
Штатный способ - это отказ.
Исключение - это когда вообще Нестор...
2 Sserj
 
01.10.20
10:47
При Отказ у тебя могут выоплняться все последующие процедуры, которые может быть и нужны и они кстати могут потом этот Отказ поменять опять на Ложь в случае чего. А по ВызватьИсключение у тебя произойдет немедленный выброс из всей последовательности обработки.
Вот и выбирай.
3 rowvg
 
naïve
01.10.20
10:48
(2) Мне так и надо У меня после Отказ = Истина; следом идет Возврат;
4 Sserj
 
01.10.20
10:50
(3) Вопрос в том где именно у тебя этот Отказ. Если он у тебя в какой то подписке на события и их несоколько подписок то все остальные все равно будут работать но со значением Отказ-Истина.
5 experimentator76
 
01.10.20
11:44
(0) все просто
если хочешь Отказ обрабатывать или того требует логика разработанного до тебя - используй Отказ как флаг.
если же надо немедленно "грубо" прервать транзакцию - вызывай исключение.
исключение еще в журнал регистрации пишется, так что накапливается какая-то статистика по исключениям
6 Мойдодыр
 
01.10.20
11:49
лучше вызвать исключение с подробным описанием ошибки, чтоб в жр записалось.
иначе там будет "Не удалось провести документ"
7 experimentator76
 
01.10.20
12:28
(6) дада именно так - сама по себе ошибка не несет информации ни для пользователя ни для прога... поэтому описание ошибки не помешает
8 Ненавижу 1С
 
гуру
01.10.20
13:28
(1) расскажи это авторам типовых. У них исключение вызвать без проблем
9 ДенисЧ
 
01.10.20
13:29
(8) Я с инопланетянами не разговариваю