|
Управляемые блокировки - невозможно удалить документ | ☑ | ||
---|---|---|---|---|
0
К_Дач
26.02.14
✎
11:10
|
Для обеспечения параллельной работы пользователей перевел конфигурацию в режим работы блокировок: "Автоматический и управляемый".
У документа выставил "управляемый". У регистров, по которым он делает движения - "управляемый". В модулях наборов записей "ЭтотОбъект.БлокироватьДляИзменения = Истина", в процедуре "ПередЗаписью". Во всех РС, где ведущее измерение может быть этим документом - "управляемый". В планах обмена, где регистрируется документ - также "управляемый", в ПВХ, одним словом везде, где есть ссылки на данный документ. Сделал это для избежания ситуации, когда внутри управляемой транзакции может быть вложенная автоматическая. Проведение документа отрабатывает на ура. Одновременно создаются, проводятся, все гуд. А вот интерактивно удалить - не выходит никак. Пометка на удаление нормально отрабатывает, документ помечается на удаление. А вот Shift+Del не работает - "Автоматический режим блокировок недопустим в этой транзакции". Предположил, что я все-таки упустил какую-то ссылку и внутри транзакции управляемой есть вложенная... Создал в базе новый документ, без реквизитов, движений и проч, только тупо код и наименование, выставил режим блокировок "управляемый". Ввожу документ, записываю. Shift+Del - "Автоматический режим блокировок недопустим в этой транзакции". Получается, в режиме конфы "Автоматический и управляемый", при свойстве объекта "управляемый" - его нельзя удалить??? Зачем тогда вообще сделан этот режим.... Релиз платформы 8.2.19.80 Хелп, плз |
|||
1
К_Дач
26.02.14
✎
11:11
|
Удалить через контроль ссылочной целостности тоже нельзя, кстати
|
|||
2
13_Mult
26.02.14
✎
11:16
|
А посмотреть как в типовых устроено?
|
|||
3
Tateossian
26.02.14
✎
11:17
|
(2) В какой типовой управляемые блокировки?
|
|||
4
К_Дач
26.02.14
✎
11:18
|
(2) я делал в соответсвии с рекомендациями http://kb.1c.ru/articleView.jsp?id=30
|
|||
5
13_Mult
26.02.14
✎
11:21
|
тут читал http://infostart.ru/public/144750/
|
|||
6
ptiz
26.02.14
✎
11:23
|
Значит, документ является "ведущим" в измерении какого-нибудь регистра сведений. Например, измерение со свойством "любая ссылка".
У этих РС тоже надо поставить "Управляемый" режим. |
|||
7
13_Mult
26.02.14
✎
11:24
|
(3) у любой
|
|||
8
К_Дач
26.02.14
✎
11:24
|
В типовой УПП, например выставлен режим "управляемый". Если в моей базе сделать так же, то документ нормально удаляется.
Но! Если у конфы этот режим, то ВСЕ транзакции в базе открываются с управляемыми блокировками, а это значит, что мне придется все механизмы перелопачивать. А требуется обеспечить паррралельную работу всего лишь одного документа. (6) ты внимательно читал (0)??? Новый документ, ни в каких РС и вообще нигде на него ссылок нет! Тупо Документ1: код, наименование |
|||
9
К_Дач
26.02.14
✎
11:27
|
(5) при чем тут объект "Блокировка" и как им пользоваться, это не имееет отношения к моему вопросу в данном случае...
|
|||
10
zladenuw
26.02.14
✎
11:30
|
(9) при том. что если у документа упр блокировки. то нужно использовать объект бликировка.
(4) плохо ты читал там есть раздел "Рекомендации по модификации конфигураций при переходе к режиму управляемых блокировок " |
|||
11
ptiz
26.02.14
✎
11:31
|
(8) Ты внимательно читал (6)?
"Например, измерение со свойством "любая ссылка"." - т.е. любой новый документ автоматом при удалении повлечет запрос на очистку этого РС. |
|||
12
ptiz
26.02.14
✎
11:33
|
Поставь "автоматический" режим, удали документ и посмотри в журнале регистрации: какие РС при этом чистились.
|
|||
13
К_Дач
26.02.14
✎
11:33
|
(11) все РС, где есть ведущее измерение с типом "любая ссылка" или "ДокументСсылка" - управляемый режим
|
|||
14
К_Дач
26.02.14
✎
11:35
|
(10) в соответствии с этими рекомендациями и делал. Я блокирую наборы записей регистров в момент проведения, чтения данных нет в этом документе
|
|||
15
Necessitudo
26.02.14
✎
11:47
|
Кстати интересная тема. Сталкивался - но не поборол(
|
|||
16
К_Дач
26.02.14
✎
11:49
|
Я сейчас проверяю внимательно по совету из (12), отпишусь
|
|||
17
Tateossian
26.02.14
✎
11:59
|
(14) Блокируешь наборы объектом БлокировкаДанных?
(7) Ну и что толку, все объекты в автоматическом режиме. Выходит, блокировка неявная создается платформой. Во всей конфе (УПП) глобальный поиск по БлокировкаДанных выдал 7 вхождений. |
|||
18
К_Дач
26.02.14
✎
12:06
|
(17) Блокирую наборы в модулях наборов: ЭтотОбъект.БлокироватьДляИзменения = Истина, "ПередЗаписью"
|
|||
19
Tateossian
26.02.14
✎
12:07
|
(18) Может, в "ПередУдалением" тоже надо явно указывать блокировку?
|
|||
20
К_Дач
26.02.14
✎
12:08
|
(19) нет. мне что-то подсказывает, что (12) прав, просто объектов (РС) много и я мог какой-то один упустить
|
|||
21
Tateossian
26.02.14
✎
12:11
|
(20) А вообще скорость проведения повысилась, в общем, на управляемых блокировках?
|
|||
22
MrStomak
26.02.14
✎
12:12
|
(17) Открою жуткую тайну - когда для конфы стоит управляемый режим, то неважно что там стоит у объектов.
|
|||
23
ptiz
26.02.14
✎
12:13
|
(21) Не зависит от этого скорость. Параллельность работы повышается.
|
|||
24
К_Дач
26.02.14
✎
12:14
|
(20) повысилась, самое главное - теперь можно одновременно проводить документы.
Правда, от дедлока на уровне SQL это все равно не спасает (когда два документа пытаются одинаковый набор измерений записать) |
|||
25
Tateossian
26.02.14
✎
12:15
|
(22) А тогда почему для объектов стоит "автоматический режим" и явно не создается объект БлокировкаДанных в каждой обработке проведения?
|
|||
26
MrStomak
26.02.14
✎
12:17
|
(25) Зачем ставить блокировку данных в каждой обработке проведения?
|
|||
27
Tateossian
26.02.14
✎
12:20
|
(26) Если я правильно понимаю, в управляемом режиме блокировок для объекта блокировки должны устанавливаться программно.
|
|||
28
ptiz
26.02.14
✎
12:20
|
(27) Если они нужны.
|
|||
29
Tateossian
26.02.14
✎
12:23
|
Нет, СУБД тогда сама установит блокировки. И, вероятно, с большим пространством.
|
|||
30
ptiz
26.02.14
✎
12:26
|
(29) Ага, и на все объекты базы сразу :)
|
|||
31
Tateossian
26.02.14
✎
12:28
|
(30) Только в транзакции.
|
|||
32
MrStomak
26.02.14
✎
12:30
|
(29) Это ты выдумываешь так? Платформа всегда ставит блокировку при записи объекта. Естественно, на записываемое пространство. И блокировка, которую ты поставишь до этого, на меньшее пространство, никак не повлияет - свою платформа всегда поставит.
|
|||
33
К_Дач
26.02.14
✎
12:38
|
(30) ты был прав все-таки))) спасибо!!! один подлый регистр сведений с пометкой в наименовании "не использовать" на самом деле очищался при удалении.
Самая сложность при переводе с автоматического режима на управляемый - это внимательно обойти все объекты. Переводишь один документ в управляемый режим - он двигает один регистр, его тоже переводишь. У этого регистра есть и другие регистраторы - их тоже переводишь, у регистраторов есть другие движения - и их тоже и так до конца... Можно этого и не делать, если блокировку ставить не в модуле набора записей с помощью "БлокироватьДляИзменения", а например в обработке проведения с помощью объекта "БлокировкаДанных". Иначе, если документ в автоматической транзакции будет проводиться по регистру, где написано БлокироватьДляИзменения = Истина - вывалится ошибка. (30) спасибо еще раз))) |
|||
34
Tateossian
26.02.14
✎
12:38
|
(32) Да, я стормозил. Тут ты прав. Но это т.н. объектная блокировка. Или я чего-то недогоняю. Специально сейчас провел документ "Поступление товаров и услуг" УПП, а в профайлере поставил фильтр на Lock. У меня он чуть не завис при проведении документа. Короче, их миллион в секунду.
|
|||
35
MrStomak
26.02.14
✎
12:42
|
(32) Это не объектная, а управляемая блокировка.
Lock в профайлере не имеет никакого отношения к управляемым блокировкам. Смотреть из надо в ТЖ по событию TLock. |
|||
36
ptiz
26.02.14
✎
12:43
|
(33) Я бы всё-таки подумал - стоит ли так мучаться. Прописать блокировки в критичных местах обычно не слишком долго, и сразу поставить всю конфу на "управляемый" режим.
|
|||
37
К_Дач
26.02.14
✎
12:46
|
(36) "критичные места" - ты имеешь ввиду там, где во время записи может быть одновременно и чтение данных? например, контроль остатков? какие еще могут быть ситуации, кстати?
|
|||
38
ptiz
26.02.14
✎
12:50
|
(37) "может быть одновременно и чтение данных" - да, управляемые блокировки и нужны для того, чтобы исключить одновременное чтение, когда это не нужно.
Других ситуаций не могу придумать. Прописать их в тех документах, которые вводятся сплошным потоком, и радоваться жизни. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |