Добрый вечер, отважные 1с-ники!

Имеется обработка с табличной частью, в которой проставляются статусы договорам. Задача сохранить проставленные статусы в регистре сведений. Для этой цели использую непериодический независимый регистр сведений. Запись произвожу вот таким образом:

```1c
    Процедура КнопкаВыполнитьНажатие (Элемент)
    НаборЗаписей = РегистрыСведений.МойРС.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТабличноеПоле Цикл
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Договор = Строка.НаименованиеДоговора;
    НоваяЗапись.Статус = Строка.Статус;
    НоваяЗапись.Дата = Строка.ДатаСтатуса;
    НоваяЗапись.Комментарий = Строка.Комментарий;
    КонецЦикла;
    НаборЗаписей.Записать();
    КонецПроцедуры
```

Но возникает ошибочка:

{Форма.Форма.Форма(126)}: Ошибка при вызове метода контекста (Записать)
 НаборЗаписей.Записать();
по причине:
Запись с такими ключевыми полями существует! : МойРС: (Регистр сведений: МойРС; Номер строки: 2)

Сам регистр пустой. Намекните пожалуйста, что тут не так?
---
Если у договора может быть несколько статусов - вынести статус в измерение и свернуть таблицу по статусам и договорам, чтобы не было дублей. Как вариант.

Если различается дата всегда - можно сделать или периодический регистр или дату в измерение вынести. Тогда статус можно в ресурсы. Даже наверное этот вариант лучше. У вас же не может быть в одно и то же время несколько статусов у договора?
---
В строке 1 и 2 - одинаковый набор измерений...
---
нуууу
      НоваяЗапись.Договор = Строка.НаименованиеДоговора;
---
Договор - это у меня измерение в регистре, а НаименованиеДоговора название колонки в табличной части. Я записываю значение колонки в регистр.
---
НаименованиеДоговора - что за тип?
проверьте что бы у вас совпадали типы

да и отборы надо использовать иначе вы будете затирать ранее сохраненные данные
---
Типы действительно не совпадали - привел в соответствие.

(5) да и отборы надо использовать иначе вы будете затирать ранее сохраненные данные

Поделитесь пожалуйста, что Вы имеете в виду?
---
Какие измерения у регистра?
---
Если только договор и в таблице несколько записей с одним договором - запись не пройдет
---
Да, в измерении один договор, а остальное ресурсы. И что тогда делать?
---
Если у договора может быть несколько статусов - вынести статус в измерение и свернуть таблицу по статусам и договорам, чтобы не было дублей. Как вариант.

Если различается дата всегда - можно сделать или периодический регистр или дату в измерение вынести. Тогда статус можно в ресурсы. Даже наверное этот вариант лучше. У вас же не может быть в одно и то же время несколько статусов у договора?
---
Спасибо за советы, очень хорошие и полезные. Буду думать и делать )
---
если у вас только одно измерение - Договор
то надо устанавливать отбор
примерно так, ди и запись только по одному договору, если/когда что-то дописывать или менять будете

Процедура КнопкаВыполнитьНажатие (Элемент)
        НаборЗаписей = РегистрыСведений.МойРС.СоздатьНаборЗаписей();
    Для Каждого Строка Из ТабличноеПоле Цикл
        НаборЗаписей.Очистить();
        НаборЗаписей.Отбор.Договор.Установить(Строка.Договор); //Отбор
        НоваяЗапись = НаборЗаписей.Добавить();
        НоваяЗапись.Договор = Строка.Договор;//здесь должна быть ссылка на Договор
        НоваяЗапись.Статус = Строка.Статус;
        НоваяЗапись.Дата = Строка.ДатаСтатуса;
        НоваяЗапись.Комментарий = Строка.Комментарий;
        НаборЗаписей.Записать();
    КонецЦикла;
КонецПроцедуры
---
Спасибо за помощь, подумаю
---
Вы предлагаете при заполнении набора записей в цикле, в каждой итерации очищать набор записей? Бред. У вас в итоге в наборе записей будет только одна последняя запись. Отбор здесь не нужен.
---
увидел что вы записываете набор в цикле. Поправлюсь. Возможно все записи запишутся, но так крайне не правильно делать. В этом случае лучше использовать менеджер записи регистра сведений. Смысл набора записей, чтобы обрабатывать записи пакетом. Создаем набор записей, устанавливаем отборы, работаем с записями в цикле
---
1.менеджер записи пишет данные через набор
2.да в цикле не очень красиво, была сделана оговорка что актуально при добавлении или изменении (статусов)
если идет начальная загрузка в пустой регистр, то действительно можно без отбора и сразу все договора
---
У Вас, пропущен выбор записи для изменения и если новая запись, запишется, а при существующей даст ошибку. Во второй строке добавьте отбор: НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);