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

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

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

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

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

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

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

Способ 1. ПерейтиПоНавигационнойСсылке — универсальный вариант

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

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

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

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

Способ 2. Запуск конкретного браузера через ЗапуститьПриложение

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

// Асинхронный вариант (рекомендуется)

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

НачатьЗапускПриложения(Оповещение, "C:\Program Files\Google\Chrome\Application\chrome.exe https://example.ru");

Главная проблема способа — путь к браузеру различается на разных компьютерах. Chrome может стоять в Program Files, в профиле пользователя или вовсе отсутствовать. Жёстко прописанный путь гарантированно сломается у части пользователей. Практичный компромисс — запуск команды start через командный интерпретатор Windows, который сам найдёт браузер по умолчанию:

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

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

Способ 3. Встроенный браузер в форме 1С

Если страницу нужно показать внутри окна 1С, а не во внешнем браузере, используется поле вида «Поле HTML-документа». На форму добавляется реквизит типа «Строка» с видом поля HTML, и в него записывается либо HTML-код, либо адрес страницы.

// Открыть страницу внутри формы

Элементы.ПолеHTML.Документ = Неопределено;

HTMLАдрес = "https://example.ru";

// либо напрямую присвоить адрес через свойство поля формы

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

Альтернатива — расширение работы с веб-страницами или внешние компоненты, но это уже территория специализированных решений с дополнительной установкой на клиентские машины.

Различия между клиентами: что где работает

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

СпособТонкий/толстый клиентВеб-клиентМобильный клиент
ПерейтиПоНавигационнойСсылкеРаботаетРаботаетРаботает
ЗапуститьПриложение / НачатьЗапускПриложенияРаботаетНе работаетОграниченно
Поле HTML-документаРаботаетРаботает с ограничениямиРаботает с ограничениями

Из таблицы следует практический вывод: если в компании используются разные клиенты, единственный надёжный способ — ПерейтиПоНавигационнойСсылке. Остальные варианты требуют проверки режима работы через #Если ВебКлиент Тогда или разделения логики.

Сравнение вариантов

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

Универсально, безопасно, работает везде. Ограничение — открывается браузер по умолчанию, выбор браузера недоступен.

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

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

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

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

Пошаговая реализация кнопки «Открыть в браузере»

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

Порядок действий
  1. 1
    Добавьте на форму команду, например «ОткрытьСайт», и выведите её кнопкой в командную панель или рядом с полем сайта.
  2. 2
    В обработчике команды проверьте, что адрес заполнен: если поле пустое, покажите предупреждение и завершите работу.
  3. 3
    Нормализуйте адрес: если он не начинается с http:// или https://, добавьте префикс https://.
  4. 4
    Вызовите ПерейтиПоНавигационнойСсылке(Адрес).
  5. 5
    Проверьте результат в тонком клиенте и в веб-клиенте: страница должна открыться в новой вкладке браузера по умолчанию.

Пример готового обработчика команды:

&НаКлиенте

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

Адрес = СокрЛП(Объект.Сайт);

Если ПустаяСтрока(Адрес) Тогда

ПоказатьПредупреждение(, "Адрес сайта не заполнен.");

Возврат;

КонецЕсли;

Если СтрНайти(НРег(Адрес), "http") <> 1 Тогда

Адрес = "https://" + Адрес;

КонецЕсли;

ПерейтиПоНавигационнойСсылке(Адрес);

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

Обратите внимание на директиву &НаКлиенте: открытие браузера — клиентская операция, на сервере этот код выполняться не должен. Если обработчик случайно разместить в серверной процедуре, получите ошибку вызова метода.

Типичные ошибки и их последствия

Типичные ошибки
01
Вызов ПерейтиПоНавигационнойСсылке в серверной процедуре — метод недоступен на сервере, код падает с ошибкой. Решение: выполнять открытие только на клиенте.
02
Жёстко прописанный путь к chrome.exe — у части пользователей браузер стоит в другом каталоге, кнопка перестаёт работать. Решение: использовать браузер по умолчанию через навигационную ссылку или cmd /c start.
03
Отсутствие протокола в адресе — ссылка вида example.ru может трактоваться как навигационная ссылка 1С и не открыться. Решение: всегда добавлять http:// или https://.
04
Использование ЗапуститьПриложение без проверки режима — в веб-клиенте метод недоступен. Решение: проверять режим работы или использовать универсальный метод.

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

Проверка результата и FAQ

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

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

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

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

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

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

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

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

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

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

Адрес без протокола
Норма

После добавления https:// страница открывается

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

1С пытается интерпретировать адрес как внутреннюю ссылку

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

Итог

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

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

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

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

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

Чаще всего причина в адресе без протокола (example.ru вместо https://example.ru) или в вызове метода на сервере. Также проверьте, что строка адреса не содержит пробелов и кириллицы в незакодированном виде.

Работает ли открытие браузера в веб-клиенте 1С?

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

Как открыть страницу внутри формы 1С, а не во внешнем браузере?

Добавьте на форму поле с видом «Поле HTML-документа» и назначьте ему адрес страницы или HTML-контент. Подходит для простых страниц; сложные современные сайты могут отображаться некорректно из-за ограничений встроенного движка.

Можно ли открыть браузер из регламентного задания на сервере?

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

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

Подставьте значение в строку URL: "https://site.ru/order?id=" + НомерДокумента. Если значение может содержать спецсимволы или кириллицу, закодируйте его (например, через КодироватьСтроку в глобальном контексте), иначе ссылка будет повреждена.