|
Вопрос по Автоматический И Управляемый режим конфигурации | ☑ | ||
---|---|---|---|---|
0
Очкарик
07.06.13
✎
20:43
|
Есть справочник, в конфе установлен Автоматический режим блокировок.
Есть регистр, Управляемый режим блокировок Есть процедура модуля объекта справочника ПриЗаписи() В ПриЗаписи() осуществляется запись в регистр. Т.к. справочник - это не документ и регистр ему не подчинен, то запись в регистр осуществляется в Автоматическом режиме блокировок. Потому, что конфигурация не знает, что там дальше будет по коду и по умолчанию включает Автоматический? |
|||
1
ChAlex
07.06.13
✎
20:48
|
Ну и в чем собственно вопрос?
|
|||
2
Очкарик
07.06.13
✎
20:54
|
(1) в справочнике в процедуре ПриЗаписи() надо писать
НачатьТранзакцию(Управляемый), чтобы записать в регистр в режиме управляемых блокировок? По умолчанию, система запишет в автоматическом режиме? |
|||
3
Очкарик
07.06.13
✎
21:08
|
ап
|
|||
4
Fragster
гуру
07.06.13
✎
21:11
|
самая верхняя транзакция у тебя в автоматическом режиме -> все вложенные - в автоматическом.
самая верхняя в управляемом -> при попытке вложенной автоматической будет ошибка, все вложенные должны быть в управляемом |
|||
5
Очкарик
07.06.13
✎
21:17
|
(4) а вот тут вопросик интересный...
Если регистр привязан к движениям документа, то да. Так смело можно говорить. А каким образом транзакция ПриЗаписи() справочника относиться к записи в регистр? |
|||
6
Очкарик
07.06.13
✎
21:37
|
+(0)
В каком режиме блокировок осущестляется запись в регистр, если в модуле объекта справочника написано следующее: Процедура ПриЗаписи(Отказ) НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); НЗ = РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей(); НЗ.Прочитать(); ЗАпись = НЗ.Добавить(); ЗАпись.Период = ТекущаяДата(); ЗАпись.Измерение1 = Ссылка; ЗАпись.Ресурс1 = Наименование; НЗ.Записать(); ЗафиксироватьТранзакцию(); КонецПроцедуры |
|||
7
Очкарик
07.06.13
✎
21:39
|
Самое прикольное, что перевожу регистр в Автоматический.
Платформа это хавает и записывает. |
|||
8
Очкарик
07.06.13
✎
21:43
|
пля, БД в файловом режиме. Мать её, ей пофиг на управляемые блокировки, все на автоматических делается.
|
|||
9
Очкарик
07.06.13
✎
21:44
|
никак дома не проверить и не посмотреть
|
|||
10
Очкарик
07.06.13
✎
21:53
|
При работе в режиме управления блокировками "Автоматический и управляемый" следует учитывать две особенности:
· независимо от режима, указанного для данной транзакции, система будет устанавливать соответствующие управляемые блокировки; · режим управления блокировками определяется транзакцией самого «верхнего» уровня. Другими словами, если к моменту начала транзакции была начата другая транзакция, то начинаемая транзакция может быть выполнена только в том в режиме, который установлен для уже выполняющейся транзакции. Вопрос: в ПриЗаписи() в модуле объекта справочника осуществляется запись в регистр. Какая транзакция возникнет к регистру, автоматическая или управляемая? |
|||
11
Очкарик
07.06.13
✎
21:57
|
+(10) вроде ПриЗаписи() справочника не является транзакционной процедурой для регистра. Соответственно, исходя из логики, запись в регистр будет осуществлена исходя из того режима блокировок, который установлен на регистре?
|
|||
12
Очкарик
07.06.13
✎
22:00
|
заипался говорить сам с собой, заплачу 50 $м за аргументированный ответ.
|
|||
13
GROOVY
07.06.13
✎
22:01
|
(6) Нафуя тебе там транзакция?
|
|||
14
Очкарик
07.06.13
✎
22:03
|
Думаю так:
Процедура ПриЗаписи() объекта справочника выполнится в автоматическом режиме блокировок - в части, касающейся записи в справочник. По части, касающейся записи в регистр, будет выполняться транзакция с блокировками, в зависимости от режима блокировок, установленном на регистре. (13) конфигурация такая, от этого никуда не деться |
|||
15
Очкарик
07.06.13
✎
22:04
|
(13) с документом все понятно, если у него регистр подчиненный
|
|||
16
GROOVY
07.06.13
✎
22:05
|
(14) У тебя транзакция записи активна, она управляет всеми вложенными.
|
|||
17
Очкарик
07.06.13
✎
22:05
|
Думаю, что транзация, возникаюшая до ПриЗаписи() объекта справочника, никоим образом не относится к регистру. Так?
|
|||
18
Очкарик
07.06.13
✎
22:07
|
(16) то есть, на SQL БД должна возникнуть ошибка исполнения, если справочник будет в Управляемом режиме, а Регистр в Автоматическом?
|
|||
19
Очкарик
07.06.13
✎
22:07
|
+(18) пробовал смоделировать это на файловой базе - ей пофигу
|
|||
20
GROOVY
07.06.13
✎
22:08
|
(17) нет. Транзакция активна, не важно какая. То что ты в этой транзакции делаешь полностью ей подчинено.
|
|||
21
Очкарик
07.06.13
✎
22:09
|
(20) тогда на (18) можешь ответить?
|
|||
22
GROOVY
07.06.13
✎
22:10
|
(21) проверь, у меня дома тоже нет сервака.
|
|||
23
Очкарик
07.06.13
✎
22:12
|
(22) а можно усеченную SQL версию где скачать?
|
|||
24
Очкарик
07.06.13
✎
22:15
|
(22) то есть, пофигу, привязан регистр к документу как к регистратору или не привязан, в какой режим блокировок у документа стоит в конфигурации, в том режиме блокировок и будет осуществлена запись в регистр?
|
|||
25
Очкарик
07.06.13
✎
22:16
|
+(24) и то же самое со справочником?
|
|||
26
Очкарик
07.06.13
✎
22:21
|
(22) всю жизнь работал либо на полностью автоматическом режиме работы конфигурации либо на полностью управляемом.
Столкнулся с конфигурацией в смешанном режиме и произошел разрыв шаблона с последующим снижением чсв :) |
|||
27
GROOVY
07.06.13
✎
22:23
|
Ты хоть понимаешь что в (6) у тебя бред написан?
|
|||
28
Очкарик
07.06.13
✎
22:25
|
(27) Бред по части НачатьТранзакцию?
|
|||
29
Reaper_1c
07.06.13
✎
22:26
|
(6) Очень куевом.
|
|||
30
Очкарик
07.06.13
✎
22:27
|
(27) НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый) согласно руководству разработчика будет тупо проигнорен системой, в случае, если режим работы конфигурации "Автоматический и управляемый".
Если верить тому, что ПриЗаписи() является транзакцией для записываемого регистра. |
|||
31
Очкарик
07.06.13
✎
22:29
|
+(30)
Вторая особенность заключается в том, что режим управления блокировками, указываемый для объекта метаданных в конфигурации или указываемый при начале транзакции в явном виде (как параметр метода НачатьТранзакцию()), является лишь «желаемым» режимом. |
|||
32
GROOVY
07.06.13
✎
22:30
|
(28) Да. Объясни мне, зачем там транзакция?
|
|||
33
Очкарик
07.06.13
✎
22:30
|
(32) хотел вызвать ошибку исполнения.
|
|||
34
Очкарик
07.06.13
✎
22:32
|
(32) ты на (24) ответь, не игнорь, как платформа 8.2 игнорит НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый) :)
|
|||
35
GROOVY
07.06.13
✎
22:37
|
Тебе все уже ответили в (4).
|
|||
36
Очкарик
07.06.13
✎
22:37
|
пля, с 2000-го года занимаюсь 1С и все больше понимаю, что чем глубже пытаешься вникнуть в механизмы системы - тем больший взрыв мозга наступает.
|
|||
37
Очкарик
07.06.13
✎
22:38
|
(35) завтра проверю на SQL. Файловой БД это утверждение монопенисуально.
|
|||
38
Очкарик
07.06.13
✎
22:39
|
(35) Еще убивает фраза из РР:
независимо от режима, указанного для данной транзакции, система будет устанавливать соответствующие управляемые блокировки; |
|||
39
Очкарик
07.06.13
✎
22:40
|
(35) И еще вот это:
даже если для транзакции используется автоматический режим управления блокировками, система установит дополнительно и соответствующие управляемые блокировки при записи данных в этой транзакции. Из этого следует, что транзакции, исполняющиеся в режиме управляемых блокировок, могут конфликтовать с транзакциями, исполняющимися в режиме автоматического управления блокировками. |
|||
40
Очкарик
07.06.13
✎
22:41
|
+(39) из этой фразы следует, что справочник запишется в автоматическом режиме, а регистр в управляемом. Если соответствующие режимы на них установлены. ТАК?
|
|||
41
Очкарик
07.06.13
✎
22:51
|
+(40) Режим
существующей транзакции Режим начинаемой транзакции Результат Автоматический Автоматический Начинаемая транзакция будет выполнена в автоматическом режиме Автоматический Управляемый Начинаемая транзакция будет выполнена в автоматическом режиме Управляемый Автоматический Будет вызвана исключительная ситуация Управляемый Управляемый Начинаемая транзакция будет выполнена в управляемом режиме |
|||
42
Очкарик
07.06.13
✎
22:54
|
(4) тоже так всю жизнь думал и начинаю думать опять. Спасибо.
|
|||
43
Fragster
гуру
08.06.13
✎
11:26
|
(12) с тебя 50 смартмани за (4)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |