Предназначен для изменения видов характеристик. Позволяет изменять атрибуты видов характеристик и записывать их.
Полное описание, параметры и ограничения
ПланВидовХарактеристикОбъект.<Имя плана видов характеристик> (ChartOfCharacteristicTypesObject.<Chart of characteristic types name>)
ПланВидовХарактеристикОбъект.<Имя плана видов характеристик> (ChartOfCharacteristicTypesObject.<Chart of characteristic types name>)
Доступен, начиная с версии 8.0.
Свойства:
<Имя общего реквизита> (<Common attribute name>)
<Имя реквизита> (<Attribute name>)
<Имя табличной части> (<Tabular section name>)
ВерсияДанных (DataVersion)
ДополнительныеСвойства (AdditionalProperties)
ЗаписьИсторииДанных (WriteDataHistory)
ИмяПредопределенныхДанных (PredefinedDataName)
Код (Code)
Наименование (Description)
ОбменДанными (DataExchange)
ПометкаУдаления (DeletionMark)
Предопределенный (Predefined)
Родитель (Parent)
Ссылка (Ref)
ТипЗначения (ValueType)
ЭтоГруппа (IsFolder)
ЭтотОбъект (ThisObject)
Методы:
Заблокирован (IsLocked)
Заблокировать (Lock)
Записать (Write)
Заполнить (Fill)
Метаданные (Metadata)
Модифицированность (Modified)
ПолноеНаименование (FullDescr)
ПолучитьСсылкуНового (GetNewObjectRef)
ПолучитьФорму (GetForm)
ПринадлежитЭлементу (BelongsToItem)
ПроверитьЗаполнение (CheckFilling)
Прочитать (Read)
Разблокировать (Unlock)
Скопировать (Copy)
Удалить (Delete)
Уровень (Level)
УстановитьКомментарийВерсииИсторииДанных (SetDataHistoryVersionComment)
УстановитьНовыйКод (SetNewCode)
УстановитьПометкуУдаления (SetDeletionMark)
УстановитьСсылкуНового (SetNewObjectRef)
ЭтоНовый (IsNew)
События:
ОбработкаЗаполнения (Filling)
ОбработкаПроверкиЗаполнения (FillCheckProcessing)
ОбработкаФормированияПоВерсииИсторииДанных (GenerateFromDataHistoryVersionProcessing)
ПередЗаписью (BeforeWrite)
ПередУдалением (BeforeDelete)
ПриЗаписи (OnWrite)
ПриКопировании (OnCopy)
ПриУстановкеНовогоКода (OnSetNewCode)
Описание:
Предназначен для изменения видов характеристик. Позволяет изменять атрибуты видов характеристик и записывать их.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Данный объект может быть сериализован в/из XML. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/enterprise/current-config}. Имя типа XDTO: ChartOfCharacteristicTypesObject.<Имя плана видов характеристик>.
См. также:
ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>, метод ПолучитьОбъект
ПланВидовХарактеристикВыборка.<Имя плана видов характеристик>, метод ПолучитьОбъект
ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>, метод Скопировать
ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик>, метод СоздатьЭлемент
ПланВидовХарактеристикМенеджер.<Имя плана видов характеристик>, метод СоздатьГруппу
ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>, свойство ЭтотОбъект
ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>, метод Скопировать
ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>, метод УстановитьСсылкуНового
ПланВидовХарактеристикОбъект.<Имя плана видов характеристик>, событие ПриКопировании
Использование в версии:
Доступен, начиная с версии 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 подходит по типу к Весу, строка Синий — к Цвету. Перекрёстные типы отвергаются.
Два элемента и группа остаются новыми; список плана в базе пуст.
Ожидаемый результат
Созданы два понятных описания свойств и проверена типовая совместимость их учебных значений.
На что обратить внимание
СодержитТип не проверяет, что вес неотрицателен и умещается в разрядность: квалификаторы и предметные проверки учитываются отдельно.
Не записывайте рабочие дополнительные свойства этим кодом: в типовой конфигурации есть собственные реквизиты, наборы, обработчики и правила.
Ручные учебные коды здесь не демонстрируют автонумерацию или уникальность при записи; запись намеренно отсутствует.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.