|
Блокировка данных блокирует неправильно? |
☑ |
0
maxipunchik
03.02.21
✎
06:20
|
Серверная база. Установил блокировку на регистр накопления с указанием отборов по номенклатуре и складу и остановил на точке после блокировки, в другом сеансе попытался провести документ с другой номенклатурой и другим складом, но документ не провелся, а завис, ожидая окончания проводки первого документа. Кто знает в чем может быть проблема, почему не провелся второй документ?
Вот код блокировки:
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиТоваровНаскладах");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ЭлементБлокировки.УстановитьЗначение("Склад", СкладОтправитель);
ЭлементБлокировки.ИсточникДанных = СписокМатериалов ;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Товар", "Номенклатура");
Блокировка.Заблокировать();
|
|
1
ДенисЧ
03.02.21
✎
06:25
|
Значит, не всё заблокировал. Есть ещё что-то
|
|
2
maxipunchik
03.02.21
✎
06:37
|
(1) В каком смысле не всё? Мне больше и не надо. Наоборот идет избыточное блокирование как-будто
|
|
3
maxipunchik
03.02.21
✎
06:44
|
Судя по отладке, во втором документе зависает на строке Блокировка.Заблокировать()
|
|
4
maxipunchik
03.02.21
✎
06:59
|
Да, режим ставил и Исключительный и Разделяемый
|
|
5
maxipunchik
03.02.21
✎
07:07
|
Пока сам себе отвечал, нашел ответ на свой вопрос. Проблема была в том, что вначале процедуры очищал движения запистю:
Движения.ОстаткиТоваровНаскладах.Записать();
|
|
6
maxipunchik
03.02.21
✎
07:30
|
Поторопился, Всё равно блокирует весь регистр
|
|
7
TormozIT
гуру
03.02.21
✎
07:42
|
Зачем гадать, когда можно посмотреть явно что блокируется?
|
|
8
mikecool
03.02.21
✎
08:07
|
(6) какой режим блокировки у регистра и у документа?
|
|
9
maxipunchik
03.02.21
✎
08:10
|
В общем, это всё пробелы в теории и невнимательность. Дело в том, что я открывал уже проведенный документ со складом из первого дока, менял склад и перепроводил. При этом в коде очищались движения, а так как они были по старому складу, документ блокировался. Снял документы с проводок и повторил эксперимент, всё заблокировалось как надо.
|
|