К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как открыть веб-ссылку из 1С: рабочие способы и примеры кода

Как открыть веб-ссылку из 1С: методы ПерейтиПоНавигационнойСсылке, НачатьЗапускПриложения, ЗапуститьПриложение. Примеры кода, ошибки и настройка браузера.

Открытие веб-ссылки из 1С — типовая задача: перейти на сайт поставщика из карточки контрагента, открыть страницу оплаты, отобразить онлайн-документацию или личный кабинет сервиса. В зависимости от режима работы (толстый клиент, тонкий клиент, веб-клиент) и версии платформы используются разные методы встроенного языка.

Основная сложность в том, что поведение одного и того же кода отличается на клиенте и на сервере, а в веб-клиенте действуют ограничения безопасности браузера. Ниже разобраны рабочие способы с примерами, их ограничения и типичные ошибки.

Какой способ выбрать: краткий обзор

В платформе 1С есть три основных подхода к открытию веб-ссылки. Первый — метод ПерейтиПоНавигационнойСсылке(), предназначенный специально для управляемых форм: он корректно работает в тонком и веб-клиенте. Второй — запуск внешнего приложения через НачатьЗапускПриложения() или устаревший ЗапуститьПриложение(), где URL передаётся операционной системе и открывается браузером по умолчанию. Третий — открытие ссылки внутри самой 1С через поле HTML-документа, когда страницу нужно показать, не покидая программу.

Выбор зависит от контекста: где выполняется код (клиент или сервер), какой клиент используется и нужно ли показывать страницу внутри формы. Ниже каждый способ разобран подробно.

Сравнение способов

ПерейтиПоНавигационнойСсылке

Рекомендуемый способ для управляемых форм; работает в тонком и веб-клиенте; только на клиенте

НачатьЗапускПриложения

Универсальный асинхронный запуск через ОС; требует обработчика оповещения; открывает браузер по умолчанию

ЗапуститьПриложение

Простой синхронный вызов; не работает в веб-клиенте; считается устаревшим

Поле HTML-документа

Показывает страницу внутри формы 1С; зависит от движка браузера платформы; не все современные сайты отображаются корректно

Открытие ссылки через ПерейтиПоНавигационнойСсылке

Метод ПерейтиПоНавигационнойСсылке() — штатный способ для управляемого приложения. Он принимает строку URL и открывает её в браузере по умолчанию. Код размещается в клиентской процедуре формы, например в обработчике команды или нажатия на надпись.

&НаКлиенте

Процедура ОткрытьСайт(Команда)

ПерейтиПоНавигационнойСсылке("https://example.com/page?id=123");

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

Метод работает в тонком, толстом и веб-клиенте. В веб-клиенте браузер может заблокировать открытие новой вкладки, если вызов не связан с действием пользователя (например, при автоматическом открытии без клика). Поэтому привязывайте переход к команде или событию нажатия.

Если адрес собирается динамически, обязательно кодируйте параметры. Для этого удобно сформировать строку через конкатенацию с предварительной обработкой значений, содержащих кириллицу или спецсимволы.

Запуск браузера через НачатьЗапускПриложения

Метод НачатьЗапускПриложения() запускает внешнее приложение асинхронно. Если передать ему URL, операционная система сама выберет браузер по умолчанию и откроет страницу. Это универсальный способ, который подходит и для обычного приложения.

&НаКлиенте

Процедура ОткрытьСайт(Команда)

ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗапускаПриложения", ЭтотОбъект);

НачатьЗапускПриложения(ОписаниеОповещения, "https://example.com");

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

&НаКлиенте

Процедура ПослеЗапускаПриложения(КодВозврата, ДополнительныеПараметры) Экспорт

// Обработка завершения, если требуется

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

Если обработка результата не нужна, описание оповещения можно не передавать — вызов всё равно выполнится. Метод работает в тонком и толстом клиенте; в веб-клиенте запуск приложений ограничен настройками безопасности браузера и обычно недоступен.

Устаревший метод ЗапуститьПриложение

В старых конфигурациях часто встречается ЗапуститьПриложение("https://...") — синхронный метод, который блокирует выполнение до завершения запуска. Он по-прежнему работает в толстом и тонком клиенте, но считается устаревшим: в новых разработках рекомендуется НачатьЗапускПриложения().

Ещё один исторический приём — ЗапуститьПриложение("cmd /c start " + Адрес) для принудительного открытия через командную строку Windows. Такой вариант привязан к конкретной ОС и не сработает на Linux-клиентах, поэтому применять его стоит только при явной необходимости.

Открытие страницы внутри 1С через поле HTML-документа

Если страницу нужно показать внутри формы — например, карту, виджет или справку — используется реквизит формы типа «Строка» с элементом «Поле HTML-документа». Достаточно присвоить реквизиту адрес страницы:

&НаКлиенте

Процедура ПоказатьСтраницу(Команда)

АдресСтраницы = "https://example.com/map";

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

Учтите ограничение: платформа использует встроенный браузерный движок, который не всегда поддерживает современные веб-стандарты. Сложные сайты с актуальным JavaScript могут отображаться некорректно или не работать вовсе. Для полноценного просмотра надёжнее открывать ссылку во внешнем браузере.

Открытие ссылки из обычного приложения

В обычных формах (конфигурации на платформе 8.2 и ранние режимы совместимости) метод ПерейтиПоНавигационнойСсылке() недоступен. Стандартный вариант — ЗапуститьПриложение() с URL:

Процедура КнопкаОткрытьНажатие(Элемент)

ЗапуститьПриложение("https://example.com");

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

Также в обычном приложении ссылки в полях ввода и надписях можно делать кликабельными через обработчик события «ОбработкаРасшифровки» или гиперссылки в форматированном документе, но для простого перехода достаточно запуска приложения.

Порядок действий для управляемой формы
  1. 1
    Добавьте на форму команду или надпись-гиперссылку
  2. 2
    Создайте клиентский обработчик с директивой &НаКлиенте
  3. 3
    Вызовите ПерейтиПоНавигационнойСсылке с нужным URL
  4. 4
    Проверьте открытие в тонком клиенте и, если используется, в веб-клиенте
  5. 5
    Убедитесь, что адрес корректно кодируется при наличии кириллицы и параметров

Проверка результата и типичные ошибки

После внедрения проверьте сценарий во всех клиентах, которые реально используются в организации: поведение в тонком клиенте и в браузере может отличаться. Особое внимание уделите ссылкам с параметрами — часто проблемы возникают именно из-за неэкранированных символов.

Типичные ошибки
01
Вызов метода на сервере — открыть браузер можно только в клиентском контексте; на сервере код завершится ошибкой
02
Отсутствие префикса http:// или https:// — система не распознает строку как веб-адрес и не откроет страницу
03
Некодированная кириллица в параметрах URL — сервер получит битую ссылку
04
Открытие ссылки без действия пользователя в веб-клиенте — браузер блокирует всплывающее окно
05
Использование cmd /c start без учёта ОС — код не работает на Linux-клиентах
Контрольные точки

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

Открытие в тонком клиенте
Норма

Страница открывается в браузере по умолчанию

Тревожный признак

Ничего не происходит или ошибка выполнения

URL с параметрами
Норма

Параметры доходят до сайта в корректном виде

Тревожный признак

Кириллица превращается в нечитаемые символы

Веб-клиент
Норма

Новая вкладка открывается по клику пользователя

Тревожный признак

Браузер блокирует переход как всплывающее окно

Если ссылка одна и та же для многих объектов (например, страница сервиса), храните базовый адрес в константе или настройках, а не зашивайте в код — при смене адреса не придётся обновлять конфигурацию.
ПЗ
Практическое замечание

Частые вопросы

Почему ПерейтиПоНавигационнойСсылке не работает на сервере?

Открытие браузера — операция пользовательского интерфейса, а на сервере интерфейса нет. Перенесите вызов в клиентскую процедуру формы: сервер может лишь подготовить строку адреса и вернуть её клиенту.

Как открыть ссылку в конкретном браузере, а не в браузере по умолчанию?

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

Почему в веб-клиенте ссылка не открывается?

Чаще всего браузер блокирует всплывающие окна: переход разрешён только как реакция на действие пользователя. Привяжите открытие к клику по кнопке или гиперссылке и проверьте настройки блокировки всплывающих окон в браузере.

Как передать в ссылке кириллические значения?

Значения параметров нужно закодировать в формат URL (percent-encoding). Во встроенном языке нет отдельной универсальной функции кодирования для всех версий платформы, поэтому часто используют КодироватьСтроку с учётом способа кодирования или формируют адрес через объекты работы с HTTP.

Можно ли открыть ссылку автоматически при открытии формы?

Технически можно вызвать метод в обработчике ПриОткрытии, но в веб-клиенте такой переход почти наверняка будет заблокирован браузером. Надёжнее показать пользователю кнопку или гиперссылку для явного перехода.

Чем отличается навигационная ссылка от обычного URL?

Навигационная ссылка в 1С — это адрес внутреннего объекта информационной базы (документа, элемента справочника), который начинается с e1cib. Метод ПерейтиПоНавигационнойСсылке умеет обрабатывать оба вида: внутренние ссылки открываются внутри 1С, а адреса http/https — во внешнем браузере.

Итог

Что важно запомнить

В управляемом приложении открывайте веб-ссылки через ПерейтиПоНавигационнойСсылке в клиентском коде; для универсальных сценариев подойдёт НачатьЗапускПриложения. Всегда добавляйте протокол http:// или https://, кодируйте параметры и проверяйте поведение во всех используемых клиентах.