Имя: Пароль:
1C
1С v8
Регистр сведений. НаборЗаписей
,
0 Ptols
 
10.02.12
16:48
Подскажите. создаю набор записей, заполняю, но при записи набора, все что было в регистре заменяется на новый набор.


НаборЗаписей = РегистрыСведений.Факт.СоздатьНаборЗаписей();
   
   Для Каждого Стр Из ТаблицаЗагрузки Цикл
       НоваяЗапись = НаборЗаписей.Добавить();
       Для Кол=0 По ТаблицаЗагрузки.Колонки.Количество()-1 Цикл
           ЗначениеКол = ТаблицаЗагрузки.Колонки.Получить(Кол);
           НоваяЗапись[ЗначениеКол.Имя]= Стр[Кол];
       
       КонецЦикла;    
   КонецЦикла;    
   НаборЗаписей.Записать();
В чем фишка? Что то не учел?
1 hhhh
 
10.02.12
16:52
НаборЗаписей.Записать(Ложь);

неужели трудно справку почитать?
2 mikecool
 
10.02.12
16:53
установи отбор
3 DmitryPavlik
 
10.02.12
16:53
НаборЗаписей.Отбор.<имя>.значение = <что отбираем>;
наборзаписей.отбор.<имя>.использование = истина;
наборзаписей.прочитать();

может так?
4 Ptols
 
10.02.12
17:00
Спасибо, буду "копать"
5 Rizhij_Nikitos
 
10.02.12
17:09
Ты просто затирал, старый регистр весь, новым набором, если поставишь как сказал (1), то просто допишешь. Можно пользоваться отбором, если нужно некоторые одинаковые затереть, то есть уже существущие, с каким то одинаковым наименованием.
6 Товарищ Лансер
 
10.02.12
17:23
В свое время так же уперся, но решилось очень быстро. С помощью синтаксис-помощника... Есть такая интереснийшая штука ))))
Вот как раз пример от туда:

Запись= РегистрыСведений.Регистр;
НаборЗаписей = Запись.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");

// тут ставим отбор, что бы не затереть все в регистре

НаборЗаписей .Отбор.Валюта.Установить(Доллар, Истина);
НаборЗаписей .Отбор.Период.Установить(НачалоДня(ТекущаяДата()), Истина);

// тут мы читаем набор (можно сказать открываем регистр)

НаборЗаписей.Прочитать();

// тут, если данных по нашему отбору нет - добавляем новые строки

Если НаборЗаписей.Количество() = 0 Тогда
   НаборЗаписей= НаборКурсов.Добавить();
   НаборЗаписей.Валюта = Доллар;
   НаборЗаписей.Период = ТекущаяДата();
Иначе

// А тут пишем что нам надо, если по фильтру уже есть что-то....

КонецЕсли;

НаборЗаписей.Записать(Ложь);