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

Свойства · Parent

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

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

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

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

Родитель (Parent)

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

Использование:
Только чтение.
Описание:
Тип: ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>.
Содержит ссылку на родителя элемента вида характеристики.
Доступность:

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

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

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

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

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

Проверить путь и принадлежность собственного определения цвета

Свойства → Внешний вид → Цвет создаются только внутри отменяемой транзакции. Иерархические методы вызываются именно на ссылках.

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

Полный серверный модуль своей НОВОЙ пустой учебной конфигурации по подготовке; платформа 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));
        ВидХарактеристики.УстановитьНовыйКод("У");
        ВидХарактеристики.Записать();
        СозданныеСсылки.Добавить(ВидХарактеристики.Ссылка);
        СсылкаКорня = Корень.Ссылка;
        СсылкаВложенной = Вложенная.Ссылка;
        СсылкаВида = ВидХарактеристики.Ссылка;
        Сообщить(СсылкаВида.ПолноеНаименование() = "Свойства/Внешний вид/Цвет");
        Сообщить(СсылкаКорня.Уровень() = 0);
        Сообщить(СсылкаВложенной.Уровень() = 1);
        Сообщить(СсылкаВида.Уровень() = 2);
        Сообщить(СсылкаВида.ПринадлежитЭлементу(СсылкаКорня));
        Сообщить(СсылкаВида.ПринадлежитЭлементу(СсылкаВложенной));
        Сообщить(Не СсылкаВида.ПринадлежитЭлементу(СсылкаВида));
        Сообщить(СсылкаВида.Родитель = СсылкаВложенной);
        Сообщить(СсылкаКорня.ЭтоГруппа И СсылкаВложенной.ЭтоГруппа И Не СсылкаВида.ЭтоГруппа);
        ОтменитьТранзакцию();
    Исключение
        Если ТранзакцияАктивна() Тогда
            ОтменитьТранзакцию();
        КонецЕсли;
        ВызватьИсключение;
    КонецПопытки;
    Сообщить(Не ТранзакцияАктивна());
    Для Каждого СозданнаяСсылка Из СозданныеСсылки Цикл
        Сообщить(СозданнаяСсылка.ПолучитьОбъект() = Неопределено);
    КонецЦикла;
КонецПроцедуры

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

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

  2. Каждую запись сразу запомнить для проверки после отката.

  3. Получить три настоящие ссылки и проверить полное имя с разделителем /.

  4. Корень имеет уровень 0, вложенная группа 1, элемент 2; пустые ссылки сюда не передаются.

  5. Проверить принадлежность обоим предкам и Ложь для принадлежности самому себе.

  6. После проверки дерева отменить все три свои записи, проверить каждую ссылку.

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

  1. Девять проверок дерева Истина.

  2. После отката три проверки отсутствия Истина, транзакция закрыта.

  3. Никакие существующие группы по имени не выбираются и не удаляются.

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

Три метода иерархии ссылки разобраны на полностью созданном собственном дереве.

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

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

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

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

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

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

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

Временно записывается собственное определение цвета с типом Строка 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С» и не аффилирован с ней.