Имя: Пароль:
1C
1С v8
Блокировки.
0 МойКодУныл
 
27.11.13
15:29
Достаточно часто вылетают блокировки в базе.
Полез разбираться - нашел причину в SQL:
SELECT
CAST(COUNT(T1._RecorderTRef) AS NUMERIC(10))
FROM _AccumRg13485 T1 WITH(SERIALIZABLE, UPDLOCK)

Это получение количества записей в регистре накопления при очистки движений.
Порождает это запрос конструкция
>>Если Движение.Количество() > 0 Тогда

Т.е. платформа. Давно вопрос - поставил регистру режим упр блокировок и сделал блокировку только по регистратору. Не помогло. Запрос в SQL не поменялся, все равно блокируется вся таблица.
Как бороться и почему 1С меня не понимает?) Почему опять пишет WITH(SERIALIZABLE, UPDLOCK), хотя установлена управляемая блокировка?
1 Fragster
 
модератор
27.11.13
15:30
поставь режим управляемый
2 Fragster
 
модератор
27.11.13
15:32
замени на запрос
3 Maxus43
 
27.11.13
15:35
сама конфа поди на автоматических, или документ на автоматических, который двигает
4 Necessitudo
 
27.11.13
15:36
(3) Та конфигурация бы ругалась при попытке такое поставить.
5 Maxus43
 
27.11.13
15:37
(3) если конфа на автоматических то нет, указание управляемых просто бы игнорировалось
6 Maxus43
 
27.11.13
15:37
(5)>(4)
7 х86
 
27.11.13
15:39
(0)ты уверен что запрос вызывается именно при >>Если Движение.Количество() > 0 Тогда   ???
8 МойКодУныл
 
27.11.13
16:09
(7) Да, на 91%).
(2) Тоже так думаю. Может при таком обращении игнорится указание на упр блокировку.
(5) Да сама конфа на управляемых, и есть места, где они работают:).
9 МойКодУныл
 
27.11.13
16:10
Спасибо, буду пробовать.
У меня еше есть подозрение, что код этой процедуры, взятый из тповой дико устарел. Года на полтора так. Поищу в новых.
10 МойКодУныл
 
27.11.13
17:56
Для истории.
(5) Был прав. Конфа оказалась на совместимсти (Автомат и Управляемые). Хотя я был уверен, что вся на управляемых(все переведено). У документа не стоял вид блокировок Управляемый.
11 salih020292
 
27.11.13
18:01
Если автоматические блокировки то всеми блокировками занимается СУБД, на управляемых - менеджер блокировок сервера и кодер должен.

Если поставить управляемый режим в свойствах конфы и оставить все как было можно получить резкий выйгрыш в проиизводительности, но если ничего не делать то все загнется на х.
12 salih020292
 
27.11.13
18:02
(0) переводи конфу в автомат и управ, и начинай переводить на управу.

автомат режим слобоват.

Хотя для начала запросы гавнястые оптимизируй.
13 salih020292
 
27.11.13
18:04
(0) в автомат режиме на sql вид блокировки - записей., как помню уровень изоляции воспроизводимое чтение и сериализибл ( файловый режим по сути )