Создает новый элемент вида характеристики.
Синтаксис
СоздатьЭлемент()Полное описание, параметры и ограничения
ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик>.СоздатьЭлемент (ChartOfCharacteristicTypesManager.<Chart of characteristic types name>.CreateItem)
ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик> (ChartOfCharacteristicTypesManager.<Chart of characteristic types name>)
СоздатьЭлемент (CreateItem)
Доступен, начиная с версии 8.0.
Синтаксис:
СоздатьЭлемент()
Возвращаемое значение:
Тип: ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>.
Описание:
Создает новый элемент вида характеристики.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Использование метода не приводит к записи созданного объекта в базу данных.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Скопировать описание свойства, не меняя оригинал
Скопировать создаёт новый вид характеристики. Меняем имя копии, проверяем сохранённый тип и отдельно используем служебные дополнительные свойства оригинала.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу и назовите корень конфигурации Учебная85. Не добавляйте учебные объекты в УТ/КА2/УНФ/БП и не подключайте расширения.
Конфигуратор → Планы видов характеристик → Добавить: имя УчебныеСвойства, синоним Учебные свойства. Укажите длину кода 10, длину наименования 100, автонумерацию и контроль уникальности включите.
Включите иерархию плана. В свойстве Тип выберите только Число (12 цифр, 2 дробных, неотрицательное) и Строка (30 символов, переменная длина). Дополнительные значения характеристик не назначайте.
Реквизиты, табличные части, предопределённые элементы, формы, команды, макеты, характеристики и дополнительные индексы не создавайте. Модуль объекта и модуль менеджера оставьте пустыми; историю данных выключите.
Создайте серверный общий модуль УчебныеЗадачи с процедурой ВыполнитьПример() Экспорт и вызывайте её из серверного обработчика учебной обработки. Обновите конфигурацию базы данных перед первым запуском.
Код этого блока не вызывает Записать, не устанавливает блокировки и не меняет настройки метаданных. Учебные виды характеристик существуют только в памяти.
Если Метаданные.ПланыВидовХарактеристик.Найти("УчебныеСвойства") = Неопределено Тогда
ВызватьИсключение "Создайте собственный план УчебныеСвойства по подготовке";
КонецЕсли;
Описание = Метаданные.ПланыВидовХарактеристик.УчебныеСвойства;
ОписаниеВеса = ПланыВидовХарактеристик.УчебныеСвойства.СоздатьЭлемент();
ОписаниеВеса.Наименование = "Вес, кг";
ОписаниеВеса.ТипЗначения = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(8, 2, ДопустимыйЗнак.Неотрицательный));
ОписаниеВеса.ДополнительныеСвойства.Вставить("УчебнаяМетка", "Оригинал");
Копия = ОписаниеВеса.Скопировать();
Копия.Наименование = "Вес упаковки, кг";
Сообщить(ОписаниеВеса.Наименование = "Вес, кг");
Сообщить(Копия.Наименование = "Вес упаковки, кг");
Сообщить(Копия.ТипЗначения.СодержитТип(Тип("Число")));
Сообщить(Копия.ЭтоНовый());
Сообщить(ОписаниеВеса.ЭтоНовый());
Сообщить(Копия.Ссылка.Пустая());
Сообщить(Копия.ИмяПредопределенныхДанных = "");
Сообщить(Копия.ЭтотОбъект = Копия);
Метка = "";
Сообщить(ОписаниеВеса.ДополнительныеСвойства.Свойство("УчебнаяМетка", Метка));
Сообщить(Метка = "Оригинал");
Сообщить("Модифицированность копии: " + Строка(Копия.Модифицированность()));
Сообщить("Версия данных нового объекта: " + Копия.ВерсияДанных);Разбор по шагам
Исходник создаём сами, не читаем существующее рабочее свойство. Тип значения — Число.
Скопировать даёт другой новый объект. Переименование копии не меняет оригинал, а тип значения сохраняется.
ДополнительныеСвойства — служебная структура оригинала; читаем собственную метку явно. Не утверждаем, что она автоматически перенеслась в копию.
Модифицированность и ВерсияДанных выводятся как фактическая диагностика. Для нового объекта это не доказательство сохранения или версии в базе.
Как проверить результат
Десять логических сообщений дают Истина.
Оригинал называется Вес, кг, копия — Вес упаковки, кг; оба новые, обычная ссылка копии пустая.
Служебная метка оригинала равна Оригинал; в базе новый вид свойства не появился.
Ожидаемый результат
Разобрано копирование описания характеристики с независимым именем и диагностикой нового объекта.
На что обратить внимание
Копирование вида свойства не копирует значения этого свойства у товаров: таких значений пример вообще не создавал.
ДополнительныеСвойства не равны реквизитам, сохраняемым в базе. Перенос собственных служебных данных проектируйте явно.
Изменение нового объекта в памяти не означает Записать или успешную проверку всех обработчиков конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Создать описание «Вес» и «Цвет» и проверить собственные значения
ТипЗначения определяет разрешённый тип конкретного вида характеристики. Значения 12.5 и Синий держим отдельно от этих описаний; записи в базе не создаются.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу и назовите корень конфигурации Учебная85. Не добавляйте учебные объекты в УТ/КА2/УНФ/БП и не подключайте расширения.
Конфигуратор → Планы видов характеристик → Добавить: имя УчебныеСвойства, синоним Учебные свойства. Укажите длину кода 10, длину наименования 100, автонумерацию и контроль уникальности включите.
Включите иерархию плана. В свойстве Тип выберите только Число (12 цифр, 2 дробных, неотрицательное) и Строка (30 символов, переменная длина). Дополнительные значения характеристик не назначайте.
Реквизиты, табличные части, предопределённые элементы, формы, команды, макеты, характеристики и дополнительные индексы не создавайте. Модуль объекта и модуль менеджера оставьте пустыми; историю данных выключите.
Создайте серверный общий модуль УчебныеЗадачи с процедурой ВыполнитьПример() Экспорт и вызывайте её из серверного обработчика учебной обработки. Обновите конфигурацию базы данных перед первым запуском.
Код этого блока не вызывает Записать, не устанавливает блокировки и не меняет настройки метаданных. Учебные виды характеристик существуют только в памяти.
Если Метаданные.ПланыВидовХарактеристик.Найти("УчебныеСвойства") = Неопределено Тогда
ВызватьИсключение "Создайте собственный план УчебныеСвойства по подготовке";
КонецЕсли;
Описание = Метаданные.ПланыВидовХарактеристик.УчебныеСвойства;
Вес = ПланыВидовХарактеристик.УчебныеСвойства.СоздатьЭлемент();
Вес.Код = "WEIGHT";
Вес.Наименование = "Вес, кг";
Вес.ТипЗначения = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(8, 2, ДопустимыйЗнак.Неотрицательный));
Цвет = ПланыВидовХарактеристик.УчебныеСвойства.СоздатьЭлемент();
Цвет.Код = "COLOR";
Цвет.Наименование = "Цвет";
Цвет.ТипЗначения = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(30));
ЗначениеВеса = 12.5;
ЗначениеЦвета = "Синий";
Сообщить(Вес.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеВеса)));
Сообщить(Не Вес.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеЦвета)));
Сообщить(Цвет.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеЦвета)));
Сообщить(Не Цвет.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеВеса)));
Сообщить(Вес.ТипЗначения.Типы().Количество() = 1);
Сообщить(Цвет.ТипЗначения.Типы().Количество() = 1);
Сообщить(Вес.ЭтоНовый());
Сообщить(Цвет.ЭтоНовый());
Сообщить(Вес.Ссылка.Пустая());
Сообщить(Не Вес.ЭтоГруппа);
Сообщить(Вес.Метаданные().Имя = "УчебныеСвойства");
Группа = ПланыВидовХарактеристик.УчебныеСвойства.СоздатьГруппу();
Группа.Наименование = "Учебные числовые свойства";
Сообщить(Группа.ЭтоГруппа);
Сообщить(Группа.ЭтоНовый());
Сообщить(Группа.Ссылка.Пустая());
Сообщить(Вес.Родитель.Пустая());
Сообщить(Не Вес.ПометкаУдаления);
Сообщить(Не Вес.Предопределенный);Разбор по шагам
Создаём два новых объекта видов характеристик и явно ограничиваем каждый одним типом. Оба типа входят в базовый состав плана.
Вес и Цвет — описания, а ЗначениеВеса/ЗначениеЦвета — отдельные значения. СодержитТип сравнивает типы, не диапазон/длину/бизнес-смысл каждого значения.
У незаписанного объекта обычная Ссылка пустая. Проверяем ЭтоНовый, вид элемента и собственные метаданные.
Создаём также новую группу в памяти. Не присваиваем её пустую ссылку в Родитель, не выдавая такое присваивание за связь с сохранённой группой.
Как проверить результат
Семнадцать логических проверок дают Истина.
12.5 подходит по типу к Весу, строка Синий — к Цвету. Перекрёстные типы отвергаются.
Два элемента и группа остаются новыми; список плана в базе пуст.
Ожидаемый результат
Созданы два понятных описания свойств и проверена типовая совместимость их учебных значений.
На что обратить внимание
СодержитТип не проверяет, что вес неотрицателен и умещается в разрядность: квалификаторы и предметные проверки учитываются отдельно.
Не записывайте рабочие дополнительные свойства этим кодом: в типовой конфигурации есть собственные реквизиты, наборы, обработчики и правила.
Ручные учебные коды здесь не демонстрируют автонумерацию или уникальность при записи; запись намеренно отсутствует.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.