Здравствуйте. Подскажите, пожалуйста, как записывать в регистр правильнее не по одной строке из табличной части, а сразу набором

```1c
    Счетчик = 0;

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

    НаборЗаписей.Отбор.Номенклатура.Установить(Строка.Номенклатура);
    НаборЗаписей.Отбор.Производитель.Установить(Строка.Производитель);
    НаборЗаписей.Отбор.Ссылка.Установить(Строка.Ссылка);
    НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());

    НовЗапись = НаборЗаписей.Добавить();

    НовЗапись.Период = ТекущаяДата();
    НовЗапись.Номенклатура = Строка.Номенклатура;
    НовЗапись.Производитель = Строка.Производитель;
    НовЗапись.Ссылка = Строка.Ссылка;
    НовЗапись.Цена = Строка.Цена;
    НовЗапись.Количество_кликов = Строка.Количество_кликов;

    НаборЗаписей.Записать(Истина);
    счетчик = счетчик + 1;
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    КонецЦикла;

    Сообщить("Записано: " + счетчик);
```
---
НаборЗаписей = РегистрыСведений.ЦеныЯндексМаркета.СоздатьНаборЗаписей();

   НаборЗаписей.Отбор.Номенклатура.Установить(Строка.Номенклатура);
   НаборЗаписей.Отбор.Производитель.Установить(Строка.Производитель);
   НаборЗаписей.Отбор.Ссылка.Установить(Строка.Ссылка);
   НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());
Это нужно делать за пределами цикла.
---
Согласен с (1) - набор создавать и записывать вне цикла. Например,

```1c
    Попытка
    НаборЗаписей = РегистрыСведений.ЦеныЯндексМаркета.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Ссылка.Установить(Строка.Ссылка);
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
    Счетчик = 0;
    Для Каждого Строка ИЗ Объект.ЦеныЯндекс Цикл
    НовЗапись = НаборЗаписей.Добавить();
    НовЗапись.Период = ТекущаяДата();
    НовЗапись.Номенклатура = Строка.Номенклатура;
    НовЗапись.Производитель = Строка.Производитель;
    НовЗапись.Ссылка = Строка.Ссылка;
    НовЗапись.Цена = Строка.Цена;
    НовЗапись.Количество_кликов = Строка.Количество_кликов;
    счетчик = счетчик + 1;
    КонецЦикла;
    НаборЗаписей.Записать(Истина);
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
```
---
НаборЗаписей = РегистрыСведений.ЦеныЯндексМаркета.СоздатьНаборЗаписей();

   НаборЗаписей.Отбор.Номенклатура.Установить(Строка.Номенклатура);
   НаборЗаписей.Отбор.Производитель.Установить(Строка.Производитель);
   НаборЗаписей.Отбор.Ссылка.Установить(Строка.Ссылка);
   НаборЗаписей.Отбор.Период.Установить(ТекущаяДата());
Это нужно делать за пределами цикла.
---
Если до записи в регистр он был пуст или хотите полностью обновить содержимое регистра, просто создайте набор записей, заполните его и запишите.
Если записи уже имеются, то только так, как вы делаете, либо построчно, с помощью МенеджераЗаписи().
---
Согласен с (1) - набор создавать и записывать вне цикла. Например,

```1c
    Попытка
    НаборЗаписей = РегистрыСведений.ЦеныЯндексМаркета.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Ссылка.Установить(Строка.Ссылка);
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
    Счетчик = 0;
    Для Каждого Строка ИЗ Объект.ЦеныЯндекс Цикл
    НовЗапись = НаборЗаписей.Добавить();
    НовЗапись.Период = ТекущаяДата();
    НовЗапись.Номенклатура = Строка.Номенклатура;
    НовЗапись.Производитель = Строка.Производитель;
    НовЗапись.Ссылка = Строка.Ссылка;
    НовЗапись.Цена = Строка.Цена;
    НовЗапись.Количество_кликов = Строка.Количество_кликов;
    счетчик = счетчик + 1;
    КонецЦикла;
    НаборЗаписей.Записать(Истина);
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
```
---
Правильное решение, но счетчик здесь зачем?
---
В оригинале в конце

```1c
    Сообщить("Записано: " + счетчик);
```
---
НаборЗаписей.Прочитать();
   НаборЗаписей.Очистить();
А в чем смысл сначала прочитать, а потом очистить?
Вы считаете, что при создании набора записей набор создается не достаточно пустой?=)
---
Если не будет Прочитать(), то набор будет пустой. Но это не значит, что в регистре нет записей. Добавим в этот пустой набор записи, запишем. Получим в регистре не известно что.
---
Чушь.
Прочитали набор, очистили - получился точно такой же пустой набор.
Только дополнительно выполнили запрос к базе, прочитали данные, которые следующим действием очистили. Например, будет в регистре 1млн записей подходящих под отбор - все они будут прочитаны в набор, потратив время и ресурсы.

НаборЗаписей.Очистить() = в данном случае очищаются именно записи в наборе записей, с которым далее идет работа, а не записи в регистре сведений.

Это никак не влияет на то, что будет в итоге записано в базу.

А зависит - отборы набора записей и параметр метода Записать.

Записать (Write)
Синтаксис:
Записать(<Замещать>)
Параметры:
<Замещать> (необязательный)
Тип: Булево.
Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям.
Значение по умолчанию: Истина.
Описание:
Записывает набор записей в базу данных. В зависимости от переданного параметра, может быть выполнено добавление записей или их замещение.

П.С. Читайте документацию/синтакс-помощник, чтобы не было в голове каши.
---
По-моему, после установки отборов нужно еще
```1c
    НаборЗаписей.Прочитать();
```