Имя: Пароль:
1C
1С v8
Блокировка при проведении документа
, , ,
0 Бубр
 
07.09.17
16:12
Доброго времени всем.
Имитировал проведение документа чека  с 2х  сеансов
1 в первом сеансе встал в отладку на строке НаборДвижений.ВыполнитьДвижения();
2 во  втором сеансе пытаюсь  продать  такой же товар и ухожу лесом в блокировку.
Режим блокировка Автоматический.
Хочу сделать так, чтобы второй сеанс  был  в состоянии продать товар  без  блокировок.

  Натолкните на мысли куда копать ?

попытался открыть документ  чек с пробитым товаром во  втором сеансе

увис  на этом запросе :

(P1 varbinary(16),@P2 datetime2(3),@P3 datetime2(3),@P4 datetime2(3),@P5 datetime2(3),@P6 datetime2(3),@P7 datetime2(3))



SELECT TOP 21 _Document236_R._Date_Time AS _A1, _Document236_R._Number AS _A2, _Document236_R._Fld6021RRef AS _A3RRef, _Document236_R._Fld6023 AS _A4, _Document236_R._Fld8041RRef AS _A5RRef, _Document236_R._Fld6026 AS _A6, _Document236_R._Fld6019RRef AS _A7RRef, _Document236_R._Fld6024 AS _A8,
_Document236_R._Fld6027RRef AS _A9RRef, _Document236_R._Fld6020RRef AS _A10RRef, _Document236_R._IDRRef AS _A11RRef,
_Document236_R._Marked AS _A12, _Document236_R._Posted AS _A13, _Reference52_rdld4htn._Description AS _A14, _Reference75_rdld4htn._Description AS _A15,
_Reference86_rdld4htn._Description AS _A16
FROM _Document236 _Document236_R WITH(NOLOCK)
LEFT OUTER JOIN _Reference86 _Reference86_rdld4htn WITH(NOLOCK) ON _Document236_R._Fld6020RRef = _Reference86_rdld4htn._IDRRef
LEFT OUTER JOIN _Reference75 _Reference75_rdld4htn WITH(NOLOCK) ON _Document236_R._Fld6027RRef = _Reference75_rdld4htn._IDRRef
LEFT OUTER JOIN _Reference52 _Reference52_rdld4htn WITH(NOLOCK) ON _Document236_R._Fld6021RRef = _Reference52_rdld4htn._IDRRef
WHERE _Document236_R._IDRRef > P1 AND _Document236_R._Date_Time = @P2
AND _Document236_R._Date_Time >= @P3 AND _Document236_R._Date_Time <= @P4 OR _Document236_R._Date_Time > @P5 AND _Document236_R._Date_Time >= @P6 AND _Document236_R._Date_Time <= @P7
ORDER BY _Document236_R._Date_Time, _Document236_R._IDRRef

краткий перевод

SELECT TOP 21 ДокументЧекККМ.Дата,ДокументЧекККМ.Номер,
ДокументЧекККМ.КассаККМ,
ДокументЧекККМ.СуммаДокумента,
ДокументЧекККМ.СтатусЧекаККМ,
ДокументЧекККМ.НомерЧекаККМ,
ДокументЧекККМ.ВидОперации, ДокументЧекККМ.Комментарий из Документ.Чекккм
ЛевоеСоединение Справочник.Склады

ЛевоеСоединение Справочник.Пользователи

ЛевоеСоединение Справочник.Кассыккм

упорядочить по ДокументЧекККМ.Дата, ДокументЧекККМ.Ссылка
1 Господин ПЖ
 
07.09.17
16:16
там NOLOCK везде - точно этот запрос?
2 Бубр
 
07.09.17
16:18
(1) sp_who2 дал результат  ожидания на этом процессе
процесс открыл  вот так
dbcc inputbuffer(59)
3 Бубр
 
07.09.17
16:20
(1) это я попытался открыть  документ уже пробитый  с тем же товаром, который стоит в 1м сеансе на точке останова
4 Господин ПЖ
 
07.09.17
16:24
а версия скуля какая? там read committed snapshot - есть?
5 Бубр
 
07.09.17
16:27
(4) 2008,  везде no lock только
6 Бубр
 
07.09.17
16:29
(4) может я не туда смотрю ?  опыта много со  скулем пока нет
7 Господин ПЖ
 
07.09.17
16:34
а sp_lock что говорит?

inputbuffer просто дает последнюю инструкцию. судя по всему - от какого-то списка... так что твои выводы возможно не верны
8 ptiz
 
07.09.17
16:42
(0) "во  втором сеансе пытаюсь  продать  такой же товар "
По-моему, только так: включать разделение итогов в регистре и переходить на "управляемый" режим.
9 Бубр
 
07.09.17
16:47
(7) посмотрел sp_lock  в нем был  другой SPID   в запросе была вот такая конструкция  WITH(SERIALIZABLE)
10 Господин ПЖ
 
07.09.17
16:48
(9) это уже ближе к истине
11 Бубр
 
07.09.17
16:52
(10) основная таблица регистра ЦеныАТТ