|
Блокировка данных | ☑ | ||
---|---|---|---|---|
0
Bolik1979
13.09.11
✎
17:54
|
Платформа 8.2.14.528, конфигурация УПП 1.2.36.1, база на MS SQL. В свойствах конфигурации включен управляемый режим блокировки. Документ "Учет фактических данных по бюджетам" делает движение в оборотный регистр "Обороты бюджетов". Делаем блокировку при проведении. В обработчике ПриЗаписи регистра накопления ставим точку остановки и в другом сеансе проводим другой документ "Учет фактических данных". Если документ небольшой (1-10 строк) - то проводится без проблем, если же документ большой (20000 строк), то возникает блокировка данных. Почему это зависит от размера документа? И можно ли как-то победить взаимоблокировки?
|
|||
1
Axel2009
13.09.11
✎
17:57
|
в автоматических блокировках нельзя "победить"
|
|||
2
GROOVY
13.09.11
✎
17:59
|
Как блокируем? Версия скуля какая?
|
|||
3
Bolik1979
13.09.11
✎
18:05
|
(1) В свойствах конфигурации стоит управляемый режим.
(2) Документ типовой, вот думаю - надо ли что-то дописывать? Версия SQL - 2008 SP2 |
|||
4
GROOVY
13.09.11
✎
18:07
|
(3) А у документа? А у регистра? Как блокировки то описаны?
|
|||
5
Bolik1979
13.09.11
✎
18:10
|
(4) У документа стоит "Автоматический". У регистра накопления "Автоматический". Если я не ошибаюсь, то в случае установки режима блокировки "Управляемый" в конфигурации режим блокировки объектов игнорируется. Вопрос насчет описания блокировок не понял. Если про объект "ЭлементБлокировки", то в данный момент никак
|
|||
6
Jolly Roger
13.09.11
✎
20:38
|
(0) ну так документы либо пересекаются по измерениям регистра, либо нет...
|
|||
7
Живой Ископаемый
13.09.11
✎
21:01
|
2(6) он имеет в виду, что если для конфы вцелом установлен управляемый, и специально мы ничего не блокируем(не накладываем управляемую блокировку), то таблица целиком не блокируется, блокируются только конкретные записи документа - а они всегда уникальны, потому что имеют каждые своего регистратора... как-то так...
|
|||
8
Jolly Roger
13.09.11
✎
21:15
|
(7) ну дык если не используется разделение итогов, то конфликт возникает на таблице итогов/оборотов...
|
|||
9
Живой Ископаемый
13.09.11
✎
21:38
|
возможно, уж и не помню всех нюансов... наверное нужно повторить
|
|||
10
Bolik1979
13.09.11
✎
23:40
|
(8) Сейчас точно не помню, но вроде ставили разделение итогов
Проблема в том, что почему-то документ из 10 строк не вызывает конфликта блокировок, а с 20 тыс строками вызывает. |
|||
11
Икогнито
14.09.11
✎
00:01
|
(5) тогда то, что в свойствах конфы стоит управляемый режим - не играет никакой роли ни для документа, ни для регистра.
По этому доку и регистру система сама гарантированно за счет избыточных блокировок все контролирует. |
|||
12
Икогнито
14.09.11
✎
00:18
|
+(11) все записи в регистр выполняются в автоматическом режиме.
Можешь поставить на этом доке и регистре "Управляемый" режим и поиграться с блокировками. Если все остальные документы пишущие (читающие) в регистр останутся в автоматическом режиме - то ничего страшного не произойдет. |
|||
13
Икогнито
14.09.11
✎
00:25
|
+(12) вообще, по идее, если это оборотный регистр и в него просто пишутся записи - можно вообще перевести его в управляемый режим и не париться управляемыми блокировками.
Но тогда нужно, чтобы и документ, который пишет в него был в управляемом режиме блокировок. |
|||
14
Икогнито
14.09.11
✎
00:33
|
(0) > Делаем блокировку при проведении.
Если конфа в "Управляемый", а Документ в "Автоматический" - прописывание блокировки при проведении - побоку. Вся транзакция быполняется в Автоматическом режиме, а код блокировки игнорируется. |
|||
15
rellyel
14.09.11
✎
00:45
|
(14) В книге "Переход с 8.0 на 8.1" Белоусов пишет совсем противоположную вещь, что в Управляемом режиме игнорируется режим указанный в свойстве объекта конфигурации. Можно ссылку на источник?
|
|||
16
Икогнито
14.09.11
✎
00:51
|
(15) Ну если может быть, что конфа в "Управляемый", а документ в "Автоматический", то думаю, что "Автоматический" просто игнорируется.
Предполагал, что конфа в режиме "Автоматический и управляемый" |
|||
17
rellyel
14.09.11
✎
00:54
|
в (1) сообщении сказано, что конфигурация в управляемом режиме.
|
|||
18
Икогнито
14.09.11
✎
00:56
|
(17) включен управляемый режим блокировки подходит и под "Автоматический и управляемый"
|
|||
19
Икогнито
14.09.11
✎
00:58
|
(17) Хотел бы я посмотреть на тех отважных парней, которые слепо в УПП врубят "Управляемый" режим.
|
|||
20
Икогнито
14.09.11
✎
01:00
|
+(19) если, конечно, фирма 1С это не предусмотрела в коде той версии УПП, предварительно.
|
|||
21
rellyel
14.09.11
✎
01:00
|
Да это типовая конфа 1С, можно на них глянуть)
|
|||
22
5 Элемент
14.09.11
✎
09:34
|
Автору уже говорили что это не взаимоблокировка?
|
|||
23
5 Элемент
14.09.11
✎
09:35
|
(19) она по умолчанию в этом режиме
|
|||
24
Bolik1979
14.09.11
✎
10:39
|
В свойствах конфигурации стоит только управляемый режим.
(19) В типовой УПП он включен. (22) Может я ошибаюсь в терминах. Почему же документ с малым количеством строк проводится, а с большим нет? Блокировка либо есть, либо нет |
|||
25
5 Элемент
14.09.11
✎
10:49
|
профайлер вам в помощь
|
|||
26
Санта
14.09.11
✎
12:32
|
(24) на уровне СУБД могут происходить свои блокировки
|
|||
27
Живой Ископаемый
14.09.11
✎
12:47
|
+(25) лучше ТЖ
|
|||
28
Икогнито
14.09.11
✎
20:55
|
(24) тебе в (26) ответили. Имхо, как вариант. Копай настройки SQL.
|
|||
29
Икогнито
14.09.11
✎
21:00
|
(24) мне одно не понятно.
Нафига тебе в регистре оборотов при формировании туда записей, накладывать блокировку? (>(0)Делаем блокировку при проведении.) Вообще рекомендуют накладывать блокировки при чтении данных в момент проведения или при обусловленном проведении, когда, например, данные одного регистра должны оставаться неизменными пока делаются записи в другой регистр. |
|||
30
Икогнито
14.09.11
✎
21:07
|
+(29) на основании чего было принято решение, что в момент записи в оборотный регистр, его данными должны оставаться неизменными для других транзакций?
Т.е. путем каких размышлений вы пришли к выводу накладывать на него блокировку? |
|||
31
Bolik1979
14.09.11
✎
21:14
|
(29), (30) - Вот именно - я хочу, чтобы 2 и более документа могли записываться и проводиться одновременно, т.к. результат их проведения не зависит друг от друга. Думал наложить блокировку на область данного регистратора. Но похоже 1С и сама это делает.
Попробую через ТЖ, профайлером SQL пользоваться не умею :-( |
|||
32
Икогнито
14.09.11
✎
21:20
|
(31) убери программную блокировку оборотного регистра - она тебе не нужна. Вот шо я сказать тебе хотел.
|
|||
33
Bolik1979
14.09.11
✎
21:21
|
(32) Нет ее в данный момент, я думал, может программная поможет :-)
|
|||
34
Икогнито
14.09.11
✎
21:22
|
(31) Если ты кодом ничего накладывать на регистр не будешь - одинесина там ничего блокировать не будет. Копай настройки SQL, раз у тебя все равно интервалы ожидания возможности записи возникают.
|
|||
35
Икогнито
14.09.11
✎
21:24
|
+(34) Кстати, а с чего ты взял, что это все у тебя с оборотным регистром связано?
Документ "Учет фактических данных по бюджетам" тока в тот регистр что-ли пишет? Из других мест ничего не читает и блокировки не накладывает? |
|||
36
Bolik1979
14.09.11
✎
21:29
|
(35) Документ делает еще движения в регистр бухгалтерии, но на "опытных образцах" в тот регистр движения не делались. В подписку при записи регистра попадал только оборотный. Чтение из регистров не производится
|
|||
37
Икогнито
14.09.11
✎
21:29
|
(35) можа у тебя такая ситуация: один док с 20000 строк накладывает блокировки на чтение из других источников, а другой док, тупо ждет, пока освободятся источники для чтения.
|
|||
38
Bolik1979
14.09.11
✎
21:30
|
+(36) Попробую завтра на файловой версии, если такого глюка с большим документом не будет, значит нужно копать SQL
|
|||
39
Bolik1979
14.09.11
✎
21:31
|
(37) Данные для заполнения из справочника источников вроде только читаются - как они могут блокироваться?
|
|||
40
Икогнито
14.09.11
✎
21:33
|
(38) Для файловой версии твой режим управляемых блокировок побоку - будет автоматический режим блокировок, причем блокироваться будут таблицы целиком.
Ты че, заработался? |
|||
41
Живой Ископаемый
14.09.11
✎
21:48
|
2(36) Планы обмена есть, а в них узлы?
|
|||
42
Bolik1979
14.09.11
✎
22:22
|
(40) Точно, позабыл :-), да и с блокировками особо не сталкивался )
(410 Есть планы, есть узлы - может быть из-за записи в таблицу регистрации? |
|||
43
Икогнито
14.09.11
✎
22:43
|
(42) Кстати, убери регистр из плана обмена и посмотри.
|
|||
44
Икогнито
14.09.11
✎
22:46
|
(42) хотя врядли.
Записи в Планах обмена не регистрируются. Регистрируется всего-лишь изменение регистратора. |
|||
45
Живой Ископаемый
14.09.11
✎
23:08
|
2(44) хм... если бы так было, то почему мы обязаны добавлять регистр в состав плана обмена?
|
|||
46
Bolik1979
15.09.11
✎
00:04
|
(44) Наборы записей точно регистрируются в плане обмена. Попробую как вариант убрать его из состава плана обмена
|
|||
47
Икогнито
15.09.11
✎
00:06
|
(46) конкретный набор записей в плане обмена не регистрируется.
Записи попадают в файл обмена по регистратору или по основному отбору. |
|||
48
Икогнито
15.09.11
✎
00:16
|
+(47) у тебя в таблице регистрации изменений по регистру оборотов будет лишь одна запись - ключ, содержащий ссылку на регистратор.
|
|||
49
Bolik1979
15.09.11
✎
01:26
|
(47) Точно нет - набор записей регистрируется отдельно. Вполне можно зарегистрировать набор записей без регистрации его регистратора
|
|||
50
Axel2009
15.09.11
✎
09:11
|
так если документ один, то при записи изменяется 1 регистр накопления.
у него есть оборотная табличка в которой собраны обороты по измерениям. изменение записи заблочит все другие транзакции на изменение этой записи.. |
|||
51
Bolik1979
15.09.11
✎
10:45
|
(50) Разделение итогов у данного регистра включено, по-моему в таблицу оборотов должно писаться одновременно без проблем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |