![]() |
![]() |
![]() |
|
Переход на управляемые блокировки | ☑ | ||
---|---|---|---|---|
0
kisskiss
27.02.13
✎
13:58
|
У всей конфигурации стоит режим управления блокировками - Управляемый. Конфигурация на основе Бухгалтерии, на 50% дописанная.
Самописный документ пишет проводки в самописный регистр(Управленческий), аналогичный Хозрасчетному. Каждым документом пишется от 10 до 30 тыс проводок. Используется новый подход к проведению документа - запись движений - записывать выбранные, удалять движения при отмене проведения, привилегированный режим при проведении и отмене и т.д. В регистре Управленческий стоит галка "Разрешить разделение итогов". В ОбработкеПроведения документа никаких проверок не выполняется, просто делается запись в регистр. Объект БлокировкаДанных в Обработке проведения нигде не создается намеренно, ведь согласно описанию Управляемого режима блокировок, если разработчик не указал явно какие данные блокировать, то платформа ничего не заблокирует, а значит блокировок не возникнет. Означает ли это, что мой документ не вызывает никаких блокировок? То есть при проведении 10 документов разными пользователями по одной организации блокировок не возникнет? |
|||
1
krbIso
27.02.13
✎
14:07
|
при модификации данных блокировки ставятся менеджером блокировок 1с самостоятельно, так что блокировки будут.
Документы будут нормально проводится если нет контроля остатков. |
|||
2
kisskiss
27.02.13
✎
14:16
|
(1) ты имеешь в виду, что нет контроля остатков в ОбработкеПроведения ?
>>при модификации данных блокировки ставятся менеджером блокировок 1с самостоятельно, так что блокировки будут а как узнать, что действительно нет никаких блокировок? Например как нить в SQLе ? А при распроведении тоже блокировок не возникнет? |
|||
3
andreymongol82
27.02.13
✎
14:21
|
Запускаешь 2 1С-нины одну в режиме отладки, ставишь точку останова проводишь/распроводишь, в другой тоже проводишь/распроводишь.
Распроведение - тоже блокирует - это ведь тоже изменение данных |
|||
4
kisskiss
27.02.13
✎
14:22
|
(3) ну так по идее у меня реализован новый механизм проведения, который не вызывает блокировок.
Как определить какие записи в действительности будут заблокированы при отмене проведения? |
|||
5
alkov
27.02.13
✎
14:26
|
Новый механизм проведения, который не вызывает блокировок? Уверены?
|
|||
6
Necessitudo
27.02.13
✎
14:26
|
Блокировки накладываются не только объектом "БлокировкаДанных". Есть способ работы с управляемыми блокировками гораздо более простой.
|
|||
7
Necessitudo
27.02.13
✎
14:28
|
Набор = Движения.Продажи.СоздатьНаборЗаписей();
Набор.БлокироватьДляИзменения = Истина; |
|||
8
Necessitudo
27.02.13
✎
14:29
|
Этот способ хорош для нового механизма контроля остатков, когда ты сначала данные в регистр пишешь, а потом контроллируешь отрицательные остатки)
|
|||
9
andreymongol82
27.02.13
✎
14:30
|
(4) Нет такого механизма. Блокировка в любом случае будет возникать, если не на уровне 1С, то на уровне SQL
|
|||
10
kisskiss
27.02.13
✎
14:30
|
(5) Так написано в 1С-овской методичке по курсу "Работа с данными". Курс ведет Гончаров. Стр 18 "В Управляемом режиме любое обращение к данным из транзакций не приводит к наложению блокировок. Состав ресурсов, подлежащих блокированию, вид блокировок определяется разработчиком прикладного решения в явном виде" . Я в явном виде ничего не определяла - значит по идее блокировок быть не должно ?
|
|||
11
krbIso
27.02.13
✎
14:31
|
(2)
Да. Блокировки при модификации данных есть всегда. Как узнать что нет избыточных блокировок см в(3) проводишь из 2 сессий документы с непересекающимеся данными. |
|||
12
kisskiss
27.02.13
✎
14:33
|
(11) Тогда получается даже в управляемом режиме без явного определения блокируемых данных - блокировки все равно будут возникать? :( печалька
|
|||
13
andreymongol82
27.02.13
✎
14:33
|
(10) Угу.
Вот это еще надо почитать http://1cexpo.ru/informacziya/27-blokirovki-dannyx-v-1spredpriyatii-8.html |
|||
14
kisskiss
27.02.13
✎
14:43
|
(13) Читала..
Мне не совсем ясно следующее...у меня нет конкурентного ресурса, без блокировки у меня не исказятся никакие данные, я не делаю никаких проверок, просто идет запись - поэтому мне не нужна блокировка. Поэтому я не делаю явной блокировки данных регистра. А блокировки все равно возникнут? В Данном случае если платформа не делает блокировок, то кто тогда их делает? СУБД ? Как тогда определить, какие данные СУБД решила заблокировать? |
|||
15
andreymongol82
27.02.13
✎
14:54
|
(14) Черный ящик. Например, у меня при записи пустого набора записей регистра с отбором по регистратору (аналог распроведения) блокировалась вся табличка в SQL, режимы стояли управляемый. (Хотя мысли есть почему, но проверить или опровергнуть было некогда)
Вообще стоит внимательней прочитать про явные и неявные транзакции. Особенно про неявные. |
|||
16
andreymongol82
27.02.13
✎
15:06
|
А вот про SQL, кстати
http://infostart.ru/public/91880/ |
|||
17
kisskiss
27.02.13
✎
15:09
|
(7)(8)(9) да, я знаю про этот метод, но мне не нужно блокировать данные явно или неявно, так как у меня мой регистр не является конкурентным ресурсом - без блокировки у меня не исказятся никакие данные
|
|||
18
kisskiss
27.02.13
✎
15:15
|
(16) отличная статья, полностью согласна
|
|||
19
krbIso
27.02.13
✎
15:19
|
(17) вам может и не нужно, но такова жизнь. Модификация данных=транзакция=блокировка.
Если ваш регистр не является конкурентным ресурсом то в чем собственно проблема? |
|||
20
andreymongol82
27.02.13
✎
15:19
|
В общем совет - много экспериментируйте, пробуйте, дерзайте :)
|
|||
21
kisskiss
27.02.13
✎
15:20
|
(19) проблема была в том, что явных блокировок нигде не ставилось, а конфликт блокировок все равно возникал
|
|||
22
kisskiss
27.02.13
✎
15:21
|
(20) аха, чем собственно и занимаюсь :)
|
|||
23
krbIso
27.02.13
✎
15:33
|
(21) Явно вы не ставите, но при модификации данных неявно ставятся блокировка всегда.
Ожидание на блокировке возникает при соблюдении всех 3 условий: -блокировки установлены разными сессиями -блокируются один и тот же ресурс -блокировка имеет несовместимый тип. |
|||
24
JLeys
27.02.13
✎
15:45
|
также возможна эскалация блокировок
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |