|   |   | 
| 
 | Управляемые блокировки. Что-то не выходит. | ☑ | ||
|---|---|---|---|---|
| 0
    
        alexmobile 06.03.17✎ 08:29 | 
        Есть оборотный регистр - рег1.
 Есть документ который пишет в этот регистр свою табличную часть - тч1 В процедуре припроведении добавил код: Движения.рс_Рег1.Записывать = Истина; Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить(); ЭлементБлокировки.Область = "РегистрНакопления.рег1"; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = тч; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Объект", "Объект"); Блокировка.Заблокировать(); При проведении Ставлю точку останова после Блокировка.Заблокировать();, Провожу док1. Останавливаюсь на точке. В параллельной сесии провожу док2. Объекты в табличной части различны. Получаю сообщение: Конфликт блокировок при выполнении транзакции: Microsoft SQL Server Native Client 11.0: Превышено время ожидания запроса на блокировку. HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=33, Severity=10, native=1222, line=1 | |||
| 1
    
        alexmobile 06.03.17✎ 08:32 | 
        У регистра измерений несколько, но блокировку я ставлю только по одному. флаг "Использование в итогах" установлен на всех измерениях. Может в этом загводка?     | |||
| 2
    
        Spieluhr 06.03.17✎ 10:16 | 
        таймаут происходит в СУБД, а не в 1С     | |||
| 3
    
        тарам пам пам 06.03.17✎ 10:40 | 
        Проверь режим управления блокировкой данных на конфигурации и на регистре. Может где-то автоматический стоит?     | |||
| 4
    
        alexmobile 06.03.17✎ 11:08 | 
        (3)управляемый
 (2)и что делать? | |||
| 5
    
        alexmobile 06.03.17✎ 11:09 | 
        (3)на конфе, автоматический и управляемый     | |||
| 6
    
        Windyhead 06.03.17✎ 12:03 | 
        А в параллельной транзакции на этой же блокировке ожидание?     | |||
| 7
    
        alexmobile 06.03.17✎ 12:14 | 
        (6)Как определить?     | |||
| 8
    
        alexmobile 06.03.17✎ 12:17 | 
        Объекты в документах разные     | |||
| 9
    
        Spieluhr 06.03.17✎ 15:20 | 
        (4) Разделение итогов у регистра включено?     | |||
| 10
    
        alexmobile 07.03.17✎ 06:26 | 
        (9)Да     | |||
| 11
    
        alexmobile 07.03.17✎ 07:37 | 
        Второй день бьюсь. Не ставится блокировка. Вроде все просто, но может какой ньюанс есть?     | |||
| 12
    
        alexmobile 07.03.17✎ 08:45 | 
        СУБД блокирует всю таблицу регистра?     | |||
| 13
    
        DmitrO 07.03.17✎ 09:03 | 
        (4)(5) при проведении, транзакция начинается документом, соответственно при таком режиме конфигурации для того чтобы транзакция началась в управляемом режиме, Управляемый должно стоять у документа, а не регистра.     | |||
| 14
    
        alexmobile 07.03.17✎ 09:10 | 
        (13) у документа тоже стоит управляемый     | |||
| 15
    
        DmitrO 07.03.17✎ 09:19 | 
        (14)а Удаление движений как стоит в метаданных документа?     | |||
| 16
    
        alexmobile 07.03.17✎ 09:30 | 
        Удалять автоматически     | |||
| 17
    
        DmitrO 07.03.17✎ 09:31 | 
        (16)ну вот и ответ     | |||
| 18
    
        alexmobile 07.03.17✎ 09:35 | 
        (17) В обработку удаления нужно тоже блокировки ставить, так?     | |||
| 19
    
        DmitrO 07.03.17✎ 09:38 | 
        (18)вообще, не разу не приходилось
 такой вопрос наводит на мысль, что вы не совсем понимаете для чего вы ставите блокировку. Ответьте себе, для чего вообще ее ставить? (ну или можете сюда ответить) | |||
| 20
    
        alexmobile 07.03.17✎ 09:43 | 
        Долго проводится документ. Когда одновременно несколько чел проводят свои доку-ты выходит сообщение о блокировке.     | |||
| 21
    
        DmitrO 07.03.17✎ 09:47 | 
        Это ответ на вопрос для чего может понадобиться переход с автоматических блокировок на управляемые, а я спрашивал не это.
 Я спросил для чего блокировка нужна в принципе, как сущность (любая, автоматическая или управляемая - не важно). | |||
| 22
    
        DmitrO 07.03.17✎ 10:01 | 
        Ну тогда я отвечу. Любая блокировка (автоматическая, управляемая, по чтению или исключительная) ставится для того чтобы иметь возможность ПРОЧИТАТЬ данные так, чтобы они какое-то время не изменялись в базе.
 Если после установки блокировки данные вы читать не собираетесь (а отмене проведения - это наверняка так), то и ставить блокировку не зачем. А бывает что и при самом проведении тоже не читаем, значит тоже не нужно. | |||
| 23
    
        Windyhead 07.03.17✎ 11:06 | 
        (20) Про разделение итогов читал?
 Если в проведении нет проверки остатков, то блокировки тут уж точно не нужны, а для повышения параллельности проверь у регистров флажок разделения итогов. Задумайся над тем что в (22) написано. Ну и заодно прочитай про "Удалять автоматически при отмене проведения" тоже может добавить скорости. | |||
| 24
    
        alexmobile 07.03.17✎ 13:48 | 
        Ок. Спасибо     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |