Имя: Пароль:
1C
1С v8
Регистр сведений и управляемые блокировки
0 Грызлик
 
20.10.16
21:01
Немного непонятно с управляемыми блокировками.

Как правильней сделать, когда их устанавливать

Есть РС непериодический, независимый. Предположим, в нем 500 000 записей. У этого РС есть измерение "ответственный" - это поле уникальное, с ним должен работать только текущий пользователь (при обращении не блокировать весь РС при чтение и записи).

Вопрос 1 . Нужно ли накладывать управляемую блокировку по этому измерению, если я хочу сделать запись в этот РС методом РегистрыСведений."ИмяРегистра".СоздатьНаборЗаписей(); Данный метод будет вызываться в момент записи справочника.
При НабореЗаписей еще устанавливаем отбор. По идее не должно же блокировать весь регистр?

Вопрос 2. Когда я хочу считать данные с этого РС, то по текущему измерению тоже накладываем управляемую блокировку?

Вопрос 3. Если я считал данные, и перед чтение наложил УБ, потом я захотел удалить записи полученные через запрос, то можно и не накладывать блокировку повторно после чтения через запрос? А в Выборка.Следующий() построчно удаляем данные из РС?
1 Fragster
 
гуру
20.10.16
21:05
где-то процентов 90, что тебе вообще можно не накладывать блокировки никакие
2 Грызлик
 
20.10.16
21:06
(1) Почему?
3 Грызлик
 
20.10.16
21:06
(1) Хочется сделать - принцип
4 Dmitrii
 
гуру
20.10.16
21:18
(1) >> где-то процентов 90

Предположу, что 99
5 Грызлик
 
20.10.16
21:25
(4) Можно объяснить - почему?  Откуда такая уверенность у (4) и  (1)
6 Dmitrii
 
гуру
20.10.16
21:29
(3) Если очень хочется - нив чем себе не отказывай и делай.
Только зачем?

Блокировка нужна при обусловленной записи.
То есть когда у тебя есть жесткая зависимость того что ты запишешь от того, что есть в базе сейчас.
Типичный пример - расчет сумм списания при продаже или контроль отрицательных остатков. Когда результат, который ты запишешь в регистр (сумма списания) зависит от текущего состояния твоего регистра. В таком случае ты накладываешь управляемую блокировку перед чтением остатков по списываемому товару, чтобы гарантировать неизменность этих данных в течении всего времени пока ты получаешь остатки, рассчитываешь себестоимость, проверяешь достаточность остатков и до момента пока не запишешь сформированный набор записей.

Если проведение безусловное (не требует предварительного чтения каких-то данных из базы и доп.расчетов), то смысла блокировать регистр нет. Блокировка будет наложена автоматически платформой неявно непосредственно в момент записи по тем значениям измерений, какие есть в записываемом наборе.

С независимым непереиодическим регистром сведений мне трудно представить пример необходимости наложения блокировки.

Ты можешь объяснить для чего она тебе нужна?
7 Dmitrii
 
гуру
20.10.16
21:30
(5) >> почему?

Ответь сначала на вопрос "Зачем?".
Тогда мы сможем придумать "Почему".
8 Грызлик
 
20.10.16
21:37
(6) Примерно понятно. (7) Предположим, в моей базе будут работать 10к+ пользователей. И это минимум. Все они будут добавлять записи в этот РС и удалять. Я боюсь, что в таком режиме у 1с точно что-то не так заблокируется. И хотел это переопределить.
9 H A D G E H O G s
 
20.10.16
21:41
(0) Не парься.
10 DrShad
 
20.10.16
21:41
(8) переходи на САП
11 Грызлик
 
20.10.16
21:45
(9) (6) - убедили.

(10) опыт перехода на сап уже был. 100 пользователей работают в тысячу раз медленнее чем на 1С. Уже пожалели.- но куда деваться. Москва сказала.