Добрейшего времени суток, дорогие товарищи!

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

```1c
    &НаСервере
    Процедура ФунИзменения()

    ОтчОбщДляКол = Объект.ОтчетОРозничныхПродажах.Товары;

    Для каждого СтрокаТовар Из Объект.ВременнаяТаблица Цикл

    ДляНом = СтрокаТовар.НоменклатураВР;

    ДляКол = СтрокаТовар.КоличествоВР;
    ДляКолУпа = СтрокаТовар.КоличествоВР;
    ДляЦен = СтрокаТовар.ЦенаВР;
    ДляСум = ДляКолУпа * ДляЦен;
    ДляНДС = СтрокаТовар.СтавкаНДСВР;

    ТаблицаО = Объект.ОтчетОРозничныхПродажах.ПолучитьОбъект();
    ЗН = ТаблицаО.Товары.Добавить();

    ЗН.Склад = Объект.Склады;

    ЗН.Номенклатура = ДляНом;
    ЗН.Количество = ДляКол;
    ЗН.КоличествоУпаковок = ДляКол;
    ЗН.Цена = ДляЦен;
    ЗН.Сумма = ДляСум;
    ЗН.СтавкаНДС = ДляНДС;

    ТаблицаО.Записать(РежимЗаписиДокумента.Проведение);

    КонецЦикла;

    КонецПроцедуры
```
---
```1c
    ДляНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаТовар.НоменклатураВР);
    ДляНДС = Перечисления.СтавкиНДС.БезНДС;
```

Для ставок, если используется несколько лучше сделать условия:

```1c
    Если СтрокаТовар.СтавкаНДСВР = "18" Тогда
    ДляНДС = Перечисления.СтавкиНДС.НДС18;
    ИначеЕсли ...... и т.д
```
---
Объект.ВременнаяТаблица
Что это? какие реквизиты и типы имеет? Зачем Объект? Почему не пользуетесь ЗаполнитьЗначенияСвойств()?
Рекомендую Вам создать программно копию таблицы и обратным заполнением сделать так -

```1c
    ЗаполнитьЗначенияСвойств(ТаблицаО.Товары.Добавить(),ВременнаяТаблица );
```

З.Ы. можете воспользоваться моей обработкой или взять код оттуда
https://infostart.ru/public/894573/
---
Объект.ВременнаяТаблица это таблица с выводом отчёта с изменениями

Что касается остального, то попробую, благодарствую!
---
Совсем копипастить не хотелось бы. Надо ж самому тоже понять. Но, спасибо за наводку
---
Если у вас во временной таблице эти данные строковые а не ссылочные , то ясно почему они не заполняются
ДляНом = СтрокаТовар.НоменклатураВР
ДляНДС = СтрокаТовар.СтавкаНДСВР

Должны быть ссылки.
---
Как их переделать в ссылки?
---
Например в этом поле Объект.ОтчетОРозничныхПродажах в событии "при изменении" Пишите так

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

    &НаСервере
    Процедура ТабЧастьИсходнаяПриИзмененииНаСервере()
    МассивУдаляемыхРеквизитов = Новый Массив;
    Для Каждого Строка Из СписокУдаляемыхРеквизитов Цикл
    НайденныйЭлементФормы = ЭтаФорма.Элементы.Найти(Строка.Значение);
    МассивУдаляемыхРеквизитов.Добавить("ДанныеДокумента."+Строка.Значение);
    Если НайденныйЭлементФормы <> Неопределено Тогда
    ЭтаФорма.Элементы.Удалить(НайденныйЭлементФормы);
    КонецЕсли;
    КонецЦикла;
    ИзменитьРеквизиты(,МассивУдаляемыхРеквизитов);
    ДобавимРеквизиты = Новый Массив;
    Для Каждого Реквизит Из Объект.ИсходныйДокумент.Метаданные().ТабличныеЧасти[ТабЧастьИсходная].Реквизиты Цикл
    ДобавимРеквизиты.Добавить(Новый РеквизитФормы(Реквизит.Имя,Реквизит.Тип,"ДанныеДокумента",Реквизит.Имя));
    КонецЦикла;
    ИзменитьРеквизиты(ДобавимРеквизиты);
    СписокУдаляемыхРеквизитов.Очистить();
    Для Сч = 0 По ДобавимРеквизиты.Количество() -1 Цикл
    НоваяКолонка = Элементы.Добавить(ДобавимРеквизиты[Сч].Заголовок, Тип("ПолеФормы"), Элементы.ДанныеДокумента);
    НоваяКолонка.Заголовок = ДобавимРеквизиты[Сч].Заголовок;
    НоваяКолонка.ПутьКДанным = "ДанныеДокумента."+ ДобавимРеквизиты[Сч].Заголовок;
    СписокУдаляемыхРеквизитов.Добавить(ДобавимРеквизиты[Сч].Заголовок);
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
    НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;
    КонецЦикла;

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

    &НаКлиенте
    Процедура ТабЧастьИсходнаяПриИзменении(Элемент)
    ТабЧастьИсходнаяПриИзмененииНаСервере();
    КонецПроцедуры
```

Переделайте под свои реквизиты и будет у вас копия таблицы с правильными ссылками
---
```1c
    ДляНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаТовар.НоменклатураВР);
    ДляНДС = Перечисления.СтавкиНДС.БезНДС;
```

Для ставок, если используется несколько лучше сделать условия:

```1c
    Если СтрокаТовар.СтавкаНДСВР = "18" Тогда
    ДляНДС = Перечисления.СтавкиНДС.НДС18;
    ИначеЕсли ...... и т.д
```
---
ДляНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрокаТовар.НоменклатураВР);
ДляНДС = Перечисления.СтавкиНДС.БезНДС;

Да, про эту фишку их забыл, действительно. Спасибо! Теперь всё работает!