Имя: Пароль:
1C
1С v8
Вопрос на проф на эксперта по тех. платформе
0 alexlap
 
08.05.15
17:58
Использование конструкций Попытка...Исключение…КонецПопытки внутри транзакций:
    1. Не имеет смысла, транзакция при возникновении любой исключительной ситуации все равно откатывается.
    2. Не всегда оправданно, транзакция откатывается, если исключительная ситуация определена как невосстановимая.
    3. Иногда оправданно, транзакция не откатывается, если исключительная ситуация определена как восстановимая.
    4. Мешает понять, что на самом деле происходит, если исключение не логируется.
    5. Верны ответы 1 и 4.
    6. Верны ответы 2, 3 и 4.

И что тут ответить и почему?
1 jsmith82
 
08.05.15
18:10
всяко не п.1
2 jsmith82
 
08.05.15
18:11
думаю, п. 6
3 Garykom
 
гуру
08.05.15
18:12
а что такое "восстановимая" и "невосстановимая"?
4 jsmith82
 
08.05.15
18:13
Но я не спец. по транзакциям. Мыслю логически
п.1 неверен, значит, п.5 тоже неверен
остаётся 2, 3, 4, 6
п.3 верен
п.2 и п.4 - одно из них, имхо, верно
значит, п.6
5 jsmith82
 
08.05.15
18:14
(3) я сам до конца не понял
восстановимая, допустим, обращение к несуществующему методу, свойству, деление на 0
а невосстановимая?
6 Ministr
 
08.05.15
18:16
Точно пункт 6. Сдавал этот экзамен.
7 gr0ck
 
08.05.15
18:17
(5) когда платформа с дампом падает)
8 Ministr
 
08.05.15
18:18
Написано много где , по моему в последний раз я видел в книге "Коротко о главном", но там написано, только про пункт 2 и 3 , про 4 пункт надо догадаться по собств. знаниям.
9 Ministr
 
08.05.15
18:20
Невостоновимая - это когда допустим захотел записать элемент справочника, а он не записался, вот транзакция откатиться вся сразу и попытка исключение не спасет. Так как нарушается целостность информационной базы.
10 EugeniaK
 
08.05.15
18:26
(0) Насколько я понимаю, транзакция откатится, если ошибка в попытке возникла при работе с базой. Т.е. она невосстановимая.
Но не откатится, если было, например, деление на ноль в попытке.
Соответственно, верный ответ 6.
11 alexlap
 
08.05.15
18:41
Понятно более менее логика. Вопрос что такое воостановимая ошибка что нет.  Как пример ошибка записи справочника из-за неуникальности кода восстановимая? Есть где-нибуль определение.
12 MrStomak
 
08.05.15
19:06
(11) Восстановимая - когда система может продолжить работу, невосстановимая - когда система вынуждена завершиться.

Например, "В этой транзакции уже происходили ошибки" - невосстановимая ошибка :)
13 GROOVY
 
08.05.15
19:10
14 vde69
 
08.05.15
19:39
1 - точно нет
2 - похоже на правду, но лично мне что-то не нравится в этом вопросе
3 - точно ДА
4 - я ставлю под сомнение, по тому как из постановки вопроса следует, что любая попытка внутри транзакции должна логироватся, что бред...


так, что я склоняюсь к ответу "3"
15 Рэйв
 
08.05.15
19:42
На 8.2 внутри транзакции (даже если неявная обработка проведения) -вываливалось в ошибку. На 8.3 не тестировал
16 GROOVY
 
08.05.15
19:51
Что такое "восстановимая исключительная ситуация"? А?

В = 10 / 0; - восстановимая?
17 vde69
 
08.05.15
19:51
(15) ты не прав, проверь такой код :)


начатьТранзакцию()
попытка
а=1/0;
исключение
конецПопытки()
зафиксироватьТранзакцию()
Сообщить("все нормально")
18 ДенисЧ
 
08.05.15
19:52
(17) Синтаксическая ошибка. Нескомпилил.
19 vde69
 
08.05.15
19:54
(18) ну добавь точки с запятой :)
20 ДенисЧ
 
08.05.15
19:54
(19) в это
конецПопытки() ?
21 GROOVY
 
08.05.15
19:55
(19) Компилятор за тебя работать не будет! ;)
22 vde69
 
08.05.15
20:01
&НаКлиенте
Процедура Команда1(Команда)
    Команда1серв();
КонецПроцедуры


&НаСервере
Процедура Команда1серв()
    НачатьТранзакцию();
    Попытка
        а=1/0;
    Исключение
    КонецПопытки;
    ЗафиксироватьТранзакцию();
    Сообщить("все нормально");

КонецПроцедуры
23 MrStomak
 
08.05.15
20:19
(16)Я ж написал - невосстановимые - это когда система вынуждена завершить работу. В контексте вопроса ошибки правильнее делить как возникшие в субд и в 1с. Восстановимые ошибки субд можно поймать попыткой, но единственный выход в транзакции без получения невосстановимой "в этой транзакции уже происходили ошибки" - это откат транзакции, так что смысла не очень много.
24 Рэйв
 
08.05.15
20:20
(22)Ну вы тут еще на с++ предъявите.
Понятно, что на толстом и тонком клиенте - это разные вещи. И я даже уверен, что их создатели не до конца знают все нюансы.
25 MrStomak
 
08.05.15
20:24
(24)Указанный пример не на тонком и не на толстом клиенте - он на сервере
26 Рэйв
 
08.05.15
20:26
(25)>>&НаКлиенте в (22) не вводит ли вас в когнитивный диссонанс?:-)
27 vde69
 
08.05.15
20:28
(26) не путайте никого, (22) выполняется на сервере, никаких откатов транзакции нет...
28 Рэйв
 
08.05.15
20:29
(27)Вот взял и все испортил:-)
Не мог дождаться пока он ответит чтоли!
29 MrStomak
 
08.05.15
20:36
(28) очень интересно, какого ответа ты ждал. Бредовые заявления забавно видеть, но не всегда охота комментировать
30 Рэйв
 
08.05.15
20:37
(29)да-да да. Задним умом- мы все повелители галлактики.
31 ДенисЧ
 
08.05.15
20:37
ъм....
Если я ошибку в транзкции загоню на сервер, то она не откатится?
А на клиенте таки да?
32 MrStomak
 
08.05.15
20:42
(30) Из тебя совершенно никакой провокатор
(31) Ошибка на стороне субд - вызовет откат, на стороне 1с - нет. Случаи псевдовложенных транзакций сложнее - так как там откат транзакции низкого уровня, что ошибкой не является, вызовет откат всего или ошибку "в этой транзакции..."
33 Рэйв
 
08.05.15
20:44
(32) Ты даже не знаешь что будет если я тебя ДЕЙСВИТЕЛЬНО начну провоцировать:-))
Так что не в тему ты аукнул
34 lucifer
 
08.05.15
20:45
(0) слух, а где ты вопросы взял, сам готовлюсь к эксперту
35 lucifer
 
08.05.15
20:48
(0) я б выбрал только первый, по 4 можно поспорить, что тут значит "логируется"
36 lucifer
 
08.05.15
20:49
(35) + если мы не глушим исключение значит нет проблем
37 MrStomak
 
08.05.15
20:51
(33) Почему же, знаю. Ничего. Так как уровень провокации откровенно дилетантский.
38 vde69
 
08.05.15
20:52
(31) на клиенте не может быть транзакции (я тебя не узнаю....)

(32) ошибка на стороне субд - это скорее необрабатываемая в конструкции попытка/исключение ошибка (не всегда, но иногда). если в сабже "невосстановимая"="необрабатываемая" тогда вопрос сабжа звучит несколько иначе....
39 vde69
 
08.05.15
20:56
(32) выполнение запроса с делением на 0 должно быть обрабатываемой на сервере 1с ошибкой, но такой запрос откатит транзакцию скуля если она конечно начата, что не факт.

то есть ты хочешь сказать, что вопрос касается понимания различий транзакции 1с и субд ????
40 MrStomak
 
08.05.15
20:58
(38) На толстом клиенте в ОФ может быть транзакция.

невосстановимая - это не обрабатываемая, да. Субд может возвращать ошибку времени ожидания на блокиовке - это восстановимая ошибка
41 Рэйв
 
08.05.15
20:58
(39)Ты извини, конечно:-)
Но чет мне кажится ты сам в формулировках заблудился.
Указывать боюсь даже в связи с твоей повышенной агрессивностью:-))
42 lucifer
 
08.05.15
20:58
(0) дай вопросы
43 MrStomak
 
08.05.15
21:00
(39) Ну в общем да. Но термины восстановимости смущают - невосстановимые ошибки вообще не обрабатываются
44 MrStomak
 
08.05.15
21:02
(41) разумное решение
45 vde69
 
08.05.15
21:17
(43)ну да, меня то же термины смущают. Видимо надо методички зубрить как всегда :)
46 GROOVY
 
08.05.15
21:25
(42)  Купи http://v8.1c.ru/metod/books/book.jsp?id=492 300р думаю тебя не обеднят :)
47 lucifer
 
08.05.15
21:30
(46) заказал.
кстати почему написано экзамена "1С:Профессионал"
48 alexlap
 
08.05.15
21:33
(34) Нет сейчас ссылки, но в открытом доступе поищи на сайте 1с ссылку правда там без ответов или см (13).

(14) Почти согласен, Но  п 3. все же вопрос определения. Если во внешней транзакции например попробовать записать справочник и запись окажется неудачной по причине к примеру устаревшей версии объекта то внешняя транзакции будет отмена в любом случае, но это даже не ошибка СУБД. Устаревание версии распознает сервер 1с. По п 4. может имелось в виду записьЖурнала регистрации вне транзакции?

В целом понятно. Четких определений нет. Вопрос корявый до ужаса. Правильный ответ по мнению 1с скорее 6.

Кто сдавал что кстати с апеляциями по подобным вопросам? Есть шансы? Там таких неоднозначных много..
49 lucifer
 
08.05.15
21:36
(14) почему это 1 точно нет, не важно в попытке исключение произойдет или нет, будет глушиться или нет, после этого транзакция уже не закомититься
50 alexlap
 
08.05.15
21:44
(49) Пркрасно завершится. Попробуй напрмер для деления на 0
51 lucifer
 
08.05.15
21:45
(50) да есть нюансы, если не было обращение к БД то закомитится
52 lucifer
 
08.05.15
21:46
(51) ну да тогда не 1
53 Зеленый пень
 
08.05.15
21:47
Надо же. Всегда считал, что любая ошибка в Попытке...Исключение ведет к откату транзакции. Оказывается - нет.
Причем поведение в 8.0 отличается от 8.1 и 8.2
Запрос "ВЫБРАТЬ     1 / 0 КАК Поле1" не прерывает транзакции в 8.0, но прерывает в 8.1 и выше.
54 MrStomak
 
08.05.15
21:52
(51) на языке 1с можешь делить сколько угодно раз на 0 и обращаться к бд - отката не будет. Вот если будет rollback на субд по любой причине, даже не по ошибке, то обработка в 1с возможна только без обращения к данным и с явным вызовом отката
55 Ministr
 
08.05.15
21:52
Экзамен 1С:Профессионал начался с проводиться с 1 апреля, записался на 1 апреля решил проверить, что я знаю не видя ни одного вопроса. Вот скриншоты, этот вопрос там - "6".
Ссылки:
https://yadi.sk/i/FVU2Pzw7gWi3G
https://yadi.sk/i/twveX9EqgWi3N

Потом появилась книжка, где в числах 6-7 купил, посмотрел, понял, что ещё надо знания я то подтянуть перед экспертом.
56 Ministr
 
08.05.15
21:54
Потом правда домой пришел разобрал вопросы неправильные.. Эх, если бы подумать хорошо, то 12 правильных можно было бы набрать.
57 GROOVY
 
08.05.15
22:23
(47) Ну так это еще не "Специалист".
58 lucifer
 
08.05.15
23:31
(57) я думал что это эксперт по технолагическим вопросам, что там свои градации есть? Типа эксперт - проф, эксперт - спец?
59 lucifer
 
08.05.15
23:31
(55) а ты где-то онлайн пробовал проходить? дай ссылку
60 lucifer
 
08.05.15
23:32
я слышал что там устный экзамен, а не тестирование
61 lucifer
 
08.05.15
23:47
ппц это 1С марта ввело ((
62 Ministr
 
09.05.15
00:03
(59) Это было реальное тестирование, а не онлайн, мне дали мои результаты в конце тестирования.

Онлайн тестирование - тоже есть, посмотри на странице сдачи экзамена 1С:Эксперт , там все расписано куда заходить для онлайн тестирвоания.

С 1 апреля вышло письмо от 1С, прежде чем пойти на экзамен 1С:Эксперт, необходимо вначале пройти 1С:Профессионал. Сделали, чтобы отсеять всякое гамно.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.