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

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

Как открыть внешнюю ссылку из 1С

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

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

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

Ниже разобраны все рабочие способы с примерами кода, типичными ошибками и проверкой результата. Материал применим к платформе 1С:Предприятие 8.3 в управляемом приложении; отдельно указаны отличия для обычных форм.

Как открыть ссылку методом ПерейтиПоНавигационнойСсылке

Глобальный метод ПерейтиПоНавигационнойСсылке() — рекомендуемый способ в управляемом приложении. Он доступен на клиенте, не требует разрешений операционной системы и корректно работает в веб-клиенте, где прямой запуск приложений невозможен.

1c
&НаКлиенте
Процедура ОткрытьСайт(Команда)
    ПерейтиПоНавигационнойСсылке("https://example.com/page");
КонецПроцедуры

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

Если адрес формируется динамически (например, из реквизита справочника), перед переходом стоит проверить, что поле заполнено, иначе пользователь получит пустую вкладку браузера или ошибку.

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

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

1c
&НаКлиенте
Процедура ОткрытьСайтЗапуском(Команда)
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗапуска", ЭтотОбъект);
    НачатьЗапускПриложения(ОписаниеОповещения, "https://example.com");
КонецПроцедуры

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

При работе в файловой базе на локальном компьютере этот способ надёжен, но при публикации базы на веб-сервере или в модели сервиса предпочтительнее ПерейтиПоНавигационнойСсылке().

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

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

Универсальный: тонкий, толстый и веб-клиент. Не требует прав ОС. Рекомендуемый вариант.

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

Тонкий и толстый клиент. Позволяет выбрать конкретный браузер или программу. В веб-клиенте ограничен.

Гиперссылка в элементе формы

Без кода: пользователь кликает по надписи. Подходит для статичных ссылок в формах и макетах.

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

Если ссылка статична, её можно разместить прямо в форме. Добавьте элемент «Надпись», в свойстве «Заголовок» укажите текст со ссылкой и включите свойство «Гиперссылка». При клике платформа откроет адрес в браузере.

Второй вариант — поле с видом «Поле надписи», где заголовок содержит форматированную строку со ссылкой. Для динамических адресов создайте обработчик ОбработкаНавигационнойСсылки у поля формы и внутри него вызовите ПерейтиПоНавигационнойСсылке().

Добавление гиперссылки в форму
  1. 1
    Откройте форму в конфигураторе, добавьте элемент типа «Надпись»
  2. 2
    В заголовке укажите текст с адресом, включите свойство «Гиперссылка»
  3. 3
    Для динамической ссылки создайте обработчик Нажатие или ОбработкаНавигационнойСсылки
  4. 4
    В обработчике вызовите ПерейтиПоНавигационнойСсылке с нужным адресом
  5. 5
    Запустите базу в режиме Предприятие и проверьте клик по ссылке

Как открыть ссылку из макета, отчёта или печатной формы

В табличном документе ячейке можно назначить расшифровку или гиперссылку. При выводе отчёта установите в ячейке параметр расшифровки с URL и обработайте событие ОбработкаРасшифровки в форме отчёта, вызвав переход по ссылке.

В HTML-документе (поле вида «Поле HTML документа») ссылки работают нативно, но клики перехватываются событием ПриНажатии — там можно разрешить или запретить переход, анализируя адрес.

Безопасность и типичные ограничения

Никогда не открывайте без проверки ссылки, полученные из недоверенных источников — например, из загруженных файлов обмена или внешних сервисов. Вредоносный адрес может вести на фишинговую страницу, имитирующую вход в банк или сервис.

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

Если база работает под управлением веб-сервера с ограничениями безопасных режимов, запуск приложений на сервере запрещён — выполняйте открытие только на клиенте (директива &НаКлиенте).

Типичные ошибки
01
Вызов запуска приложения на сервере — код &НаСервере не имеет доступа к браузеру пользователя, ссылка не откроется
02
Синхронный ЗапуститьПриложение при запрете синхронных вызовов — ошибка выполнения
03
Отсутствие протокола в адресе (example.com вместо https://example.com) — платформа трактует строку как навигационную ссылку базы
04
Передача секретных данных в URL — утечка через историю браузера и логи

Как проверить, что ссылка открывается корректно

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

Контрольные точки

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

Клик по кнопке или гиперссылке
Норма

Открывается вкладка браузера с нужной страницей

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

Ничего не происходит или переход внутри 1С

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

Новая вкладка открывается без блокировки

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

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

Динамический адрес из реквизита
Норма

Открывается страница с корректными параметрами

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

Пустая страница или ошибка 404

Для диагностики выведите формируемый URL через Сообщить() или запись в журнал регистрации — так видно, какой именно адрес уходит в браузер.

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

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

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

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

Чаще всего вызов происходит не из интерактивного действия пользователя (например, из обработчика ожидания), и браузер блокирует всплывающее окно. Перенесите вызов в обработчик нажатия кнопки или гиперссылки. Также проверьте, что используется ПерейтиПоНавигационнойСсылке, а не запуск приложения.

Как открыть ссылку из фонового задания?

Напрямую — никак: фоновое задание выполняется на сервере и не имеет доступа к интерфейсу пользователя. Вместо этого сохраните ссылку в базе и покажите пользователю оповещение или откройте её при следующем интерактивном действии.

Можно ли открыть файл по протоколу file://?

Технически ПерейтиПоНавигационнойСсылке принимает file://-адреса, но браузеры часто блокируют такие переходы из соображений безопасности, а в веб-клиенте локальные пути сервера недоступны пользователю. Для открытия локальных файлов используйте НачатьЗапускПриложения на тонком или толстом клиенте.

Как передать в ссылке параметры, например номер заказа?

Сформируйте строку URL с параметрами запроса: "https://example.com/order?number=" + НомерЗаказа. Специальные символы в значениях параметров нужно кодировать, иначе адрес может оказаться некорректным. Не передавайте таким способом конфиденциальные данные.

Итог

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

Основной способ открыть внешнюю ссылку в 1С — ПерейтиПоНавигационнойСсылке на клиенте; он работает во всех клиентах, включая веб. НачатьЗапускПриложения пригоден для десктопных клиентов и выбора конкретной программы. Всегда проверяйте протокол адреса и не передавайте секретные данные в URL.