Имя: Пароль:
1C
1С v8
Конфликт блокировок
,
0 ejikbeznojek
 
30.04.14
15:11
Добрый день.
Имеется проблема в виде конфликта блокировок.
При создании документа создаётся запись в регистр сведений.
Документы создаются очень часто и в большом количестве.

НаборЗаписей = РегистрыСведений.ИнформацияШКЛН.СоздатьНаборЗаписей();                     НаборЗаписей.Отбор.ШК.Значение = ШКЛистаНабора;                                          НаборЗаписей.Отбор.ШКЛистаНабора.Значение= ШКЛистаНабора;                     НаборЗаписей.Отбор.ШКЛистаНабора.Использование = Истина;                     НаборЗаписей.Отбор.ШК.Использование = Истина;
НаборЗаписей.Очистить();
Запись = НаборЗаписей.Добавить();
Запись.ШК = ШКЛистаНабора;
Запись.ШКЛистаНабора = ШКЛистаНабора;
Запись.НомерЛН = Номер;
Запись.ВидНакладной = ДокОснование.Метаданные().Синоним;
Запись.НомерНакладной = ДокОснование.Номер;
Запись.Количество = товары.Итог("Количество");
Запись.ГруппыТоваров = ГруппыТоваров;
Запись.Подразделение = ПараметрыСеанса.ЭтотУзел.Подразделение;
Запись.КоличествоКоробок = 1;
запись.НомерКоробкиЛН = 1;
Запись.НомерКоробки = 1;
НаборЗаписей.Записать();

Проблема даже не в том, что происходит блокировка транзакций.
А в том, что 1С при этом сразу закрывается.
Даже если ставить попытку, то исключение не отрабатывает, а сразу закрывается 1С.
1 ДенисЧ
 
30.04.14
15:12
Переводи на управляемые блокировки
2 vicof
 
30.04.14
15:13
(1) С языка снял
3 Maxus43
 
30.04.14
15:13
лишнее то убери всё, Очистить() напрмер, и сначала отбор ставь, а потом набор заполняй
Отбор.ШК.Установить(значение)

короче причеши код, а то смотреть тошно)
4 su_mai
 
30.04.14
15:14
Включи технологический журнал и посмотри что 1С перед закрытием напишет.
5 ptiz
 
30.04.14
15:21
(0) Так блокировка или закрывается 1С?
6 ejikbeznojek
 
30.04.14
15:24
1C полностью закрывается
7 vi0
 
30.04.14
15:25
(6) а почему решил, что в блокировках дело?
8 su_mai
 
30.04.14
15:25
(6) Просто она очень устала, возможно от тебя :)
9 ejikbeznojek
 
30.04.14
15:26
Если бы от меня....
У целого складского комплекса так))
10 ejikbeznojek
 
30.04.14
15:27
Закрывается именно на этой строчке
НаборЗаписей.Записать();
11 Господин ПЖ
 
30.04.14
15:27
>Запись.НомерНакладной = ДокОснование.Номер

НомерНакладной надеюсь не измерение...
12 Господин ПЖ
 
30.04.14
15:28
тех. журнал смотрел? ТиИ делал?
13 ejikbeznojek
 
30.04.14
15:36
(11) Реквизит.
(12) ТиИ делал. В тех журнале не вижу записей, связанных с этим регистром или же с этими документами
14 ptiz
 
30.04.14
15:39
Отладчиком пойдись через F11 на Набор.Записать() и дальнейший код посмотри - не сваливается ли в рекурсию.