Добрый день, для занесения данных с формы и табличной части использую данную конструкцию

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)

    // регистр Поставка
    Движения.Поставка.Записывать = Истина;
    Движение = Движения.Поставка.Добавить();
    Движение.Период = Дата;
    Движение.ПоставкаНомерЗакупки = НомерЗакупки;
    Движение.ПоставкаНомерПоставки = НомерПоставки;
    Движение.ПоставкаДата = Дата;

    Для каждого Строка из Поставка Цикл

    Движение.ПоставкаНаименованиеПозиции = Строка.НаименованиеПозиции;
    Движение.ПоставкаКоличество = Строка.Количество;
    Движение.ПоставкаЦенаЗаЕд = Строка.ЦенаЗаЕд;
    Движение.ПоставкаСумма = Строка.Сумма;

    КонецЦикла;

    КонецПроцедуры
```

Но при ее использование данные в РегСвед попадают не полностью как пример у меня в табличной части 3 записи после проведения там только одна запись. Похоже, что записи просто затирают друг друга и остаётся последняя. Как можно исправить ?
---
Тут трудно что-то конкретно ответить, надо вникать в архитектуру конфигурации, понимать зачем этот регистр вообще нужен. Я в свое время тоже долго не мог понять, чем измерения отличаются от ресурсов, пока один умный человек не объяснил простым примером, который я сейчас повторяю всем начинающим коллегам: Представьте регистр сведений как функцию. Измерения - это параметры, а ресурсы - это возвращаемые значения. Проще говоря, ресурсы - это данные, которые вы должны получать, а измерения - это идентификаторы, по которым вы эти данные будите получать. Вам нужно определиться, зачем вам вообще нужен этот РС, что в нем будет храниться, и главное ДЛЯ ЧЕГО.
---
Вот так вот:

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)
    // регистр Поставка
    Движения.Поставка.Записывать = Истина;
    Для каждого Строка из Поставка Цикл

    Движение = Движения.Поставка.Добавить();
    Движение.Период = Дата;
    Движение.ПоставкаНомерЗакупки = НомерЗакупки;
    Движение.ПоставкаНомерПоставки = НомерПоставки;
    Движение.ПоставкаДата = Дата;
    Движение.ПоставкаНаименованиеПозиции = Строка.НаименованиеПозиции;
    Движение.ПоставкаКоличество = Строка.Количество;
    Движение.ПоставкаЦенаЗаЕд = Строка.ЦенаЗаЕд;
    Движение.ПоставкаСумма = Строка.Сумма;

    КонецЦикла;

    КонецПроцедуры
```
---
Ну так правильно пишет. У Вас в РС лишь одно измерение и оно в коде нигде не заполняется т.е. всегда постое и соответственно не уникальное.
---
Еще раз. У Вас в регистре лишь одно измерение, которое не заполняется т.е. остается всегда пустым. Когда вы не записываете данные из табличной части у вас создается только одна запись в РС на этот регистратор. Никаких проблем нет. Как только вы пытаетесь выгрузить данные по ТЧ, на один регистратор создается несколько записей в РС. Все они с единственным, всегда пустым измерением. Разумеется, что возникает конфликт.
---
Вот так вот:

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)
    // регистр Поставка
    Движения.Поставка.Записывать = Истина;
    Для каждого Строка из Поставка Цикл

    Движение = Движения.Поставка.Добавить();
    Движение.Период = Дата;
    Движение.ПоставкаНомерЗакупки = НомерЗакупки;
    Движение.ПоставкаНомерПоставки = НомерПоставки;
    Движение.ПоставкаДата = Дата;
    Движение.ПоставкаНаименованиеПозиции = Строка.НаименованиеПозиции;
    Движение.ПоставкаКоличество = Строка.Количество;
    Движение.ПоставкаЦенаЗаЕд = Строка.ЦенаЗаЕд;
    Движение.ПоставкаСумма = Строка.Сумма;

    КонецЦикла;

    КонецПроцедуры
```
---
Вот это поля формы
```1c
    Движение = Движения.Поставка.Добавить();
    Движение.Период = Дата;
    Движение.ПоставкаНомерЗакупки = НомерЗакупки;
    Движение.ПоставкаНомерПоставки = НомерПоставки;
    Движение.ПоставкаДата = Дата;
```

а это
```1c
    Движение.ПоставкаНаименованиеПозиции = Строка.НаименованиеПозиции;
    Движение.ПоставкаКоличество = Строка.Количество;
    Движение.ПоставкаЦенаЗаЕд = Строка.ЦенаЗаЕд;
    Движение.ПоставкаСумма = Строка.Сумма;
```
табличные значения вы предлагаете всё в одну кучу смешать
---
Мне кажется, вы не понимаете, что такое регистр сведений. Это таблица, когда вы выполняете код:

```1c
    Движение = Движения.Поставка.Добавить();
```

Вы создаете новую строку в этой таблице. Если выполнять Добавить() ДО цикла, то у Вас создастся лишь одна запись в РС, часть данных в которой будет перезаписываться при каждой интерации цикла по табличной части вашего документа. Что у вас собственно и происходило.
---
Что касается ошибки про не уникальность записи. В РС есть Измерения и Ресурсы. Скорее всего, периодичность РС выставлена "По позиции регистратора", это значит, что при проведении одного документа в регистре не могут создаваться записи со всеми одинаковыми значениями во всех измерениях т.е. должна быть уникальная комбинация значений измерений для каждой записи, в приделах одного регистратора (документа). Это в общих чертах. Если нужно конкретно, показывайте что за регистр, какие измерения и ресурсы, какие настройки периодичности. Телепатов тут нет.
---
У меня по вашему коду пишет что запись уже есть хотя регСвед пуст.
---
Ну так правильно пишет. У Вас в РС лишь одно измерение и оно в коде нигде не заполняется т.е. всегда постое и соответственно не уникальное.
---
Что нужно сделать что принять за измерение ? Я действительно плохо понимаю РегСвед хотя читал.
---
Тут трудно что-то конкретно ответить, надо вникать в архитектуру конфигурации, понимать зачем этот регистр вообще нужен. Я в свое время тоже долго не мог понять, чем измерения отличаются от ресурсов, пока один умный человек не объяснил простым примером, который я сейчас повторяю всем начинающим коллегам: Представьте регистр сведений как функцию. Измерения - это параметры, а ресурсы - это возвращаемые значения. Проще говоря, ресурсы - это данные, которые вы должны получать, а измерения - это идентификаторы, по которым вы эти данные будите получать. Вам нужно определиться, зачем вам вообще нужен этот РС, что в нем будет храниться, и главное ДЛЯ ЧЕГО.
---
Вот всё таки я не понимаю у меня 4 РегСвед всё заноситься без проблем все движения созданы с помощью конструктора в этом 5 том данные с полей
```1c
    Движение = Движения.Поставка.Добавить();
    Движение.Период = Дата;
    Движение.ПоставкаНомерЗакупки = НомерЗакупки;
    Движение.ПоставкаНомерПоставки = НомерПоставки;
    Движение.ПоставкаДата = Дата;
```
так же заносятся без проблем, но только нужно мне стало записать данные из Табличные части упёрся в какой то косяк неужели этот механизм не предусмотрен во вполне логичной операции.
---
Еще раз. У Вас в регистре лишь одно измерение, которое не заполняется т.е. остается всегда пустым. Когда вы не записываете данные из табличной части у вас создается только одна запись в РС на этот регистратор. Никаких проблем нет. Как только вы пытаетесь выгрузить данные по ТЧ, на один регистратор создается несколько записей в РС. Все они с единственным, всегда пустым измерением. Разумеется, что возникает конфликт.
---
Извините, но вернусь к теме я в РегСвед добавил 2 измерения значение в которых меняются при каждом занесение это

```1c
    Движение.ПоставкаНомерПоставки = НомерПоставки;

    Движение.ПоставкаКоличество = Строка.Количество;
```

и при первом использование всё занеслось, подумал заработало занялся другими задачами, сейчас проверил снова та же ошибка. Что не так может быть сейчас ?
---
Придумал решение, создал третье измерение в которое пишу номер строки, пока полёт нормальный )
---
СтрокаКоличество - будет работать ровно до тех пор, пока не попадется документ, в котором в двух строках будет одно кол-во. Вариант с номером строки технически да, работать будет, он будет всегда уникальный. Но вот с точки зрения архитектуры это всё не правильно. Любой элемент конфигурации, любой реквизит этого элемента должен быть осмысленным.