Имя: Пароль:
1C
1С v8
Непредсказуемое поведение регистра сведений.
0 GOshaSaveiko
 
25.06.13
10:18
Всем здравствуйте. В 8.1 возникает какая-то ерунда с регистром сведений. такое ощущение, что при добавлении или изменении большого количества записей он не успевает записывать запись и блокируется.
Вот примерный код:
Процедура ЗарегистрироватьОтправкуЗаказа(Заказ) Экспорт
   НаборЗаписей = РегистрыСведений.емОбменСАриадной.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Заказ);
   НаборЗаписей.Прочитать();
   Если НаборЗаписей.Количество() = 0 Тогда
       НоваяЗапись = НаборЗаписей.Добавить();
       НоваяЗапись.Регистратор = Заказ;
       НоваяЗапись.ДатаИзменения = Заказ.Дата;
       НоваяЗапись.ДатаОтправки  = ТекущаяДата();
       НаборЗаписей.Записать();
   Иначе
       Для Каждого Запись Из НаборЗаписей Цикл
           Запись.ДатаОтправки = ТекущаяДата();
       КонецЦикла;
       Попытка
           НаборЗаписей.Записать();
       Исключение
           Сообщить("НЕ МОГУ ЗАПИСАТЬ ИЗМЕНЕНИЕ! "+Заказ+". По причине:"+ОписаниеОшибки());
       КонецПопытки;
   КонецЕсли;
КонецПроцедуры


Код будет сыпать такими ошибками:
НЕ МОГУ ЗАПИСАТЬ ИЗМЕНЕНИЕ! Заказ покупателя 19226ВК  к от 06.12.2012 9:28:01. По причине:{ОбщийМодуль.Вашамебель(316)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : 25.06.2013 9:04:27 : 24.06.2013 16:14:25 (Регистр сведений: _Обмен с ариадной; Номер строки: 2)
При этом проверяю уникальность существующей строки - она одна... При этом при каждом запуске набор невозможных записей будет разный. Т.е. его можно перезапустить, и уже не отработают другие записи. Куда смотреть, куда податься - ткните носом, пожалуйста.
1 Godofsin
 
25.06.13
10:22
"ДатаОтправки" - измерение?
2 IamAlexy
 
25.06.13
10:23
конечно 1С не успевает записывать..
1С же тормоз..
3 GOshaSaveiko
 
25.06.13
10:23
Да. ДатаОтправки, ДатаИзменения - измерения. Регистр непериодический подчинен регистратору.
4 GOshaSaveiko
 
25.06.13
10:25
(2) - имелось в виду, что я не вижу закономерности невозможности записи. И каждый раз разный набор. Что мне еще предположить?
5 GOshaSaveiko
 
25.06.13
10:27
(1) - я так понимаю проверяется уникальность комбинации Регистратор-ДатаОтправки-ДатаИзменения или я не прав? И именно в этом есть косяк, что встречаются одинаковые комбинации измерений без учета регистратора?
6 skunk
 
25.06.13
10:29
ты нашел запись с установленной датой 21.06.2013 ... после чего меняешь дату на 25.06.2013 ... а запись с такими ключевыми полями уже имеется ... соответсвенно тебя посылает накуй ... регистр на записывается ... записб остается в единственном экземпляре
7 Allexe
 
25.06.13
10:32
(6) +100 Логично ты ищешь записи с одной датой таких записей нет, а записи с текущей датой есть.
8 ssh2006
 
25.06.13
10:33
(0) периодичность регистра какая?
9 GOshaSaveiko
 
25.06.13
10:36
(6) "а запись с такими ключевыми полями уже имеется" - вы имели в виду, что имеется другая запись с другим регистратором , но той же датой отправки и я иду лесом? А при повторном запуске меняется дата отправки и он нормально отрабатывает для проблемной записи?
10 GOshaSaveiko
 
25.06.13
10:37
(8), Цы (3): "Регистр непериодический подчинен регистратору."
11 Лефмихалыч
 
25.06.13
10:39
(0) автор ,зачем ты ешь обмен с Ариадной? это вредно для пищеварения

по сабжу - есть запись с такой комбинацией измерений и всё тут. Скорость и блокировки ни при чем
12 GOshaSaveiko
 
25.06.13
10:41
(11) Лефмихалыч, получается регистратор не играет роли в определении уникальности записи?
13 ssh2006
 
25.06.13
10:42
(10) тогда уникальность проверяется без учета периода (регистратора). Кривой регистр у тебя.
14 Godofsin
 
25.06.13
10:44
(12) Регистратор является не Измерением, по которому идет контроль уникальности, а реквизитом
15 Godofsin
 
25.06.13
10:45
Добавь измерени - "ДокументДвижения"
16 skunk
 
25.06.13
10:46
(12)играет ... значит у тебя в одном и том-же документе формируется две записи с одним регистратором
17 ssh2006
 
25.06.13
10:48
(16) если регистр непериодический, то пофиг на регистратор. Важна только уникальность комбинации измерений.
18 GOshaSaveiko
 
25.06.13
10:54
(15) Да. Уже добавил еще одно измерение. Сейчас перекину регистратора в измерение, и будет мне щассе. Большое спасибо.
19 GOshaSaveiko
 
25.06.13
10:56
ОК. Всем спасибо! Я сейчас сделаю еще одно измерение, перекину регистратора в него. Добавлю по строчке в процедуры записи/изменения и все станет ок. Будет смотреть уникальность комбинации НовоеИзмерение-ДатаОтправки-ДатаИзменения