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

Методы · Copy

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

Синтаксис

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

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

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

СправочникОбъект.<Имя справочника>.Скопировать (CatalogObject.<Catalog name>.Copy)

СправочникОбъект.<Имя справочника> (CatalogObject.<Catalog name>)

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

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

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

Описание:

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

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

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

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

Объект = Справочник.Скопировать();

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

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

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

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

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

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

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

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

Подготовка

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

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

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

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

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


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
Товар.Наименование = "Учебная книга";
Товар.Артикул = "A-01";
Товар.Цена = 250;
Товар.Код = "ОПЫТ-01";
Штрихкод = Товар.Штрихкоды.Добавить();
Штрихкод.Штрихкод = "TRAINING-A-01";
Штрихкод.Основной = Истина;
Копия = Товар.Скопировать();
Копия.Наименование = "Учебная тетрадь";
Копия.Цена = 100;
Копия.Штрихкоды.Получить(0).Штрихкод = "TRAINING-B-02";
Сообщить(Товар.Наименование = "Учебная книга");
Сообщить(Товар.Цена = 250);
Сообщить(Товар.Код = "ОПЫТ-01");
Сообщить(Товар.Штрихкоды.Получить(0).Штрихкод = "TRAINING-A-01");
Сообщить(Копия.Наименование = "Учебная тетрадь");
Сообщить(Копия.Штрихкоды.Количество() = 1);
Сообщить(Копия.ЭтоНовый());
Сообщить(Копия.Ссылка.Пустая());

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

  1. Создаём товар в памяти и добавляем конкретную строку собственного учебного штрихкода.

  2. Скопировать создаёт новый экземпляр с перенесённой табличной частью. Это не присваивание Копия=Товар.

  3. Меняем три значения только у копии и читаем исходные значения первого экземпляра.

  4. Код копии намеренно не сравниваем с исходным: получение нового кода и правила нумерации нужно исследовать отдельно.

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

  1. Восемь сообщений Истина. Первая строка исходного товара сохранила TRAINING-A-01.

  2. Ни исходный, ни скопированный товар не появились в списке: Записать отсутствует.

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

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

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

  1. TRAINING-A-01 и TRAINING-B-02 не являются проверенными EAN-кодами.

  2. Типовой обработчик ПриКопировании может изменять поля. Здесь модули специально пустые.

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

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

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

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

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

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