Разработка и Конфигурация · 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-документа | Работает | Работает с ограничениями | Работает с ограничениями |
Из таблицы следует практический вывод: если в компании используются разные клиенты, единственный надёжный способ — ПерейтиПоНавигационнойСсылке. Остальные варианты требуют проверки режима работы через #Если ВебКлиент Тогда или разделения логики.
Сравнение вариантов
Универсально, безопасно, работает везде. Ограничение — открывается браузер по умолчанию, выбор браузера недоступен.
Позволяет указать конкретный браузер и параметры командной строки. Не работает в веб-клиенте, требует знания путей к программам.
Страница отображается внутри формы 1С. Подходит для простых страниц; сложные сайты могут работать некорректно.
Пошаговая реализация кнопки «Открыть в браузере»
Типовая задача — добавить в карточку контрагента кнопку, открывающую его сайт. Порядок действий одинаков для любой конфигурации на управляемых формах.
- 1Добавьте на форму команду, например «ОткрытьСайт», и выведите её кнопкой в командную панель или рядом с полем сайта.
- 2В обработчике команды проверьте, что адрес заполнен: если поле пустое, покажите предупреждение и завершите работу.
- 3Нормализуйте адрес: если он не начинается с http:// или https://, добавьте префикс https://.
- 4Вызовите ПерейтиПоНавигационнойСсылке(Адрес).
- 5Проверьте результат в тонком клиенте и в веб-клиенте: страница должна открыться в новой вкладке браузера по умолчанию.
Пример готового обработчика команды:
&НаКлиенте
Процедура ОткрытьСайт(Команда)
Адрес = СокрЛП(Объект.Сайт);
Если ПустаяСтрока(Адрес) Тогда
ПоказатьПредупреждение(, "Адрес сайта не заполнен.");
Возврат;
КонецЕсли;
Если СтрНайти(НРег(Адрес), "http") <> 1 Тогда
Адрес = "https://" + Адрес;
КонецЕсли;
ПерейтиПоНавигационнойСсылке(Адрес);
КонецПроцедуры
Обратите внимание на директиву &НаКлиенте: открытие браузера — клиентская операция, на сервере этот код выполняться не должен. Если обработчик случайно разместить в серверной процедуре, получите ошибку вызова метода.
Типичные ошибки и их последствия
Ещё одна частая проблема — блокировка всплывающих окон в веб-клиенте. Браузер может заблокировать открытие новой вкладки, если переход инициирован не непосредственным действием пользователя (например, из асинхронного обработчика ожидания). В таком случае пользователь увидит уведомление о заблокированном окне и должен разрешить его вручную.
Проверка результата и FAQ
Как проверить результат
Страница открылась в браузере по умолчанию
Ничего не произошло или появилась ошибка метода
Открылась новая вкладка с нужной страницей
Браузер показал уведомление о заблокированном всплывающем окне
После добавления https:// страница открывается
1С пытается интерпретировать адрес как внутреннюю ссылку
Перед сдачей доработки пользователям проверьте сценарий минимум в двух режимах: тонкий клиент и веб-клиент, если он используется. Убедитесь, что кнопка корректно обрабатывает пустое поле, адрес без протокола и адрес с пробелами.
Что важно запомнить
Универсальный способ открыть браузер из 1С — ПерейтиПоНавигационнойСсылке с полным URL, включая протокол. Запуск конкретного браузера возможен только в тонком/толстом клиенте и требует аккуратной работы с путями. Код всегда выполняется на клиенте, а результат проверяется во всех используемых режимах работы.
Можно ли открыть ссылку в конкретном браузере, а не в браузере по умолчанию?
Да, через НачатьЗапускПриложения с указанием полного пути к исполняемому файлу браузера и адресом в параметрах. Способ работает только в тонком и толстом клиенте, а путь к браузеру придётся определять на каждом компьютере или хранить в настройках.
Почему ПерейтиПоНавигационнойСсылке ничего не открывает?
Чаще всего причина в адресе без протокола (example.ru вместо https://example.ru) или в вызове метода на сервере. Также проверьте, что строка адреса не содержит пробелов и кириллицы в незакодированном виде.
Работает ли открытие браузера в веб-клиенте 1С?
ПерейтиПоНавигационнойСсылке работает — страница открывается в новой вкладке. ЗапуститьПриложение и НачатьЗапускПриложения в веб-клиенте недоступны. Учитывайте, что браузер может заблокировать вкладку как всплывающее окно.
Как открыть страницу внутри формы 1С, а не во внешнем браузере?
Добавьте на форму поле с видом «Поле HTML-документа» и назначьте ему адрес страницы или HTML-контент. Подходит для простых страниц; сложные современные сайты могут отображаться некорректно из-за ограничений встроенного движка.
Можно ли открыть браузер из регламентного задания на сервере?
Нет, и это не имеет практического смысла: регламентные задания выполняются на сервере без пользовательского интерфейса. Открытие браузера возможно только в клиентском контексте по инициативе пользователя.
Как передать в открываемую ссылку данные из документа, например номер заказа?
Подставьте значение в строку URL: "https://site.ru/order?id=" + НомерДокумента. Если значение может содержать спецсимволы или кириллицу, закодируйте его (например, через КодироватьСтроку в глобальном контексте), иначе ссылка будет повреждена.