ПланОбменаСсылка.<Имя плана обмена>.ПолучитьФорму

Методы · GetForm

Получает форму узла, на который указывает ссылка.

Синтаксис

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Полное описание, параметры и ограничения

ПланОбменаСсылка.<Имя плана обмена>.ПолучитьФорму (ExchangePlanRef.<Exchange plan name>.GetForm)

ПланОбменаСсылка.<Имя плана обмена> (ExchangePlanRef.<Exchange plan name>)

ПолучитьФорму (GetForm)

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

Синтаксис:
ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (необязательный)
Тип: Строка, ОбъектМетаданных: Форма.
Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.

<Владелец> (необязательный)
Тип: Форма; Элемент управления.
Объект, который будет являться владельцем открываемой формы.

<КлючУникальности> (необязательный)
Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).
Возвращаемое значение:
Тип: Форма, Неопределено.
Неопределено - если в обработчике ПриСозданииНаСервере установлен признак отказа от создания формы.
Описание:

Получает форму узла, на который указывает ссылка.

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

Толстый клиент.

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

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

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

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

Открыть обычную форму ссылки только собственного подготовленного узла

Отдельный толстоклиентский урок: именованная обычная форма получает реального владельца ЭтаФорма, новый ключ окна и проверку отказа. Серверная транзакция сюда не переносится.

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

Полный модуль собственной ОБЫЧНОЙ формы обработки, толстый клиент с обычным приложением 8.5.1.1343; собственный подготовленный периферийный FORM85. Здесь не запускался.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу. В Конфигураторе имя корня Учебная85; не используйте рабочую базу или копию действующего обмена.

  2. В отдельной пустой конфигурации Учебная85 создайте Планы обмена → УчебныйОбмен: длина кода 9, тип Строка, наименование длиной 100. Распределённая информационная база выключена; состав плана пустой.

  3. Добавьте реквизит АдресУчебногоУзла: Строка длиной 100, Проверка заполнения = Показывать ошибку. Модуль объекта и подписки должны быть пустыми; не добавляйте отправку сообщений или внешние действия.

  4. Добавьте макет УчебнаяПамятка типа Текстовый документ, одна строка: Этот узел используется только для учебных примеров. История данных для плана не включена. Обновите конфигурацию базы данных.

  5. В своём УчебныйОбмен включите автонумерацию и контроль уникальности кода. РИБ выключена, состав пустой, расширений/подписок нет, модули пустые. Никаких HTTP/почтовых обработчиков или регистрации чужих изменений не добавляйте.

  6. Уроки здесь не запускались в 1С. В ваших базах не создавались узлы, не отправлялись и не принимались сообщения; HTML показывает только код и объяснение.

  7. ДатаОбмена по установленной справке означает дату последнего обмена с мобильным клиентом с автономным режимом. Её нельзя объявлять временем любой синхронизации или сетевым тестом.

  8. ВерсияДанных — непрозрачная строка платформы, не номер принятого сообщения. Все свойства ссылки readonly; изменения выполняются только у своего объекта.

  9. Запускайте толстый клиент в режиме обычного приложения. Создайте у своего плана ОБЫЧНУЮ форму узла УчебнаяФормаСсылкиУзла; не управляемую форму. Модуль пустой.

  10. Добавьте обычные поля кода/наименования; выключите для них доступность и не добавляйте кнопки Записать/ОК/Удалить. Форма учебная, без обработчиков отправки/чтения сообщений.

  11. Вручную подготовьте один собственный ПЕРИФЕРИЙНЫЙ узел: Код FORM85, Наименование Собственный учебный узел формы, АдресУчебногоУзла example.invalid. Не используйте текущий узел. Объект создаётся оператором заранее, этот код его не создаёт/не удаляет.

  12. Создайте обычную форму своей обработки с командой ПоказатьУчебныйУзел и вставьте весь код в её модуль. ЭтаФорма — реальный владелец, это не серверный общий модуль.

  13. После просмотра закройте окно вручную без сохранения. Не удерживайте транзакцию пока пользователь рассматривает интерактивную форму.

Процедура ПоказатьУчебныйУзел(Команда)
    Если Метаданные.ПланыОбмена.Найти("УчебныйОбмен") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте собственный учебный план обмена";
    КонецЕсли;
    СсылкаУзла = ПланыОбмена.УчебныйОбмен.НайтиПоКоду("FORM85");
    Если СсылкаУзла.Пустая() Тогда
        ВызватьИсключение "Сначала вручную подготовьте собственный периферийный FORM85";
    КонецЕсли;
    Если СсылкаУзла.ЭтотУзел Или СсылкаУзла.ПометкаУдаления
        Или СсылкаУзла.Наименование <> "Собственный учебный узел формы" Тогда
        ВызватьИсключение "Найденный узел не совпал с подготовленным собственным периферийным узлом";
    КонецЕсли;
    КлючОкна = Новый УникальныйИдентификатор;
    ФормаУзла = СсылкаУзла.ПолучитьФорму("УчебнаяФормаСсылкиУзла", ЭтаФорма, КлючОкна);
    Если ФормаУзла = Неопределено Тогда
        Сообщить("Создание формы отклонено, открытие не выполнено");
        Возврат;
    КонецЕсли;
    ФормаУзла.Открыть();
    Сообщить("Открыта только собственная обычная форма; запись и обмен кодом не выполнялись");
КонецПроцедуры

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

  1. Проверить свою платформу, конфигурацию и подготовленный учебный план.

  2. Найти только FORM85 и проверить имя, отсутствие пометки удаления и ЭтотУзел=Ложь.

  3. Передать именованную обычную форму, настоящую ЭтаФорма и новый UUID ключа уникальности.

  4. Если возвращено Неопределено, сообщить отказ и не вызывать Открыть.

  5. Открыть лишь полученную форму; в коде нет записи, удаления, обмена и удержания транзакции.

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

  1. Открыта обычная УчебнаяФормаСсылкиУзла собственного подготовленного периферийного узла.

  2. Отсутствующий/текущий/неподходящий узел останавливает открытие.

  3. Отказ создания формы не объявляется успехом, сетевых сообщений нет.

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

Использован правильный клиентский контракт формы ссылки на конкретном собственном узле.

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

  1. ПолучитьФорму ссылки доступен толстому клиенту, это не универсальное ОткрытьФорму управляемого приложения.

  2. ЭтотУзел readonly не меняется и не используется как переключатель режима соединения.

  3. Сам код не сохраняет форму. Ручные действия оператора не являются проверенным результатом этого заполнения.

  4. Нельзя заменить проверенный собственный узел первой найденной записью из рабочего обмена.

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

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

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

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

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