Тип: ПланОбменаСсылка.<Имя плана обмена>. Содержит ссылку на узел. Это значение может быть записано в базу данных для полей соответствующего типа.
Полное описание, параметры и ограничения
ПланОбменаСсылка.<Имя плана обмена>.Ссылка (ExchangePlanRef.<Exchange plan name>.Ref)
ПланОбменаСсылка.<Имя плана обмена> (ExchangePlanRef.<Exchange plan name>)
Ссылка (Ref)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: ПланОбменаСсылка.<Имя плана обмена>.
Содержит ссылку на узел. Это значение может быть записано в базу данных для полей соответствующего типа.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Так как ПланОбменаОбъект.<Имя плана обмена> и ПланОбменаВыборка.<Имя плана обмена> имеют одноименное свойство, то при обращении в программном модуле к данному свойству переданного в процедуру или функцию параметра не потребуется определять тип параметра: ПланОбменаСсылка.<Имя плана обмена>, ПланОбменаОбъект.<Имя плана обмена> или ПланОбменаВыборка.<Имя плана обмена>.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Прочитать паспорт ссылки своего временного периферийного узла
Свой узел записывается в отменяемой транзакции. Через реальную ссылку сравниваются идентичность, имя, счётчики, дата мобильного обмена, версия и собственные метаданные.
Где и как запускать
Полный серверный модуль своей новой пустой Учебная85, платформа 8.5.1.1343. Только собственный периферийный узел, никакого настоящего обмена; здесь не запускался.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу. В Конфигураторе имя корня Учебная85; не используйте рабочую базу или копию действующего обмена.
В отдельной пустой конфигурации Учебная85 создайте Планы обмена → УчебныйОбмен: длина кода 9, тип Строка, наименование длиной 100. Распределённая информационная база выключена; состав плана пустой.
Добавьте реквизит АдресУчебногоУзла: Строка длиной 100, Проверка заполнения = Показывать ошибку. Модуль объекта и подписки должны быть пустыми; не добавляйте отправку сообщений или внешние действия.
Добавьте макет УчебнаяПамятка типа Текстовый документ, одна строка: Этот узел используется только для учебных примеров. История данных для плана не включена. Обновите конфигурацию базы данных.
В своём УчебныйОбмен включите автонумерацию и контроль уникальности кода. РИБ выключена, состав пустой, расширений/подписок нет, модули пустые. Никаких HTTP/почтовых обработчиков или регистрации чужих изменений не добавляйте.
Уроки здесь не запускались в 1С. В ваших базах не создавались узлы, не отправлялись и не принимались сообщения; HTML показывает только код и объяснение.
ДатаОбмена по установленной справке означает дату последнего обмена с мобильным клиентом с автономным режимом. Её нельзя объявлять временем любой синхронизации или сетевым тестом.
ВерсияДанных — непрозрачная строка платформы, не номер принятого сообщения. Все свойства ссылки readonly; изменения выполняются только у своего объекта.
Создайте серверный общий модуль УчебныеСсылкиОбмена и вставьте весь модуль отдельного урока. ВыполнитьПример() Экспорт вызывайте из собственной процедуры формы с &НаСервереБезКонтекста.
Транзакционные уроки временно записывают только свой новый периферийный узел и всегда откатывают запись. Не заменяйте ОтменитьТранзакцию фиксацией; внутри чужой транзакции модуль не допускается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.ПланыОбмена.Найти("УчебныйОбмен") = Неопределено Тогда
ВызватьИсключение "Сначала создайте собственный учебный план обмена";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Не запускайте урок внутри чужой транзакции";
КонецЕсли;
СвояСсылка = ПланыОбмена.УчебныйОбмен.ПолучитьСсылку(Новый УникальныйИдентификатор);
Если СвояСсылка.ПолучитьОбъект() <> Неопределено Тогда
ВызватьИсключение "Свой UUID уже используется, нужно новое значение";
КонецЕсли;
НачатьТранзакцию();
Попытка
Узел = ПланыОбмена.УчебныйОбмен.СоздатьУзел();
Если Узел.ЭтотУзел Тогда
ВызватьИсключение "Нельзя использовать текущий узел базы";
КонецЕсли;
Узел.УстановитьСсылкуНового(СвояСсылка);
Узел.УстановитьНовыйКод("У");
Узел.Наименование = "Свой временный учебный узел";
Узел.АдресУчебногоУзла = "example.invalid";
Узел.Наименование = "Собственный паспорт узла";
Узел.Записать();
Читаемая = Узел.Ссылка;
Если Читаемая.ЭтотУзел Тогда
ВызватьИсключение "Ожидалась ссылка только своего нового периферийного узла";
КонецЕсли;
Сообщить(Читаемая.Код = Узел.Код);
Сообщить(Читаемая.Наименование = "Собственный паспорт узла");
Сообщить(Читаемая.Ссылка = СвояСсылка);
Сообщить(Не Читаемая.ЭтотУзел);
Сообщить(Не Читаемая.ПометкаУдаления);
Сообщить(Читаемая.НомерОтправленного = 0);
Сообщить(Читаемая.НомерПринятого = 0);
Сообщить(ТипЗнч(Читаемая.ДатаОбмена) = Тип("Дата"));
Сообщить(Читаемая.ДатаОбмена = Узел.ДатаОбмена);
Сообщить(ТипЗнч(Читаемая.ВерсияДанных) = Тип("Строка"));
Описание = Читаемая.Метаданные();
Сообщить(Описание.Имя = "УчебныйОбмен");
Сообщить("ДатаОбмена — поле мобильного автономного обмена; передачу этот урок не выполнял");
ОтменитьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
Сообщить(СвояСсылка.ПолучитьОбъект() = Неопределено);
КонецПроцедурыРазбор по шагам
Сначала убедиться, что чужой транзакции нет, и зарезервировать собственную отсутствующую ссылку нового UUID.
Создать только периферийный объект, назначить ему свою ссылку и заполнить требуемый учебный адрес.
Записать свой узел внутри новой транзакции; читать поля только по настоящей сохранённой ссылке.
ЭтотУзел указывает текущую базу, не факт соединения; здесь он Ложь. Счётчики нового узла не подтверждают передачу.
Проверить тип даты и равенство объекту, без угадывания даты. Версия — строка, а имя метаданных — УчебныйОбмен.
Отменить транзакцию и подтвердить отсутствие собственного узла по его ссылке.
Как проверить результат
Одиннадцать сравнений паспорта Истина и две проверки итогового отката.
Ни одному свойству Читаемая ничего не присваивается.
Сообщения обмена не отправлены, текущий узел базы не изменён.
Ожидаемый результат
Все девять readonly-свойств ссылки разобраны на собственном сохранённом периферийном объекте с откатом.
На что обратить внимание
Новый UUID и непустая ссылка не подтверждают существование узла; отдельно проверяется ПолучитьОбъект.
Нулевые счётчики и дата не доказывают успешный обмен. Этот блок не формирует/не читает сообщения и не открывает соединения.
Не присваивайте свойствам ссылки и не устанавливайте ЭтотУзел=Истина для имитации текущей базы.
Откат базы не отменяет внешние действия обработчиков, поэтому урок допускается только в своей пустой конфигурации с пустыми модулями и подписками.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.