ДокументОбъект.<Имя документа>.Скопировать

Методы · Copy

Создает новый документ копированием существующего.

Синтаксис

Скопировать()

Примеры платформы

Объект = ВыбДокумент.Скопировать();
Полное описание, параметры и ограничения

ДокументОбъект.<Имя документа>.Скопировать (DocumentObject.<Document name>.Copy)

ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)

Скопировать (Copy)

Доступен, начиная с версии 8.0.

Синтаксис:
Скопировать()
Возвращаемое значение:
Тип: ДокументОбъект.<Имя документа>.

Описание:

Создает новый документ копированием существующего.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Использование метода не приводит к записи созданного объекта в базу данных.
Пример:

Объект = ВыбДокумент.Скопировать();

См. также:
ДокументОбъект.<Имя документа>, событие ПриКопировании

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Собрать учебную заявку с двумя строками без записи и проведения

Документ создаём в памяти, заполняем дату и строки, считаем стоимость учебного набора и копируем экземпляр. Не используем бизнес-обработчики типовой конфигурации.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  7. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

  8. Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
Заявка.Дата = Дата(2026, 10, 2, 10, 0, 0);
Заявка.Комментарий = "Сценарий только в памяти";
Для Номер = 1 По 2 Цикл
    СтрокаЗаявки = Заявка.Товары.Добавить();
    СтрокаЗаявки.Товар = Справочники.УчебныеТовары.ПустаяСсылка();
    СтрокаЗаявки.Количество = ?(Номер = 1, 3, 1);
    СтрокаЗаявки.Цена = ?(Номер = 1, 250, 50);
КонецЦикла;
Итого = 0;
Для Каждого СтрокаЗаявки Из Заявка.Товары Цикл
    Итого = Итого + СтрокаЗаявки.Количество * СтрокаЗаявки.Цена;
КонецЦикла;
Сообщить(Итого = 800);
Сообщить(Заявка.ЭтоНовый());
Сообщить(Не Заявка.Проведен);
Сообщить(Не Заявка.ПометкаУдаления);
Сообщить(Заявка.Ссылка.Пустая());
Сообщить(Заявка.Метаданные().Имя = "УчебнаяЗаявка");
Заявка.ДополнительныеСвойства.Вставить("УчебныйИтог", Итого);
Сообщить(Заявка.ДополнительныеСвойства.УчебныйИтог);
Копия = Заявка.Скопировать();
Копия.Комментарий = "Независимая учебная копия";
Сообщить(Заявка.Комментарий = "Сценарий только в памяти");
Сообщить(Копия.ЭтоНовый());
Сообщить(Копия.Товары.Количество() = 2);

Разбор по шагам

  1. СоздатьДокумент создаёт незаписанный экземпляр. Дата — реквизит документа, не строка форматирования.

  2. Количества и цены сохраняем числами, стоимость считаем по двум строкам: 3×250 + 1×50.

  3. ПустаяСсылка использована намеренно, чтобы упражнение не требовало записанных товаров. С такими строками нельзя объявлять заявку готовой к рабочей записи.

  4. Скопировать создаёт новый экземпляр с табличной частью. Изменение комментария копии не заменяет комментарий исходного документа.

Как проверить результат

  1. Итог равен 800, обе заявки новые, исходная не проведена и имеет пустую ссылку.

  2. После изменения комментария копии исходный комментарий остался прежним, в копии 2 строки.

  3. В журнале документов УчебнаяЗаявка не появляется новая запись: ни Записать, ни проведение не выполнялись.

Ожидаемый результат

Составлен и скопирован учебный документ в памяти с явными проверками состояния и табличной части.

На что обратить внимание

  1. Это арифметическое упражнение, не расчёт налогов, себестоимости или сумм типового документа.

  2. Скопировать не делает документ идентичным записанному оригиналу и не сохраняет его в базе.

  3. ДополнительныеСвойства не добавляют сохраняемый реквизит УчебныйИтог в метаданные документа.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.