ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>.Скопировать

Методы · Copy

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

Синтаксис

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

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

Если Не ОбъектСсылка.Пустая() Тогда
    Копия = ОбъектСсылка.Скопировать();
    Копия.Записать();
КонецЕсли;
Полное описание, параметры и ограничения

ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>.Скопировать (ChartOfCharacteristicTypesObject.<Chart of characteristic types name>.Copy)

ПланВидовХарактеристикОбъект.<Имя плана видов характеристик> (ChartOfCharacteristicTypesObject.<Chart of characteristic types name>)

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

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

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

Описание:

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

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

Сервер, толстый клиент, внешнее соединение.

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

Если Не ОбъектСсылка.Пустая() Тогда
Копия = ОбъектСсылка.Скопировать();
Копия.Записать();
КонецЕсли;

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

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

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

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

Скопировать описание свойства, не меняя оригинал

Скопировать создаёт новый вид характеристики. Меняем имя копии, проверяем сохранённый тип и отдельно используем служебные дополнительные свойства оригинала.

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

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

Подготовка

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

  2. Конфигуратор → Планы видов характеристик → Добавить: имя УчебныеСвойства, синоним Учебные свойства. Укажите длину кода 10, длину наименования 100, автонумерацию и контроль уникальности включите.

  3. Включите иерархию плана. В свойстве Тип выберите только Число (12 цифр, 2 дробных, неотрицательное) и Строка (30 символов, переменная длина). Дополнительные значения характеристик не назначайте.

  4. Реквизиты, табличные части, предопределённые элементы, формы, команды, макеты, характеристики и дополнительные индексы не создавайте. Модуль объекта и модуль менеджера оставьте пустыми; историю данных выключите.

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

  6. Код этого блока не вызывает Записать, не устанавливает блокировки и не меняет настройки метаданных. Учебные виды характеристик существуют только в памяти.

Если Метаданные.ПланыВидовХарактеристик.Найти("УчебныеСвойства") = Неопределено Тогда
    ВызватьИсключение "Создайте собственный план УчебныеСвойства по подготовке";
КонецЕсли;
Описание = Метаданные.ПланыВидовХарактеристик.УчебныеСвойства;
ОписаниеВеса = ПланыВидовХарактеристик.УчебныеСвойства.СоздатьЭлемент();
ОписаниеВеса.Наименование = "Вес, кг";
ОписаниеВеса.ТипЗначения = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(8, 2, ДопустимыйЗнак.Неотрицательный));
ОписаниеВеса.ДополнительныеСвойства.Вставить("УчебнаяМетка", "Оригинал");
Копия = ОписаниеВеса.Скопировать();
Копия.Наименование = "Вес упаковки, кг";
Сообщить(ОписаниеВеса.Наименование = "Вес, кг");
Сообщить(Копия.Наименование = "Вес упаковки, кг");
Сообщить(Копия.ТипЗначения.СодержитТип(Тип("Число")));
Сообщить(Копия.ЭтоНовый());
Сообщить(ОписаниеВеса.ЭтоНовый());
Сообщить(Копия.Ссылка.Пустая());
Сообщить(Копия.ИмяПредопределенныхДанных = "");
Сообщить(Копия.ЭтотОбъект = Копия);
Метка = "";
Сообщить(ОписаниеВеса.ДополнительныеСвойства.Свойство("УчебнаяМетка", Метка));
Сообщить(Метка = "Оригинал");
Сообщить("Модифицированность копии: " + Строка(Копия.Модифицированность()));
Сообщить("Версия данных нового объекта: " + Копия.ВерсияДанных);

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

  1. Исходник создаём сами, не читаем существующее рабочее свойство. Тип значения — Число.

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

  3. ДополнительныеСвойства — служебная структура оригинала; читаем собственную метку явно. Не утверждаем, что она автоматически перенеслась в копию.

  4. Модифицированность и ВерсияДанных выводятся как фактическая диагностика. Для нового объекта это не доказательство сохранения или версии в базе.

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

  1. Десять логических сообщений дают Истина.

  2. Оригинал называется Вес, кг, копия — Вес упаковки, кг; оба новые, обычная ссылка копии пустая.

  3. Служебная метка оригинала равна Оригинал; в базе новый вид свойства не появился.

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

Разобрано копирование описания характеристики с независимым именем и диагностикой нового объекта.

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

  1. Копирование вида свойства не копирует значения этого свойства у товаров: таких значений пример вообще не создавал.

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

  3. Изменение нового объекта в памяти не означает Записать или успешную проверку всех обработчиков конфигурации.

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

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

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

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

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