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

Свойства · Code

Тип: Строка. Содержит код элемента вида характеристики.

Полное описание, параметры и ограничения

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

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

Код (Code)

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

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит код элемента вида характеристики.
Доступность:

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

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

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

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

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

Создать описание «Вес» и «Цвет» и проверить собственные значения

ТипЗначения определяет разрешённый тип конкретного вида характеристики. Значения 12.5 и Синий держим отдельно от этих описаний; записи в базе не создаются.

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

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

Подготовка

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

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

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

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

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

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

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

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

  1. Создаём два новых объекта видов характеристик и явно ограничиваем каждый одним типом. Оба типа входят в базовый состав плана.

  2. Вес и Цвет — описания, а ЗначениеВеса/ЗначениеЦвета — отдельные значения. СодержитТип сравнивает типы, не диапазон/длину/бизнес-смысл каждого значения.

  3. У незаписанного объекта обычная Ссылка пустая. Проверяем ЭтоНовый, вид элемента и собственные метаданные.

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

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

  1. Семнадцать логических проверок дают Истина.

  2. 12.5 подходит по типу к Весу, строка Синий — к Цвету. Перекрёстные типы отвергаются.

  3. Два элемента и группа остаются новыми; список плана в базе пуст.

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

Созданы два понятных описания свойств и проверена типовая совместимость их учебных значений.

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

  1. СодержитТип не проверяет, что вес неотрицателен и умещается в разрядность: квалификаторы и предметные проверки учитываются отдельно.

  2. Не записывайте рабочие дополнительные свойства этим кодом: в типовой конфигурации есть собственные реквизиты, наборы, обработчики и правила.

  3. Ручные учебные коды здесь не демонстрируют автонумерацию или уникальность при записи; запись намеренно отсутствует.

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

Прочитать паспорт ссылки описания цвета, не смешивая его со значением товара

Временно записывается собственное определение цвета с типом Строка 30. Ссылка даёт паспорт этого определения, а не сам цвет какого-либо товара.

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

Полный серверный модуль своей НОВОЙ пустой учебной конфигурации по подготовке; платформа 8.5.1.1343. При записи всегда откат, рабочие данные не используются. Здесь не запускался.

Подготовка

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

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

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

  4. В собственной иерархии разрешите группы и элементы с двумя уровнями ниже корня. Реквизитов, табличных частей и предопределённых элементов не создавайте; история выключена.

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

  6. Код здесь в 1С не запускался. HTML показывает урок: проверены исходники и установленная справка именно 8.5.1.1343, но запись/открытие формы в ваших базах не выполнялись.

  7. Ссылка идентифицирует запись, объект служит для её изменения. Свойства ссылки readonly, ВерсияДанных — непрозрачная строка, не номер версии конфигурации.

  8. Непустая плановая ссылка не подтверждает существование записи; перед чтением данных отсутствующая запись исключается отдельно.

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

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

  11. Записанные собственные ссылки запоминаются сразу после записи. После отмены каждая проверяется на ПолучитьОбъект=Неопределено. Никакого удаления по имени, первой строке или всей коллекции нет.

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

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

  1. Создать только свой новый элемент, задать имя и ограниченное описание строкового типа.

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

  3. Прочитать по ссылке код, имя, самоссылку, пустого родителя и признаки обычного элемента.

  4. Проверить, что тип допускает Строка и не допускает Число. Это схема характеристики, не её прикладное значение.

  5. Версию прочитать только как непрозрачную строку; readonly-поля не менять.

  6. Откатить запись и проверить отсутствие каждого своего записанного объекта.

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

  1. Одиннадцать сравнений паспорта Истина.

  2. Товар и его реквизит цвета в этом уроке вообще не создаются.

  3. После отката свой вид характеристики отсутствует.

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

Все свойства ссылки объяснены на настоящем собственном определении с откатом.

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

  1. Прикладной Тип существует только после создания указанных собственных метаданных. В функциональный Новый массив передаёт аргументы конструктора.

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

  3. Уровень пустой ссылки вызывает исключение; иерархические методы используются только у записанных собственных объектов внутри транзакции.

  4. Откат БД не отменяет внешние действия обработчиков. Поэтому конфигурация пустая, модули/подписки без сети, печати, файлов и почты.

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

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

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

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

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