Имя: Пароль:
1C
1С v8
Добавить запись в регистр подчиненный регистратору
0 GOshaSaveiko
 
18.06.12
12:24
Добрый день. пытаюсь зарегистрировать отправку заказа в регистр сведений подчиненный регистратору
Процедура ЗарегистрироватьОтправкуЗаказа(Заказ) Экспорт
   НаборЗаписей = РегистрыСведений.емОбмен.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Заказ);
   НаборЗаписей.Прочитать();
   Если НаборЗаписей.Количество() = 0 Тогда
       НоваяЗапись = НаборЗаписей.Добавить();
       НоваяЗапись.ДатаИзменения = Заказ.Дата;
       НоваяЗапись.ДатаОтправки  = ТекущаяДата();
       НаборЗаписей.Записать();
   Иначе
       Для Каждого Запись Из НаборЗаписей Цикл
           Запись.ДатаОтправки = ТекущаяДата();
       КонецЦикла;
       НаборЗаписей.Записать();
   КонецЕсли;
КонецПроцедуры

Делаю, кажется, все как в учебнике, но все равно ругается, что такая запись уже существует. Смотрел отладчиком - получается, что Регистратор на момент записи пуст. Или я чего-то недопонял. Помогите, пожалуйста, а то совсем запутался.
Заказ в функцию приходит, запись с этим заказом в регистре отсутствует.
1 Cube
 
18.06.12
12:26
Процедура ЗарегистрироватьОтправкуЗаказа(Заказ) Экспорт
   НаборЗаписей = РегистрыСведений.емОбмен.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Заказ);
   НаборЗаписей.Прочитать();
   Если НаборЗаписей.Количество() = 0 Тогда
       НоваяЗапись = НаборЗаписей.Добавить();
       НоваяЗапись.Регистратор = Заказ;
       НоваяЗапись.ДатаИзменения = Заказ.Дата;
       НоваяЗапись.ДатаОтправки  = ТекущаяДата();
       НаборЗаписей.Записать();
   Иначе
        Для Каждого Запись Из НаборЗаписей Цикл
           Запись.ДатаОтправки = ТекущаяДата();
       КонецЦикла;
       НаборЗаписей.Записать();
   КонецЕсли;
КонецПроцедуры;
2 Asmody
 
18.06.12
12:27
не увидел НаборЗаписей.Регистратор = ...
3 ptiz
 
18.06.12
12:28
вставь
Сообщить(ТипЗнч(Заказ));
перед НаборЗаписей.Отбор.Регистратор.Установить(Заказ);
4 GOshaSaveiko
 
18.06.12
12:28
Странно. А почему в примерах что я видел регистратор явно не указывается.?