Имя: Пароль:
1C
1С v8
Правильно ли я пользуюсь управляемыми блокировками
, ,
0 luch
 
16.12.11
14:59
Не до конца понял систему работы управляемых блокировок поэтому обращаюсь за консультацией, вдруг кто поможет :)

вопрос в следующем есть Заявка, на резервирование уходит много времени из за возникающих блокировок (одновременно может делатся 4-5 заявки)

нашол запрос, который выполняется при резервировании и пробую перевести его на управляемые блокировки (запрос работает с регистрами накопления: ТоварыНаСкладах, ТоварыВРознице, ТоварыВРезервеНаСкладах, ТоварыКПередачеСоСкладов) для этого перед выполнением запроса пишу следующее

БлокировкаДанных = Новый БлокировкаДанных;
       
       ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ТоварыНаСкладах");
       ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
       ЭлементБлокировки.ИсточникДанных                = СтруктураПараметров.ДокументСсылка.Товары;
       
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура"                ,"Номенклатура");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("ХарактеристикаНоменклатуры","ХарактеристикаНоменклатуры");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад"                          ,"Склад");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("СерияНоменклатуры"              ,"СерияНоменклатуры");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Качество"                      ,"Качество");
       ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ТоварыВРознице");
       ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
       ЭлементБлокировки.ИсточникДанных                = СтруктураПараметров.ДокументСсылка.Товары;
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура"                ,"Номенклатура");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("ХарактеристикаНоменклатуры","ХарактеристикаНоменклатуры");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад"                          ,"Склад");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("СерияНоменклатуры"              ,"СерияНоменклатуры");
 
       ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ТоварыВРезервеНаСкладах");
       ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
       ЭлементБлокировки.ИсточникДанных                = СтруктураПараметров.ДокументСсылка.Товары;
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура"                ,"Номенклатура");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("ХарактеристикаНоменклатуры","ХарактеристикаНоменклатуры");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад"                          ,"Склад");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("СерияНоменклатуры"              ,"СерияНоменклатуры");

       ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрНакопления.ТоварыКПередачеСоСкладов");
       ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
       ЭлементБлокировки.ИсточникДанных                = СтруктураПараметров.ДокументСсылка.Товары;
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура"                ,"Номенклатура");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("ХарактеристикаНоменклатуры","ХарактеристикаНоменклатуры");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад"                          ,"Склад");
       ЭлементБлокировки.ИспользоватьИзИсточникаДанных("СерияНоменклатуры"              ,"СерияНоменклатуры");

ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
       БлокировкаДанных.Заблокировать();
   

И далее выполняю сам запрос, верным ли я путём иду  :)
   
   Запрос.Текст = ТекстЗапроса;
   РезультатЗапроса = Запрос.Выполнить();
1 luch
 
19.12.11
04:56
База данных находится на Postgris
2 Zhuri
 
19.12.11
05:48
(1) а разве там можно блокировать записи?
3 luch
 
19.12.11
07:37
по умолчанию блокируются таблицы, если использовать принудительные блокировки, тогда можно блокировать записи, покрайней мере так написано в документации
4 dimaldinho
 
19.12.11
09:00
(0) Режимы управления блокировкой для конфигурации в целом, для документа, для регистров, в которые он пишет - ?
5 5 Элемент
 
19.12.11
10:09
Независимо от того, куда вы едете — это в гору и против ветра!