Разработка и Конфигурация · 11 мин
Как в 1С открыть ссылку в браузере
Как в 1С открыть ссылку в браузере: ЗапуститьПриложение, ПерейтиПоНавигационнойСсылке, обработка нажатия на гиперссылку в форме и типичные ошибки.
Открытие веб-ссылки из 1С — частая задача: перейти на сайт контрагента из карточки, открыть страницу документации, показать пользователю отчёт на портале или перейти по ссылке из письма. В зависимости от версии платформы и режима работы (толстый клиент, тонкий клиент, веб-клиент) задача решается несколькими способами, и у каждого есть свои ограничения.
Главное, что нужно понимать: 1С не «встраивает» браузер внутрь себя (за исключением специального поля HTML-документа), а передаёт ссылку операционной системе, которая открывает её в браузере по умолчанию. Поэтому корректность результата зависит и от кода, и от настроек рабочего места: какой браузер назначен по умолчанию, не заблокирован ли запуск внешних приложений, есть ли у пользователя доступ в интернет.
Ниже разобраны рабочие способы: универсальная команда запуска приложения, метод для навигационных ссылок, открытие ссылки из поля формы и из HTML-поля, а также типичные ошибки, из-за которых браузер не открывается или открывает «пустую» страницу.
Способ 1. ЗапуститьПриложение — универсальный вариант
Метод ЗапуститьПриложение("https://пример.ru") — самый простой и распространённый способ. Платформа передаёт строку операционной системе, и та открывает её ассоциированным приложением. Для адреса, начинающегося с http:// или https://, это будет браузер по умолчанию.
Пример кода для кнопки в форме:
&НаКлиенте
Процедура ОткрытьСайт(Команда)
ЗапуститьПриложение("https://v8.1c.ru");
КонецПроцедуры
Важный нюанс: если передать строку без протокола (например, "v8.1c.ru" или "www.v8.1c.ru"), система может попытаться найти исполняемый файл с таким именем, и ничего не откроется. Всегда добавляйте протокол https:// в начало адреса.
Метод работает в толстом и тонком клиенте. В веб-клиенте поведение зависит от браузера: обычно ссылка открывается в новой вкладке, но некоторые браузеры могут блокировать всплывающие окна, если запуск не связан напрямую с действием пользователя.
Способ 2. НачатьЗапускПриложения — асинхронный вариант для управляемых форм
В управляемых формах платформа рекомендует асинхронные методы. НачатьЗапускПриложения выполняет ту же задачу, но позволяет получить результат: открылось приложение или произошла ошибка. Это удобно, когда нужно сообщить пользователю о неудаче, а не молча «проглотить» проблему.
&НаКлиенте
Процедура ОткрытьСайт(Команда)
Оповещение = Новый ОписаниеОповещения("ПослеЗапускаПриложения", ЭтотОбъект);
НачатьЗапускПриложения(Оповещение, "https://v8.1c.ru");
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗапускаПриложения(КодВозврата, ДополнительныеПараметры) Экспорт
// КодВозврата = 0 — запуск выполнен успешно
КонецПроцедуры
Если конфигурация работает в режиме совместимости со старыми версиями платформы, где асинхронные вызовы недоступны, остаётся синхронный ЗапуститьПриложение. В новых разработках предпочтителен асинхронный вариант — он не блокирует интерфейс и корректно работает в веб-клиенте.
Способ 3. ПерейтиПоНавигационнойСсылке — для ссылок внутри базы
Если нужно открыть не внешний сайт, а объект самой информационной базы (документ, элемент справочника, отчёт), используйте ПерейтиПоНавигационнойСсылке. Метод принимает навигационную ссылку вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=... и открывает соответствующую форму.
Навигационную ссылку на объект можно получить через ПолучитьНавигационнуюСсылку(Объект) на сервере или скопировать вручную: в форме объекта — меню «Ещё» → «Получить ссылку». Этот же механизм используется, когда пользователь делится ссылкой на документ с коллегой.
Интересная деталь: ПерейтиПоНавигационнойСсылке умеет работать и с веб-адресами — если передать ему https://-ссылку, платформа откроет её в браузере, как и ЗапуститьПриложение. Это делает метод удобным «единым входом», когда заранее неизвестно, внутренняя ссылка или внешняя.
Сравнение способов
Простой синхронный вызов. Подходит для толстого/тонкого клиента и старых режимов совместимости. Не сообщает об ошибке запуска.
Асинхронный вариант для управляемых форм и веб-клиента. Позволяет обработать результат, но требует описания оповещения.
Для внутренних ссылок на объекты базы; внешние https-ссылки тоже открывает в браузере. Не подходит для запуска файлов и программ.
Открытие ссылки из поля формы и из надписи
Частый сценарий — реквизит «Сайт» в карточке контрагента или организации. Чтобы пользователь мог кликнуть по значению и перейти на сайт, добавьте кнопку рядом с полем или обработайте событие нажатия. Минимальный вариант — кнопка с командой:
&НаКлиенте
Процедура ОткрытьСайтКонтрагента(Команда)
Адрес = СокрЛП(Объект.Сайт);
Если ПустаяСтрока(Адрес) Тогда
ПоказатьПредупреждение(, "Сайт не заполнен");
Возврат;
КонецЕсли;
Если СтрНайти(Адрес, "://") = 0 Тогда
Адрес = "https://" + Адрес;
КонецЕсли;
НачатьЗапускПриложения(, Адрес);
КонецПроцедуры
Обратите внимание на нормализацию адреса: пользователи часто вводят сайт без протокола, поэтому код сам добавляет https://, если схема не указана. Это простая проверка избавляет от большинства жалоб «ссылка не открывается».
Для декорации-надписи можно включить свойство «Гиперссылка» и обработать событие Нажатие. Внутри обработчика — тот же вызов запуска приложения с нужным адресом. Такой подход удобен для фиксированных ссылок: инструкций, личного кабинета, страницы поддержки.
Открытие ссылок из HTML-поля и форматированного документа
Если в форме используется поле HTML-документа, клики по ссылкам внутри него по умолчанию обрабатываются самим полем. Чтобы внешние ссылки открывались в браузере, а не внутри поля, нужно перехватить событие ПриНажатии поля HTML и отменить стандартную обработку:
&НаКлиенте
Процедура ПолеHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
Ссылка = ДанныеСобытия.Href;
Если Не ПустаяСтрока(Ссылка) Тогда
СтандартнаяОбработка = Ложь;
НачатьЗапускПриложения(, Ссылка);
КонецЕсли;
КонецПроцедуры
В форматированном документе ситуация похожая: ссылки открываются встроенным механизмом, и для внешних адресов платформа обычно сама предлагает открыть браузер. Если нужен особый сценарий (например, логировать переходы), перехватывайте событие нажатия и обрабатывайте ссылку вручную.
Почему ссылка не открывается: проверка и типичные ошибки
Если после вызова ничего не происходит, проверяйте по порядку: есть ли в строке протокол, не заблокирован ли запуск внешних приложений настройками безопасности, назначен ли в системе браузер по умолчанию. В веб-клиенте дополнительно проверьте, не блокирует ли браузер всплывающие окна для данного сайта.
Отдельный случай — защита от опасных действий. Если конфигурация открыта с предупреждением безопасности или пользователь работает с ограниченными правами, платформа может запросить подтверждение на запуск приложения или заблокировать его. В журнале регистрации такие события обычно отражаются, что помогает диагностике.
Как проверить результат
Строка начинается с http:// или https://
Адрес без протокола — система ищет файл и ничего не открывает
Открывается браузер по умолчанию с нужной страницей
Ничего не происходит или появляется ошибка запуска
Ссылка открывается в новой вкладке
Браузер блокирует всплывающее окно — проверьте настройки блокировщика
Запуск выполняется без предупреждений
Платформа показывает запрос подтверждения или отклоняет запуск
Открытие ссылки без программирования
Не всегда нужен код. В типовых конфигурациях многие ссылки уже кликабельны: адреса в письмах из встроенной почты, ссылки в задачах и обсуждениях, навигационные ссылки из команды «Получить ссылку». Достаточно скопировать адрес и вставить его в браузер вручную.
Если ссылка хранится в текстовом реквизите (например, «Сайт» в карточке контрагента), пользователь может выделить значение, скопировать его (Ctrl+C) и вставить в адресную строку браузера. Это медленнее, чем кнопка, но не требует доработки конфигурации — важно, когда нет прав на изменение кода или конфигурация на поддержке.
Если кнопку «Открыть сайт» добавляете в типовую конфигурацию, делайте это через расширение, а не изменение основной конфигурации. Так доработка переживёт обновления, а снятие расширения вернёт типовое поведение без потери данных.
Как выбрать подходящий способ
Для разовой кнопки в форме достаточно ЗапуститьПриложение с проверкой и нормализацией адреса. Для новых управляемых форм и веб-клиента берите НачатьЗапускПриложения — он соответствует рекомендациям платформы и даёт контроль над результатом.
Для переходов внутри базы используйте только навигационные ссылки и ПерейтиПоНавигационнойСсылке. А если ссылок много и они хранятся в данных, добавьте единую процедуру открытия с проверкой протокола — это закроет и вопрос безопасности, и большинство ошибок ввода.
Что важно запомнить
Внешнюю ссылку открывают ЗапуститьПриложение или НачатьЗапускПриложения — адрес должен начинаться с http:// или https://. Внутренние объекты базы открывают через ПерейтиПоНавигационнойСсылке. Запуск возможен только на клиенте, а ссылки из недоверенных данных нужно проверять перед передачей системе.
Частые вопросы
Можно ли открыть ссылку в конкретном браузере, а не в браузере по умолчанию?
Да, но для этого придётся запускать сам исполняемый файл браузера с адресом в параметрах, например указать путь к chrome.exe и передать ссылку аргументом. Такой способ привязан к конкретному компьютеру и путям установки, поэтому в типовых решениях его избегают: надёжнее открывать ссылку в браузере по умолчанию.
Почему ЗапуститьПриложение выдаёт ошибку «Метод недоступен»?
Скорее всего, вызов выполняется на сервере. Запуск приложений возможен только в клиентском контексте — в процедурах с директивой &НаКлиенте. Перенесите вызов в клиентский обработчик, а данные для ссылки при необходимости получите с сервера заранее.
Как открыть ссылку в веб-клиенте, если браузер блокирует всплывающие окна?
Блокировка обычно срабатывает, когда открытие не связано напрямую с действием пользователя. Вызывайте запуск именно из обработчика нажатия кнопки или ссылки, а не из фонового обработчика ожидания. Если проблема остаётся, пользователю нужно разрешить всплывающие окна для адреса веб-клиента в настройках браузера.
Можно ли открыть навигационную ссылку e1cib в обычном браузере?
Напрямую — нет: схему e1cib понимает только платформа 1С. Но если база опубликована на веб-сервере, можно сформировать веб-ссылку вида https://сервер/база/#e1cib/... — тогда браузер откроет веб-клиент сразу на нужном объекте. Получить такую ссылку можно через «Получить ссылку» при работе в веб-клиенте.
Как открыть ссылку из макета или печатной формы?
В табличном документе ячейке можно назначить расшифровку или гиперссылку. При просмотре печатной формы клик по такой ячейке вызовет обработчик расшифровки, в котором вы выполняете НачатьЗапускПриложения с нужным адресом. Сама по себе ячейка табличного документа браузер не открывает — нужен обработчик.
Безопасно ли открывать ссылки, которые присылают контрагенты в письмах?
Перед открытием стоит проверять адрес: домен должен соответствовать ожидаемому, без подозрительных подстановок и лишних поддоменов. В коде полезно ограничить схемы только http и https, отсекая file:// и другие протоколы. Это защищает от случайного запуска локальных файлов и сценариев.