Тип: Строка. Имя объекта метаданных.
Полное описание, параметры и ограничения
ОбъектМетаданных: ПараметрСеанса.Имя (MetadataObject: SessionParameter.Name)
ОбъектМетаданных: ПараметрСеанса (MetadataObject: SessionParameter)
Имя (Name)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Строка.
Имя объекта метаданных.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Имя должно состоять из одного слова, начинаться с буквы и не содержать специальных символов, кроме «_».
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Проверить тип параметра, не читая пользователя сеанса
АвторизованныйПользователь допускает две разновидности ссылок. Пустая ссылка подходит по типу, но не означает авторизации.
Где и как запускать
Полный серверный модуль учебной копии КА2 Progress 2.5.20.75; чтение метаданных и собственная память.
Подготовка
Отдельная учебная копия КА2 Progress 2.5.20.75 из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, платформа 8.5.1.1343. Не рабочая база и не произвольная другая КА2.
Создайте серверный общий модуль УчебныеПаспортаМетаданных. Вставьте полный текст одного урока и вызовите УчебныеПаспортаМетаданных.ВыполнитьПример() из своей учебной команды.
Источники: CommandGroups\Документы.xml; Catalogs\Номенклатура.xml; XDTOPackages\Адрес.xml и Адрес\Ext\Package.bin; SessionParameters\АвторизованныйПользователь.xml.
Исходники и база не меняются. Код не выполняет команды интерфейса, не заполняет параметры настоящего сеанса, не отправляет адрес и не читает персональные данные пользователя.
URI пакета является идентификатором уже установленного XDTO, не адресом для HTTP-запроса. Учебный город и улица вымышленные, объект XDTO создаётся только в памяти.
Активные расширения и язык представлений могут менять сведения. Диагностические строки о расширениях не имеют фиксированного ожидаемого значения.
Процедура ВыполнитьПример() Экспорт
Параметр = Метаданные.ПараметрыСеанса.Найти("АвторизованныйПользователь");
Если Параметр = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого параметра АвторизованныйПользователь";
КонецЕсли;
ОписаниеТипа = Параметр.Тип;
Сообщить(Параметр.Имя = "АвторизованныйПользователь");
Сообщить(ОписаниеТипа.СодержитТип(Тип("СправочникСсылка.Пользователи")));
Сообщить(ОписаниеТипа.СодержитТип(Тип("СправочникСсылка.ВнешниеПользователи")));
Сообщить(НЕ ОписаниеТипа.СодержитТип(Тип("Строка")));
Проба = Справочники.Пользователи.ПустаяСсылка();
Сообщить(ОписаниеТипа.СодержитТип(ТипЗнч(Проба)));
Сообщить(НЕ ЗначениеЗаполнено(Проба));
Сообщить("Допустимый тип не означает заполненного или авторизованного пользователя.");
Сообщить(Параметр.Синоним);
Сообщить(Параметр.Комментарий);
Сообщить(Параметр.ПолноеИмя());
Сообщить(Параметр.Представление());
Сообщить(Параметр.ПринадлежностьОбъекта);
Сообщить(ТипЗнч(Параметр.ОбъектРасширяемойКонфигурации));
Сообщить(Параметр.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(ТипЗнч(Параметр.РасширениеКонфигурации()));
Сообщить(Параметр.Родитель() = Метаданные);
КонецПроцедурыРазбор по шагам
Прочитать метаданные параметра и его ОписаниеТипов. Не обращаться к значению ПараметрыСеанса.АвторизованныйПользователь.
Проверить наличие типов ссылок Пользователи и ВнешниеПользователи и отсутствие типа Строка.
Получить собственное пустое значение ПустаяСсылка: чтение записи справочника не требуется.
Сравнить тип пробы с допустимым описанием, затем отдельно проверить заполненность. Вывести паспорт метаданных, не назначая значение сеансу.
Как проверить результат
Семь фиксированных проверок дают Истина; прочие сообщения диагностические.
Пустая ссылка допустима по типу, но ЗначениеЗаполнено возвращает Ложь. Никаких данных настоящего пользователя не выведено.
Ожидаемый результат
Практическая проверка контракта параметра и различия типа/заполненности.
На что обратить внимание
Допустимый тип не доказывает прав доступа или авторизации.
Чтение настоящего параметра может запускать его инициализацию; для этой проверки оно не нужно.
Не записывайте пустую ссылку в рабочий параметр сеанса по учебному примеру.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Прочитать разные уровни разделения данных без смены области
В КА2 Progress общий реквизит разделяет данные, пользователей, аутентификацию и расширения. Эти настройки не являются текущим значением области пользователя.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Варианты = Метаданные.СвойстваОбъектов;
Описание = Метаданные.ОбщиеРеквизиты.Найти("ОбластьДанныхОсновныеДанные");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует ОбщиеРеквизиты.ОбластьДанныхОсновныеДанные";
КонецЕсли;
Сообщить(Описание.РазделениеДанных = Варианты.РазделениеДанныхОбщегоРеквизита.Разделять);
Сообщить(Описание.ИспользованиеРазделяемыхДанных = Варианты.ИспользованиеРазделяемыхДанныхОбщегоРеквизита.Независимо);
Сообщить(Описание.РазделениеПользователей = Варианты.РазделениеПользователейОбщегоРеквизита.Разделять);
Сообщить(Описание.РазделениеАутентификации = Варианты.РазделениеАутентификацииОбщегоРеквизита.Разделять);
Сообщить(Описание.РазделениеРасширенийКонфигурации = Варианты.РазделениеРасширенийКонфигурацииОбщегоРеквизита.Разделять);
ПараметрОбласти = Описание.ЗначениеРазделенияДанных;
ПараметрИспользования = Описание.ИспользованиеРазделенияДанных;
Если ПараметрОбласти = Неопределено ИЛИ ПараметрИспользования = Неопределено Тогда
ВызватьИсключение "Сверьте назначение двух параметров разделения с XML учебной копии";
КонецЕсли;
Сообщить(ПараметрОбласти.Имя = "ОбластьДанныхЗначение");
Сообщить(ПараметрИспользования.Имя = "ОбластьДанныхИспользование");
Сообщить("Тип условного разделения: " + Строка(ТипЗнч(Описание.УсловноеРазделение)));Разбор по шагам
Пять флагов сравниваются с пятью отдельными контейнерами. Одинаковое слово Разделять не делает их одним типом настройки.
ЗначениеРазделенияДанных и ИспользованиеРазделенияДанных возвращают описания назначенных параметров сеанса, не сами значения параметров пользователя.
Оба назначения проверены до чтения Имя. Фактические параметры сеанса и привилегированный режим не трогаются.
УсловноеРазделение только диагностируется по типу; константа ИспользоватьРазделениеПоОбластямДанных не записывается и не переключается.
Как проверить результат
Семь Истина и диагностический тип условия по этой учебной копии.
Пользователь остался в своей области, новые доступы не назначены.
Ожидаемый результат
Схема разделения прочитана без изменения области и прав.
На что обратить внимание
По метаданным нельзя обещать видимость чужих областей.
Не меняйте параметры разделения в рабочем сеансе ради изучения примера.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.