Разработка и Конфигурация · 9 мин
Как открыть веб-ссылку из 1С: рабочие способы и примеры кода
Как открыть веб-ссылку из 1С: методы ПерейтиПоНавигационнойСсылке, НачатьЗапускПриложения, ЗапуститьПриложение. Примеры кода, ошибки и настройка браузера.
Открытие веб-ссылки из 1С — типовая задача: перейти на сайт поставщика из карточки контрагента, открыть страницу оплаты, отобразить онлайн-документацию или личный кабинет сервиса. В зависимости от режима работы (толстый клиент, тонкий клиент, веб-клиент) и версии платформы используются разные методы встроенного языка.
Основная сложность в том, что поведение одного и того же кода отличается на клиенте и на сервере, а в веб-клиенте действуют ограничения безопасности браузера. Ниже разобраны рабочие способы с примерами, их ограничения и типичные ошибки.
Какой способ выбрать: краткий обзор
В платформе 1С есть три основных подхода к открытию веб-ссылки. Первый — метод ПерейтиПоНавигационнойСсылке(), предназначенный специально для управляемых форм: он корректно работает в тонком и веб-клиенте. Второй — запуск внешнего приложения через НачатьЗапускПриложения() или устаревший ЗапуститьПриложение(), где URL передаётся операционной системе и открывается браузером по умолчанию. Третий — открытие ссылки внутри самой 1С через поле 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Добавьте на форму команду или надпись-гиперссылку
- 2Создайте клиентский обработчик с директивой &НаКлиенте
- 3Вызовите ПерейтиПоНавигационнойСсылке с нужным URL
- 4Проверьте открытие в тонком клиенте и, если используется, в веб-клиенте
- 5Убедитесь, что адрес корректно кодируется при наличии кириллицы и параметров
Проверка результата и типичные ошибки
После внедрения проверьте сценарий во всех клиентах, которые реально используются в организации: поведение в тонком клиенте и в браузере может отличаться. Особое внимание уделите ссылкам с параметрами — часто проблемы возникают именно из-за неэкранированных символов.
Как проверить результат
Страница открывается в браузере по умолчанию
Ничего не происходит или ошибка выполнения
Параметры доходят до сайта в корректном виде
Кириллица превращается в нечитаемые символы
Новая вкладка открывается по клику пользователя
Браузер блокирует переход как всплывающее окно
Если ссылка одна и та же для многих объектов (например, страница сервиса), храните базовый адрес в константе или настройках, а не зашивайте в код — при смене адреса не придётся обновлять конфигурацию.
Частые вопросы
Почему ПерейтиПоНавигационнойСсылке не работает на сервере?
Открытие браузера — операция пользовательского интерфейса, а на сервере интерфейса нет. Перенесите вызов в клиентскую процедуру формы: сервер может лишь подготовить строку адреса и вернуть её клиенту.
Как открыть ссылку в конкретном браузере, а не в браузере по умолчанию?
Передайте в НачатьЗапускПриложения путь к исполняемому файлу браузера, а URL укажите отдельным параметром командной строки. Учтите, что путь к браузеру может отличаться на разных компьютерах, поэтому такой подход требует настройки для каждого рабочего места.
Почему в веб-клиенте ссылка не открывается?
Чаще всего браузер блокирует всплывающие окна: переход разрешён только как реакция на действие пользователя. Привяжите открытие к клику по кнопке или гиперссылке и проверьте настройки блокировки всплывающих окон в браузере.
Как передать в ссылке кириллические значения?
Значения параметров нужно закодировать в формат URL (percent-encoding). Во встроенном языке нет отдельной универсальной функции кодирования для всех версий платформы, поэтому часто используют КодироватьСтроку с учётом способа кодирования или формируют адрес через объекты работы с HTTP.
Можно ли открыть ссылку автоматически при открытии формы?
Технически можно вызвать метод в обработчике ПриОткрытии, но в веб-клиенте такой переход почти наверняка будет заблокирован браузером. Надёжнее показать пользователю кнопку или гиперссылку для явного перехода.
Чем отличается навигационная ссылка от обычного URL?
Навигационная ссылка в 1С — это адрес внутреннего объекта информационной базы (документа, элемента справочника), который начинается с e1cib. Метод ПерейтиПоНавигационнойСсылке умеет обрабатывать оба вида: внутренние ссылки открываются внутри 1С, а адреса http/https — во внешнем браузере.
Что важно запомнить
В управляемом приложении открывайте веб-ссылки через ПерейтиПоНавигационнойСсылке в клиентском коде; для универсальных сценариев подойдёт НачатьЗапускПриложения. Всегда добавляйте протокол http:// или https://, кодируйте параметры и проверяйте поведение во всех используемых клиентах.