Имя: Пароль:
1C
1С v8
Попытка-исключение в транзакции
,
0 BigHarry
 
30.08.12
11:55
По следам этой темы v8: Использование Попыток в коде
Кто-нить может проверить, в 8.2.14 обработка исключения в транзакции проведения (или записи) документа-справочника - приводит к отмене транзакции? Ну типа в модуль вставить простейший код на подобии:
Попытка
а=1/0;
Исключение
КонецПопытки;

Сам платформу пока выкачать не могу, тырнет слишком тягучий, да и надо понять - есть-ли смысл откатываться назад на эту платформу.
1 aleks-id
 
30.08.12
11:56
8.2.15 давно на дворе
2 del123
 
30.08.12
11:57
а почему она должна приводить к отмене транзакции?
3 Reset
 
30.08.12
12:01
(30) Смотря какое исключение. Твое - не приведет.
А почему нельзя просто ОтменитьТранзакцию(), если нужно?
4 Reset
 
30.08.12
12:01
(3) к (0)
5 Reset
 
30.08.12
12:08
(3) Не в тему, невнимательно прочитал, извините
6 BigHarry
 
30.08.12
12:11
Исключение на самом деле отлавливается при записи в справочник, походу из-за того, что код может быть не уникальным и таким образом сделано что бы дубликаты в этом справочнике не создавались. И это только в одном документе, в других тоже что-то подобное. Просто не хочу переписывать чужой код, говорят что после обновления платформы стали эти глюки происходить, старую платформу мальчик-обновляльщик зачем-то удалил напрочь, и теперь  проверить из-за платформы-ли это или нет я не могу, придется домой тащится и там проверять...
7 Reset
 
30.08.12
12:13
(6) ИМХО, навряд ли методы отработки исключительных ситуаций в транзакциях изменялись в последних платформах
8 BigHarry
 
30.08.12
12:16
UPD, мальчик-обновляльщик, оказывается, виндоуз целиком переставил, и походу свежую платформу залил, так что понять какая там платформа до этого была - вааще не представляется возможным, может быть и не 14, а еще более древняя...
9 Reset
 
30.08.12
12:18
Могло измениться что-то другое, напр. в одной версии ошибка происходила, в другой нет или наоборот.
10 BigHarry
 
30.08.12
12:32
На самом деле странно, почему обработка ошибки в исключении неявно приводит к отмене транзакции? Как-то это, имхо, идеологически не верно, если ошибка обработана - то подразумевается что  цепочка кода будет исполняться дальше, а если программеру надо что бы проведение на документа на этом месте прервалось с откатом транзакции - можно соответствующую переменную в Ложь прописать, ну или через ВызватьИсключение передать обработку ошибки в платформу.
В общем - хрень какая-то....
11 acsent
 
30.08.12
12:35
(10) если это ошибка записи в базу то приводит иначе нет
12 BigHarry
 
30.08.12
12:47
(11) Да, это ошибка записи в базу, дубликат кода. Но раз программист это явно написал через Попытку, значит такая ситуация, получается, штатная и прогнозируемая, но косяки начали выползать только после обновления системы, получается что на какой-то платформе все работало без отмены транзакций, ну либо исключений не происходило. Ладно, черт с ним, решили вызвать 1С-нега и пусть он что-то с этим делает - может поставит более другую платформу, либо пусть перепишет модули проведения.
13 Reset
 
30.08.12
12:55
(11) Может и без записи, например при недостаточности прав (запросом выбираем закрытые на чтение и тп)