Имя: Пароль:
1C
1С v8
Ошибка при записи набора записей РС
,
0 selenat
 
04.07.13
15:14
Не пойму. То ли платформу глючит, то ли у меня тупняк на ровном месте.
Итак. Есть РС, подчинен регистратору. Пишу код:

НаборЗаписей = РегистрыСведений.ДолгиКлиентов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
Для Каждого СтрокаТЗ из ТЗ_КорректировокДолга Цикл
   Движение = НаборЗаписей.Добавить();
   Движение.Регистратор = Ссылка;
   Движение.Период = Дата;
...//заполнение всех остальных полей
КонецЦикла;    
НаборЗаписей.Записать(Истина);

Код работает в большинстве случаев. Но в некоторых выдает ошибку: "Ошибка при вызове метода контекста (Записать): запись с такими ключевыми полями существует!" Понимаю, что видимо в наборе записей есть строки с одинаковыми значениями измерений. Смотрю отладчиком. Нет таких. Вообще в наборе записей только одна строка. Копаясь дальше обнаруживаю, что строки с такими же значениями измерений естть, но сделанные другим регистратором. Что за тупняк? Отбор ведь по регистратору стоИт. Регистраторы разные. Событие ПередЗаписью набора записей регистра проходится нормально, а до события ПриЗаписи не доходит, выкидывает эту ошибку. Как это понимать и как бороться? Платформа 8.1.14.72.
1 selenat
 
04.07.13
15:23
Пока меня не было на этом форуме, все одинеснеги здесь вымерли?
2 George Wheels
 
04.07.13
15:27
Попробуй сначала

НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
3 selenat
 
04.07.13
15:30
(2) попробовал. Та же фигня. Что характерно, та же ошибка выскакивает и в том стлучае, если движения делаю не через
РегистрыСведений.ДолгиКлиентов.СоздатьНаборЗаписей(), а через коллекцию движений. Без разницы.
4 EugeniaK
 
04.07.13
15:31
(0) А разве в РС могут быть записи с одинаковыми измерениями, датой, но по разным регистраторам?
И какое значение в этом случае должен вернуть срез последних?
5 selenat
 
04.07.13
15:34
(4) А что мешает? Ключевым служебным измерением является регистратор. Знчения этого измерения разные. Срез последних по идее должен отработать по позиции документа, проблем быть не должно даже при одинаковых значениях периода.
6 EugeniaK
 
04.07.13
15:34
Периодичность стоит по позиции регистратора?
7 Жан Пердежон
 
04.07.13
15:34
(5) не является
8 Жан Пердежон
 
04.07.13
15:34
(6) вангую: непериодический
9 selenat
 
04.07.13
15:34
(6) да.
10 Лефмихалыч
 
04.07.13
15:36
платформа глючит, однозначно
11 Mitriy
 
04.07.13
15:36
регистратор у РС не является измерением...
12 selenat
 
04.07.13
15:37
(8) Позор на мою седую голову. Периодичность стоит в пределах секунды, а не по позиции регистратора. Поменял периодичность, все заработало. Всем спасибо!
13 selenat
 
04.07.13
15:40
(11) не полезу сейчас в документацию, чтобы выяснять, является ли формально регистратор измерением. По сути у РС подчиненного регистратору является.
14 Жан Пердежон
 
04.07.13
16:03
(14) то есть, твой же пример тебя не убедил?)))
15 selenat
 
04.07.13
16:06
(14) ок, ты прав.