Три поля настоящего АдресРФ заполняются вымышленными строками. Объект не сохраняется в контактную информацию базы.
Где и как запускать
Полный серверный модуль учебной копии КА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 создаётся только в памяти.
Активные расширения и язык представлений могут менять сведения. Диагностические строки о расширениях не имеют фиксированного ожидаемого значения.
Процедура ВыполнитьПример() Экспорт
ОписаниеПакета = Метаданные.ПакетыXDTO.Найти("Адрес");
Если ОписаниеПакета = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого пакета Адрес";
КонецЕсли;
ТипАдреса = ФабрикаXDTO.Тип(ОписаниеПакета.ПространствоИмен, "АдресРФ");
Если ТипАдреса = Неопределено Тогда
ВызватьИсключение "Нет типа АдресРФ в подтверждённом пакете";
КонецЕсли;
УчебныйАдрес = ФабрикаXDTO.Создать(ТипАдреса);
УчебныйАдрес.СубъектРФ = "Учебная область";
УчебныйАдрес.Город = "Учебный город";
УчебныйАдрес.Улица = "Учебная улица";
Сообщить(ОписаниеПакета.Имя = "Адрес");
Сообщить(ОписаниеПакета.Пакет = Неопределено);
Сообщить(ТипЗнч(УчебныйАдрес) = Тип("ОбъектXDTO"));
Сообщить(УчебныйАдрес.СубъектРФ = "Учебная область");
Сообщить(УчебныйАдрес.Город = "Учебный город");
Сообщить(УчебныйАдрес.Улица = "Учебная улица");
Сообщить(ОписаниеПакета.Синоним);
Сообщить(ОписаниеПакета.Комментарий);
Сообщить(ОписаниеПакета.ПолноеИмя());
Сообщить(ОписаниеПакета.Представление());
Сообщить(ОписаниеПакета.ПринадлежностьОбъекта);
Сообщить(ТипЗнч(ОписаниеПакета.ОбъектРасширяемойКонфигурации));
Сообщить(ОписаниеПакета.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(ТипЗнч(ОписаниеПакета.РасширениеКонфигурации()));
Сообщить(ОписаниеПакета.Родитель() = Метаданные);
КонецПроцедурыРазбор по шагам
Получить подтверждённый тип АдресРФ из namespace пакета Адрес.
Создать ОбъектXDTO через ФабрикаXDTO.Создать с типом, а не через Новый АдресРФ.
Заполнить СубъектРФ, Город и Улица. Эти свойства есть в исходном Package.bin и допускают строку.
Сравнить три собственных значения и вывести сведения метаданных. Передача по API, сериализация и полная валидация адреса здесь не выполняются.
Как проверить результат
Семь фиксированных булевых проверок дают Истина; сведения расширений диагностические.
В памяти УчебныйАдрес, у которого три вымышленных значения. Это образец конструирования, не юридически/почтово подтверждённый адрес.
Ожидаемый результат
Реальный объект XDTO из КА2 с конкретными подтверждёнными свойствами.
На что обратить внимание
Имя свойства чувствительно к модели XDTO: не используйте произвольные ключи структуры.
Другой релиз пакета может иметь другую модель. Проверка версии базы и сверка Package.bin обязательны.
Не считайте три заполненных поля полным договором обмена: родительский тип и требования получателя надо проверять отдельно.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.