ДокументСсылка.<Имя документа>.Скопировать

Методы · Copy

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

Синтаксис

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

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

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

ДокументСсылка.<Имя документа>.Скопировать (DocumentRef.<Document name>.Copy)

ДокументСсылка.<Имя документа> (DocumentRef.<Document name>)

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

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

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

Описание:

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

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

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

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

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

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

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

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

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

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

Скопировать заявку именно по ссылке и изменить строку только у черновика

Скопировать ссылки возвращает новый объект с табличной частью. Дата и количество копии заданы отдельно, исходные строки/комментарий сохраняются; копия не записывается.

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

Полный серверный модуль новой пустой Учебная85; платформа 8.5.1.1343. Собственные товар/заявка, запись без проведения только с откатом; здесь не запускался.

Подготовка

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

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

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

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

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

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

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

  8. У своего документа и товара модули пустые, подписок, расширений и внешних обработчиков нет. История данных выключена; проведение УчебнаяЗаявка запрещено, движения/регистры не создаются.

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

  10. Свойства ссылки readonly. Непустой UUID/ссылка не означает наличие записи, а ВерсияДанных — непрозрачная строка, не номер документа или версия конфигурации.

  11. Примеры здесь не запускались в 1С. Только код и установленная справка 8.5.1.1343; ваши документы не создавались, не проводились и не удалялись.

  12. Создайте серверный общий модуль УчебныеСсылкиДокументов и вставьте весь модуль одного урока. ВыполнитьПример() Экспорт вызывайте из своей процедуры формы с &НаСервереБезКонтекста; обновите конфигурацию БД.

  13. Опыт записи допускается только вне чужой транзакции. Внутри собственной транзакции создаются один свой новый товар и одна своя заявка, затем обе записи отменяются при успехе и при ошибке.

  14. Откат базы не отменяет внешние действия обработчиков, поэтому допускается лишь подготовленная новая пустая база. Не заменяйте ОтменитьТранзакцию фиксацией.

Процедура ВыполнитьПример() Экспорт
    
    Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
    КонецЕсли;
    Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
        ВызватьИсключение "Сначала подготовьте собственную УчебнаяЗаявка";
    КонецЕсли;
    Если ТранзакцияАктивна() Тогда
        ВызватьИсключение "Не запускайте урок внутри чужой транзакции";
    КонецЕсли;
    СозданныеСсылки = Новый Массив;
    НачатьТранзакцию();
    Попытка
        Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
        Товар.Наименование = "Собственная книга заявки";
        Товар.Артикул = "DOC-OWN-01";
        Товар.Цена = 250;
        Товар.УстановитьНовыйКод("У");
        Товар.Записать();
        СозданныеСсылки.Добавить(Товар.Ссылка);
        Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
        Заявка.Дата = Дата(2026, 10, 6, 12, 0, 0);
        Заявка.Комментарий = "Собственный источник копии";
        Первая = Заявка.Товары.Добавить();
        Первая.Товар = Товар.Ссылка;
        Первая.Количество = 3;
        Первая.Цена = 250;
        Вторая = Заявка.Товары.Добавить();
        Вторая.Товар = Товар.Ссылка;
        Вторая.Количество = 1;
        Вторая.Цена = 50;
        Заявка.УстановитьНовыйНомер("У");
        Заявка.Записать(РежимЗаписиДокумента.Запись);
        СозданныеСсылки.Добавить(Заявка.Ссылка);
        Читаемая = Заявка.Ссылка;
        Копия = Читаемая.Скопировать();
        Копия.Дата = Дата(2026, 10, 7, 12, 0, 0);
        Копия.Комментарий = "Независимый собственный черновик";
        Копия.Товары.Получить(0).Количество = 1;
        Сообщить(ТипЗнч(Копия) = Тип("ДокументОбъект.УчебнаяЗаявка"));
        Сообщить(Копия.ЭтоНовый());
        Сообщить(Копия.Ссылка.Пустая());
        Сообщить(Копия.Товары.Количество() = 2);
        Сообщить(Не Копия.Проведен);
        Сообщить(Читаемая.Дата = Дата(2026, 10, 6, 12, 0, 0));
        Исходная = Читаемая.ПолучитьОбъект();
        Если Исходная = Неопределено Тогда
            ВызватьИсключение "Собственный источник внутри транзакции отсутствует";
        КонецЕсли;
        Сообщить(Исходная.Комментарий = "Собственный источник копии");
        Сообщить(Исходная.Товары.Получить(0).Количество = 3);
        Сообщить("Копия не записана и не проведена; номер не назначается копированием вручную");
        ОтменитьТранзакцию();
    Исключение
        Если ТранзакцияАктивна() Тогда
            ОтменитьТранзакцию();
        КонецЕсли;
        ВызватьИсключение;
    КонецПопытки;
    Сообщить(Не ТранзакцияАктивна());
    Для Каждого СозданнаяСсылка Из СозданныеСсылки Цикл
        Сообщить(СозданнаяСсылка.ПолучитьОбъект() = Неопределено);
    КонецЦикла;
КонецПроцедуры

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

  1. Записать собственный товар и заявку только внутри своей отменяемой транзакции.

  2. Получить настоящую ссылку заявки и вызвать Скопировать на ней, не на неизвестном входном объекте.

  3. У копии явно установить свою дату и комментарий, изменить количество первой строки.

  4. Проверить новый объект, пустую ссылку, две строки и отсутствие проведения.

  5. Получить источник по ссылке и проверить прежние дату, комментарий и количество 3.

  6. Не сохранять/не проводить копию; откатить обе собственные исходные записи.

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

  1. Восемь сравнений независимой копии Истина.

  2. Копия остаётся новым непроведённым объектом; Копия.Записать отсутствует.

  3. После отката оба собственных исходника отсутствуют; никаких движений не создаётся.

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

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

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

  1. Дата документа — его реквизит, не дата фактической записи и не гарантированный UTC. Здесь сравнивается один заданный собственный литерал.

  2. Проведен и ПометкаУдаления не являются номером, правами доступа или подтверждением бизнес-корректности.

  3. Скопировать возвращает новый объект, не сохранённую ссылку. Номер/дату копии не считайте гарантированно одинаковыми с исходником.

  4. Только свои записи создаются внутри новой транзакции и откатываются; рабочие документы и движения не используются.

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

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

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

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

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