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

Методы · IsEmpty

Определяет, является ли ссылка пустой или нет.

Синтаксис

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

ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>.Пустая (ChartOfCharacteristicTypesRef.<Chart of characteristic types name>.IsEmpty)

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

Пустая (IsEmpty)

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

Синтаксис:
Пустая()
Возвращаемое значение:
Тип: Булево.
Истина - ссылка не указывает ни на какой объект (пустая ссылка); Ложь - в противном случае.
Описание:

Определяет, является ли ссылка пустой или нет.

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

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

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

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

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

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

Различить тип значений характеристики и ссылку на её описание

План УчебныеСвойства разрешает числовые и строковые значения. Его Тип — описание этих значений, а ПустаяСсылка — ссылка на вид характеристики, не значение свойства товара.

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

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

Подготовка

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

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

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

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

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

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

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

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

  1. Читаем описание собственной схемы. СодержитТип проверяет разрешённые типы значений, а Типы даёт их массив.

  2. Схема разрешает ровно Число и Строка. Дополнительный справочник значений не назначен; значение свойства пока нигде не хранится.

  3. Проверяем подготовленные настройки длины, иерархии и кодов. Эти чтения не нумеруют и не создают записи.

  4. ПустаяСсылка имеет тип ссылки на вид характеристики. Это не число, не строка, не объект метаданных и не сам план целиком.

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

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

  2. После них выводятся фактические режимы длины кода, серий кодов и показа групп; они не выдаются за значения товара.

  3. В базе не появляются виды свойств или дополнительные значения.

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

Проверена схема ПВХ и разделены ссылка на описание свойства и допустимый тип его значения.

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

  1. План видов характеристик не хранит автоматически значение Вес у каждого товара. Для значений нужен отдельный объект/регистр с согласованной структурой.

  2. Не сравнивайте значение 12.5 с типом ПланВидовХарактеристикСсылка.УчебныеСвойства: это ссылка на вид свойства, а не его значение.

  3. ДополнительныеЗначенияХарактеристик — описание назначенного справочника в метаданных, не массив уже введённых значений.

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

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

ТипЗначения определяет разрешённый тип конкретного вида характеристики. Значения 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. Ручные учебные коды здесь не демонстрируют автонумерацию или уникальность при записи; запись намеренно отсутствует.

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

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

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

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

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