|
|
|
Блокировка записи регистра сведений | ☑ | ||
|---|---|---|---|---|
|
0
Stepa86
24.03.09
✎
15:57
|
Есть регистр сведений и документ,
для каждого документа существует одна и только одна запись регистра, но при изменении этой записи блокируется вся таблица регистра... У меня уже крыша едет: перепробовал подчинение регистратору, запрос с "Для изменения", управляемые блокировки с БлокировкаДанных = Новый БлокировкаДанных; все время или ошибки какие то, или таблица блокируется вся... Где посмотреть, почитать, как правильно настроить, чтоб блокировалась тока запись??? Чую, что туплю... Проверку заблокированности проверяю установкой точки останова в ПриЗаписи модуля регистра, и проведением разных доков из под разных пользователей... |
|||
|
1
Господин ПЖ
24.03.09
✎
15:59
|
элементов сколько в РС? Если мало - скулю покласть на ваши прибамбасы.
ЗЫ надеюсь база на скуле. |
|||
|
2
Stepa86
24.03.09
✎
16:03
|
(1) 6000 пока, база скуль, на файловой все равно всегда вся таблица блокируется... Ощущаются заметные тормоза при проведении, одна из причин - ожидание освобождения таблицы регистра
|
|||
|
3
ptiz
24.03.09
✎
16:20
|
Только что проверил на независимом периодическом РС. Не блокирует всю таблицу. Записывает параллельно.
Пробовал без подчинения регистратору? |
|||
|
4
Stepa86
24.03.09
✎
16:23
|
(3) можно код записи? и в какой момент вызывается
|
|||
|
5
Stepa86
24.03.09
✎
16:25
|
у меня из обработки проведения вызывается функция с кодом:
МенеджерЗаписи = РегистрыСведений.бпСведенияОЗадачах.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Задача = Ссылка; МенеджерЗаписи.Сессия = Сессия; МенеджерЗаписи.ВерсияБП = ВерсияБизнесПроцесса; МенеджерЗаписи.Состояние = Состояние; МенеджерЗаписи.Прочитать(); //заполнение ресурсов МенеджерЗаписи.Записать(Истина); |
|||
|
6
ptiz
24.03.09
✎
16:27
|
Я набором делал. Конфигурация в режиме управляемых блокировок.
Процедура ЗаписатьНабор(ЗонаСборки) НачатьТранзакцию(); Набор = РегистрыСведений.СводныеЗоныСборки.СоздатьНаборЗаписей(); Набор.Отбор.Период.Установить('20090101'); Набор.Отбор.ЗонаСборки.Установить(ЗонаСборки); Запись = Набор.Добавить(); Запись.Период = '20090101'; Запись.ЗонаСборки = ЗонаСборки; Запись.СводнаяЗона = ЗонаСборки; Набор.Записать(); Предупреждение("Запись зоны " + ЗонаСборки, 60); ЗафиксироватьТранзакцию(); КонецПроцедуры |
|||
|
7
ptiz
24.03.09
✎
16:29
|
И через менеджер записи нормально.
|
|||
|
8
Stepa86
24.03.09
✎
16:30
|
(6) если явно не указывать БлокировкаДанных = Новый БлокировкаДанных то конфа работает так же, как в ражиме автоматических блокировок, так?
|
|||
|
9
ptiz
24.03.09
✎
16:31
|
(8) Нет. Блокировки тогда минимальные.
Новый БлокировкаДанных дает дополнительные блокировки (например, чтоб один товар 2 раза не отгрузили) |
|||
|
10
Stepa86
24.03.09
✎
16:43
|
(9) а в доке и в регистра какой режим управления блокировками?
|
|||
|
11
ptiz
24.03.09
✎
16:58
|
(10) Я не в доке пишу. Проверял обработкой, поэтому и сделал в транзакции.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |