|
Откат транзакции |
☑ |
0
ProgramFiles
16.11.15
✎
13:09
|
Добрый день
Начал только работать и инетерсует знакотов пояснение по коду
НачатьТранзакцию();
Для Индекс = 0 По НайденныеОбъекты.Количество() - 1 Цикл
ОбработкаПрерыванияПользователя();
Строка = НайденныеОбъекты.Получить(Индекс);
Если НЕ Строка.Пометка Тогда
Продолжить;
КонецЕсли;
Объект = Строка.Объект.ПолучитьОбъект();
вОбработатьОбъект(Объект, Индекс);
КонецЦикла;
ЗафиксироватьТранзакцию();
В данном коде происходит ли откатТранзакции??
как я понимаю,для каждой строчки из цикла фиксируется транзакция ,и если есть какая то ошибка то по строчке она откатывается?
Прошу сильно не бить по голове,а объяснить))Потому что недавно начал прогать только)
|
|
1
Ненавижу 1С
гуру
16.11.15
✎
13:11
|
у тебя же начало и конец транзакции вне цикла, тогда почему "для каждой строчки из цикла фиксируется транзакция"
|
|
2
bolobol
16.11.15
✎
13:16
|
Если хоть одна ошибка - транзакция не зафиксируется, т.к. код до "ЗафиксироватьТранзакцию();" не дойдёт, т.е. - откатится всё, что было сделано от "НачатьТранзакцию();"
|
|
3
ProgramFiles
16.11.15
✎
13:21
|
(2) т.е. ни одна транзакция ни зафиксируется если будет хоть одна ошибка?
|
|
4
VikingKosmo
16.11.15
✎
13:22
|
(3) у тебя там и так всего одна транзакция
|
|
5
Ненавижу 1С
гуру
16.11.15
✎
13:22
|
(3) тут всего ОДНА транзакция
|
|
6
ProgramFiles
16.11.15
✎
13:28
|
(5) т.е. Транзакция для моего набора документа не зафиксируется если будет ошибка ?
|
|
7
ProgramFiles
16.11.15
✎
13:28
|
*документов
|
|
8
NcSteel
16.11.15
✎
13:30
|
(6) В 1С нет вложенных транзакций
|
|
9
ProgramFiles
16.11.15
✎
13:35
|
(8) так если в цикле было?
|
|
10
VikingKosmo
16.11.15
✎
13:37
|
(9) начала и фиксации транзакции в цикле то и не было
|
|
11
NcSteel
16.11.15
✎
13:37
|
(0) У тебя не в цикле, у тебя транзакция за циклом
|
|
12
ProgramFiles
16.11.15
✎
14:00
|
ф процедуре вОбработатьОбъект(Объект, Индекс);
вот ее код
Если Объект.ПометкаУдаления Тогда
Объект.ПометкаУдаления = Ложь;
КонецЕсли;
Если Объект.Метаданные().Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда
Объект.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
впринципе я если ошибка из за пометки удаления то в этой процедуре она исключиться ,и вся транзакция для моего набора зафиксируется,атк понимаю?
|
|
13
ProgramFiles
16.11.15
✎
14:01
|
"она исключиться "-пометка удаления снимается(это имел ввиду)
|
|
14
Enterprise
16.11.15
✎
14:05
|
(12) Если ошибок не будет никаких, то зафиксируется
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший