Имя: Пароль:
1C
1С v8
Блокировка данных
,
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) Разделение итогов у данного регистра включено, по-моему в таблицу оборотов должно писаться одновременно без проблем