ПолеHTMLДокумента.Перейти

Методы · Navigate

Переводит поле HTML-документа на страницу с заданным адресом.

Синтаксис

Перейти(<URL>)
Перейти(<Макет>)

Примеры платформы

Процедура ПриОткрытии()
    ЭлементыФормы.ПолеHTMLДокумента1.Перейти("www.example.com");
КонецПроцедуры
Полное описание, параметры и ограничения

ПолеHTMLДокумента.Перейти (HTMLDocumentField.Navigate)

ПолеHTMLДокумента (HTMLDocumentField)

Перейти (Navigate)

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

Вариант синтаксиса: По URL

Синтаксис:
Перейти(<URL>)
Параметры:

<URL> (обязательный)
Тип: Строка.
URL ресурса, который будет загружен в элемент управления.
Вариант синтаксиса: По объекту метаданных

Синтаксис:
Перейти(<Макет>)
Параметры:

<Макет> (обязательный)
Тип: ОбъектМетаданных: Макет.
Макет HTML-документа, на который должен перейти элемент управления.
Описание:

Переводит поле HTML-документа на страницу с заданным адресом.

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

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

Примечание:
Не доступен в режиме работы Редактирование.
Пример:

// в форме расположен элемент управления ПолеHTMLДокумента1

// типа "ПолеHTMLДокумента"

Процедура ПриОткрытии()
// ...

// для варианта метода "по URL":

ЭлементыФормы.ПолеHTMLДокумента1.Перейти("www.example.com");
// ...

КонецПроцедуры

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

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

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

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

Пройти историю двух собственных HTML-макетов

Перейти принимает объект метаданных макета или его полученный URL. Назад и Вперед проверяются отдельными действиями после загрузки, без сетевых сайтов.

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

Полный модуль своей обычной формы с двумя собственными общими HTML-макетами; только толстый клиент.

Подготовка

  1. Только отдельная учебная конфигурация. В Общие → Общие макеты создайте два макета типа HTML-документ: УчебнаяСтраницаКнига и УчебнаяСтраницаРучка.

  2. Импортируйте соответственно owned-book-page.html и owned-pen-page.html из lesson-assets рядом с руководством. Обе страницы содержат только собственный текст, без JS, внешних ссылок и изображений. Обновите учебную конфигурацию.

  3. Во внешней обработке создайте новую обычную форму, поле HTML УчебныйHTML и пять обычных кнопок: УчебнаяКнига, УчебнаяРучка, УчебнаяНазад, УчебнаяВперед, УчебнаяПроверка. Все кнопки вне HTML-поля.

  4. ПриОткрытии свяжите с процедурой. Другие действия назначаются кодом. Полный модуль вставьте на уровне модуля формы; толстый клиент с обычными формами.

  5. Проверка по шагам: дождитесь книги, нажмите ручку и дождитесь её, Назад и дождитесь книги, Вперед и дождитесь ручки. Проверить нажимайте отдельно после завершения каждого перехода.

Процедура ПриОткрытии()
    Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
    Поле.УстановитьРежим(РежимПоляHTMLДокумента.Просмотр);
    Кнопки = Новый Структура;
    Кнопки.Вставить("УчебнаяКнига", "ОткрытьУчебнуюКнигу");
    Кнопки.Вставить("УчебнаяРучка", "ОткрытьУчебнуюРучку");
    Кнопки.Вставить("УчебнаяНазад", "ВернутьсяКУчебнойСтранице");
    Кнопки.Вставить("УчебнаяВперед", "ПерейтиВпередКУчебнойСтранице");
    Кнопки.Вставить("УчебнаяПроверка", "ПроверитьЗагруженнуюСтраницу");
    Для Каждого Пара Из Кнопки Цикл
        ЭтаФорма.ЭлементыФормы[Пара.Ключ].УстановитьДействие("Нажатие", Новый Действие(Пара.Значение));
    КонецЦикла;
    Макет = ПолучитьСвойМакет("УчебнаяСтраницаКнига");
    Поле.Перейти(Макет);
КонецПроцедуры

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

Процедура ОткрытьУчебнуюКнигу(Элемент) Экспорт
    Макет = ПолучитьСвойМакет("УчебнаяСтраницаКнига");
    ЭтаФорма.ЭлементыФормы.УчебныйHTML.Перейти(Макет);
КонецПроцедуры

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

Процедура ВернутьсяКУчебнойСтранице(Элемент) Экспорт
    ЭтаФорма.ЭлементыФормы.УчебныйHTML.Назад();
КонецПроцедуры

Процедура ПерейтиВпередКУчебнойСтранице(Элемент) Экспорт
    ЭтаФорма.ЭлементыФормы.УчебныйHTML.Вперед();
КонецПроцедуры

Процедура ПроверитьЗагруженнуюСтраницу(Элемент) Экспорт
    ТекстHTML = ЭтаФорма.ЭлементыФормы.УчебныйHTML.ПолучитьТекст();
    Если СтрНайти(ТекстHTML, "Книга: 3") > 0 Тогда
        Сообщить("Сейчас собственная книга: 3");
    ИначеЕсли СтрНайти(ТекстHTML, "Ручка: 1") > 0 Тогда
        Сообщить("Сейчас собственная ручка: 1");
    Иначе
        Сообщить("Подождите завершения перехода и повторите проверку");
    КонецЕсли;
КонецПроцедуры

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

  1. Оба макета созданы и импортированы в учебную конфигурацию. Найти проверяется до возврата объекта; функция допускает только две собственные строки.

  2. Для книги Перейти получает объект метаданных макета. Для ручки ПолучитьURL возвращает внутренний адрес того же собственного ресурса, затем вызывается вариант Перейти по строке. ПриОткрытии загружает книгу напрямую; пять экспортных обработчиков кнопок принимают Элемент и вызываются событиями, а не вместо инициализации.

  3. Назад/Вперед работают с историей загруженных ресурсов, не с реквизитом товара. В режиме Редактирование они недоступны: здесь явно Просмотр.

  4. Загрузка может быть асинхронной. Команда Проверить вызывается пользователем после перехода, а не немедленно вслед за Перейти.

  5. Проверка ищет значимый текст. Новая навигация может поменять историю; выполняйте указанную последовательность на свежей форме.

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

  1. Проверить после открытия: собственная книга 3; после ручки: собственная ручка 1.

  2. Назад → книга 3; Вперед → ручка 1. Проверка не меняет документ или историю.

  3. Не было HTTP-адресов, запуска сценариев или обхода политики безопасности.

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

Показаны оба варианта Перейти и история реальных собственных макетов.

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

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

  2. Не заменяйте внутренний URL внешним сайтом и не обходите ограничения доступа к чужому DOM.

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

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

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

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

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