1С 8.3 Копирование данных документа из источника в приемник - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Копирование данных документа из источника в приемник

Данные > Примеры кода 1С > 1С 8.3 Документы
Процедура предназначена для программного копирования содержимого реквизитов и/или табличных частей из одного документа (источника) в другой документ (приёмник). В параметры процедуры передаем документ-приёмник (из которого будем копировать реквизиты и/или табличные части) и документ-источник (куда будем вставлять реквизиты и/или табличные части).
В параметр СвойстваВключаемые можно передать строку с перечнем имён реквизитов (через запятую) которые будут скопированы, если параметр оставить пустым - то будут скопированы все реквизиты/табличные части.
В параметр СвойстваИсключаемые можно передать строку с перечнем имён реквизитов (через запятую) которые будут исключены (не будут скопированы), если параметр оставить пустым - то будут скопированы все реквизиты/табличные части без исключений.
Копирование данных документа из источника в приемник 1С 8.3:
&НаСервере
Процедура КопированиеДанныхДокумента(ДокументПриемник, ДокументИсточник, СвойстваВключаемые="", СвойстваИсключаемые="")

  //МетаданныеДокумента = ДокументИсточник.Метаданные();
   Попытка
       МетаданныеДокумента = ДокументИсточник.Метаданные();
   Исключение
       МетаданныеДокумента = ДокументПриемник.Метаданные();
   КонецПопытки;

   ЗаполнитьЗначенияСвойств(ДокументПриемник, ДокументИсточник, СвойстваВключаемые, СвойстваИсключаемые);

   Для Каждого ТаблЧасть Из МетаданныеДокумента.ТабличныеЧасти Цикл
       ИмяТаблЧасти = ТаблЧасть.Имя;

       ДокументПриемник[ИмяТаблЧасти].Очистить();
       Для Каждого ТекСтрИсточника Из ДокументИсточник[ИмяТаблЧасти] Цикл
           НоваяСтрокаПриемника = ДокументПриемник[ИмяТаблЧасти].Добавить();
           ЗаполнитьЗначенияСвойств(НоваяСтрокаПриемника, ТекСтрИсточника, СвойстваВключаемые, СвойстваИсключаемые)
       КонецЦикла
   КонецЦикла
   // Объект копируемого документа не записывается, действия по записи и проведению документа производятся вне процедуры

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

1
комментарий
Илья
03 май 2024
Оно конечно да... Вот только СвойстваВключаемые по умолчанию должны быть Неопределено, иначе по умолчанию ничего копироваться не будет, что не логично.
СвойстваИсключаемые тоже не всегда будут работать, потому что если указать, например "Номер" (ну, для документа) то при копировании табличных частей вылезет исключение - в ТЧ "номера" нет.
Как скелет для своей процедуры - хорошо, но это не готовый кусок кода.
____________________
Copyright©, «Программист 1С в г.Минске», 16.05.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому