ПространствоИменXPath.ПолучитьПользовательскиеДанные

Методы · GetUserData

Получает пользовательские данные.

Синтаксис

ПолучитьПользовательскиеДанные(<Ключ>)
Полное описание, параметры и ограничения

ПространствоИменXPath.ПолучитьПользовательскиеДанные (XPathNamespace.GetUserData)

ПространствоИменXPath (XPathNamespace)

ПолучитьПользовательскиеДанные (GetUserData)

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

Синтаксис:
ПолучитьПользовательскиеДанные(<Ключ>)
Параметры:

<Ключ> (обязательный)
Тип: Строка.
Ключ пользовательских данных.
Возвращаемое значение:
Тип: Произвольный.
Неопределено, если указанному ключу не соответствовали никакие пользовательские данные.
Описание:

Получает пользовательские данные.

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

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

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

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

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

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

Проверить пользовательскую аннотацию namespace без изменения XML

Пробуем прикрепить свою заметку и явно различаем успех и readonly-отказ. Ни одна ветка не приравнивается к изменению URI объявления.

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

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

Подготовка

  1. Документы и все узлы создаются в памяти на сервере. Внешние XML, DTD, сетевые схемы и файлы не загружаются.

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

  3. DOCTYPE создан собственным конструктором с пустыми PUBLIC/SYSTEM. Внутренних сущностей/нотаций нет; guideProduct — намеренно неопределённая ссылка, а не загруженный товар.

  4. Этот документ исследуется только в памяти. Не сохраняйте и не передавайте его как готовый XML обмена: ссылка guideProduct не объявлена.

  5. XPath namespace::g возвращает специализированный узел, а не строку URI и не обычный атрибут xmlns.

ОписаниеТипа = Новый ОпределениеТипаДокументаDOM("products", "", "");
Документ = Новый ДокументDOM("urn:guide:special", "g:products", ОписаниеТипа);
Корень = Документ.ЭлементДокумента;
Корень.УстановитьСоответствиеПространстваИмен("g", "urn:guide:special");
Ссылка = Документ.СоздатьСсылкуНаСущность("guideProduct");
Корень.ДобавитьДочерний(Ссылка);
Разыменователь = Документ.СоздатьРазыменовательПИ();
Результат = Документ.ВычислитьВыражениеXPath("namespace::g", Корень,
    Разыменователь, ТипРезультатаDOMXPath.НеупорядоченныйСнимокУзлов);
Если Результат.РазмерСнимка <> 1 Тогда
    ВызватьИсключение "Ожидался ровно один собственный namespace g";
КонецЕсли;
Пространство = Результат.ЭлементСнимка(0);
Если ТипЗнч(Пространство) <> Тип("ПространствоИменXPath") Тогда
    ВызватьИсключение "Ожидался настоящий узел ПространствоИменXPath";
КонецЕсли;
Узлы = Новый Массив;
Узлы.Добавить(ОписаниеТипа);
Узлы.Добавить(Ссылка);
Узлы.Добавить(Пространство);
До = Пространство.ПолучитьПользовательскиеДанные("guideCode");
Сообщить(До = Неопределено);
Установлено = Ложь;
Попытка
    Пространство.УстановитьПользовательскиеДанные("guideCode", "A-01");
    Установлено = Истина;
Исключение
    Сообщить("Аннотация namespace отклонена: " + ОписаниеОшибки());
КонецПопытки;
Если Установлено Тогда
    Сообщить(Пространство.ПолучитьПользовательскиеДанные("guideCode") = "A-01");
Иначе
    Сообщить(Пространство.ПолучитьПользовательскиеДанные("guideCode") = До);
КонецЕсли;
Сообщить(Пространство.URIПространстваИмен = "urn:guide:special");
Сообщить(Пространство.ЭлементВладелец.УзелИдентичен(Корень));

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

  1. Читаем отсутствующий собственный ключ до установки.

  2. Отдельный флаг Установлено меняется только после завершения вызова. Пойманная ошибка не делает его Истина.

  3. Ветку результата проверяем против фактического исхода; URI и элемент-владелец должны остаться прежними.

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

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

  2. Два последних сравнения Истина. Если установка запрещена, выводится реальная ошибка, а не ложное сообщение об успехе.

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

Отделена временная аннотация объекта от редактирования namespace и показана ветка отказа.

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

  1. Для переносимых служебных заметок используйте собственное Соответствие рядом с результатом XPath.

  2. Справка запрещает изменение namespace, но не уточняет этот частный механизм пользовательских данных: успех установки здесь не обещан.

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

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

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

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

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