Имя: Пароль:
1C
1С v8
В 1с 8.3 УПП Попытка Исключение КонецПопытки не правильно срабатывает
,
0 AlexandrV
 
06.09.17
10:23
В 1с 8.3 УПП Попытка Исключение КонецПопытки не правильно срабатывает

Попытка

    выражение 1;

Исключение
    ИИИ_ = "";  (Выражение 2);
КонецПопытки

Сама процедура с попыткой вызвана тоже в процедуре используя попытку

Выражение 1 дает ошибку, попадает в исключение отрабатывает выражение 2, но в результате попадает еще в исключение вышестоящее

Подскажите как исключить попадание в вышестоящее исключение
1 Heckfy
 
06.09.17
10:26
Никак. :)
2 catena
 
06.09.17
10:37
(0)У вас какая-то альтернативная платформа, видимо.
3 AlexandrV
 
06.09.17
10:41
(2)+ УПП сильно переработана но проблема в не измененном объекте номенклатуры
4 catena
 
06.09.17
10:44
(3)При чем здесь УПП и работа штатного оператора?
5 Ненавижу 1С
 
гуру
06.09.17
10:48
//Пример 1

Процедура Тест()
    Попытка
        А = 1/0;
    Исключение    
    КонецПопытки;
КонецПроцедуры

Попытка
    Тест();
Исключение
    //сюда не попадаем
КонецПопытки;



//Пример 2

Процедура Тест()
    Попытка
        А = 1/0;
    Исключение    
        ВызватьИсключение;
    КонецПопытки;
КонецПроцедуры

Попытка
    Тест();
Исключение
    //сюда попадаем
КонецПопытки;
6 AlexandrV
 
06.09.17
10:50
Из номенклатуры пытаются записать данные в регистр значений но не у все кто создает номенклатуру и ее изменяет есть права на запись в регистр, перебирать роли гиморой проще было так решить, нго здесь выскочил другой косяк (который в начале описан)
7 catena
 
06.09.17
10:51
(6)Косяк где-то в другом месте. Исключение вложенной попытки не вызывает исключение внешней. В (5) все расписано.
8 AlexandrV
 
06.09.17
10:51
(5) у меня та-же часть кода который у тебя описан в начале
9 AlexandrV
 
06.09.17
10:53
(8)+ если я закоментирую запись в регистр все работает и на коды исключений нигде не попадает
10 h-sp
 
06.09.17
10:53
(8) ну так сделай

БилиОшибки = Ложь;

Попытка

    выражение 1;

Исключение
    БылиОшибки = Истина;

Если БылиОшибки = Истина Тогда

Попытка

    ИИИ_ = "";  (Выражение 2);

Исключение  


КонецПопытки

КонецЕсли;
11 Ненавижу 1С
 
гуру
06.09.17
10:54
ну сделай так:

Процедура Тест(ПоОсобому=Ложь)
    Попытка
        А = 1/0;
    Исключение
        Если ПоОсобому Тогда
            ВызватьИсключение;
        КонецЕсли;
    КонецПопытки;
КонецПроцедуры

Попытка
    Тест(Истина);
Исключение
КонецПопытки;