Как записанному документу присвоить новые значения реквизитов и записать.

1. Aleksandr_prof 197 08.06.20 13:41 Сейчас в теме
Исходные данные:
СтарыйДок; // ДокументСсылка, записанный в базе
НовыйДок; // ДокументОбъект - в базе ещё не существует и не записан.

Задача: присвоить всем реквизитам документа СтарыйДок значения реквизитов документа НовыйДок, оставив прежним только УИД.
Найденные решения
6. SnubbyAston 53 08.06.20 15:23 Сейчас в теме
(1)
СтарыйДокОбъект = СтарыйДок.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(СтарыйДокОбъект, НовыйДок,,<Тут имена свойств, которые не надо менять, дата, например, или еще чего>);
//Если надо табличные части, то
Для каждого ТЧ Из СтарыйДокОбъект.Метаданные().ТабличныеЧасти Цикл
    СтарыйДокОбъект[ТЧ.Имя].Загрузить(НовыйДок[ТЧ.Имя].Выгрузить());
КонецЦикла;
//Записываем с нужным режимом записи и оперативностью
СтарыйДокОбъект.Записать();
vv2; Aleksandr_prof; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. karamazoff 118 08.06.20 14:10 Сейчас в теме
(1)СтарыйДок = Док.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(СтарыйДок,НовыйДок)

Если есть табличные части, то придется их построчно перезаполнить.
6. SnubbyAston 53 08.06.20 15:23 Сейчас в теме
(1)
СтарыйДокОбъект = СтарыйДок.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(СтарыйДокОбъект, НовыйДок,,<Тут имена свойств, которые не надо менять, дата, например, или еще чего>);
//Если надо табличные части, то
Для каждого ТЧ Из СтарыйДокОбъект.Метаданные().ТабличныеЧасти Цикл
    СтарыйДокОбъект[ТЧ.Имя].Загрузить(НовыйДок[ТЧ.Имя].Выгрузить());
КонецЦикла;
//Записываем с нужным режимом записи и оперативностью
СтарыйДокОбъект.Записать();
vv2; Aleksandr_prof; +2 Ответить
7. Aleksandr_prof 197 09.06.20 07:37 Сейчас в теме
(6) Всё именно так. У самого что-то голова под вечер перестала соображать, решил воспользоваться консультацией. Благодарю
2. motiask 08.06.20 13:45 Сейчас в теме
НовыйДок = документ.<какой-то док>.СоздатьДокумент();
НовыйДок= СтарыйДок.Скопировать();
СтарыйДок.Записать();  
3. motiask 08.06.20 13:49 Сейчас в теме
Если изменить старый тогда
ДокОбъект = СтарыйДок.ПолучитьОбъект();
ДокОбъект.<мойреквизит> =  "новое значение";
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
5. Kovekh 08.06.20 14:17 Сейчас в теме
(3)+ Если заполнить все реквизиты надо, то используйте ЗаполнитьЗначенияСвойств(ДокОбъект, СтарыйДок)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот