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

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

Как открыть веб-страницу из 1С: инструкция с примерами кода

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

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

Для простых сценариев достаточно одной строки кода — платформа сама определит браузер по умолчанию и откроет ссылку. Для сложных задач, где страницу нужно показать внутри интерфейса 1С и обмениваться с ней данными, используется поле HTML-документа, работающее на движке Internet Explorer или WebKit в зависимости от настроек.

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

Какой способ выбрать под свою задачу

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

Критерии выбора простые. Если пользователю достаточно посмотреть страницу и, возможно, что-то там заполнить — запускайте внешний браузер, это надёжнее и не зависит от движка внутри 1С. Если страница — часть рабочего процесса (карта, виджет, отчёт из веб-сервиса) — встраивайте её в форму. Если нужно получить данные со страницы или API — используйте HTTPСоединение, а не визуальные средства.

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

ЗапуститьПриложение / ПерейтиПоНавигационнойСсылке

Открывает страницу во внешнем браузере. Подходит для ссылок на сайты и личные кабинеты. Ограничение: нет обмена данными с открытой страницей.

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

Показывает страницу внутри формы 1С, поддерживает обмен данными через JavaScript. Ограничение: зависимость от движка (IE или WebKit), старые сайты могут отображаться некорректно.

HTTPСоединение

Загружает содержимое страницы программно, без отображения. Подходит для API и парсинга. Ограничение: не выполняет JavaScript, возвращает только исходный код.

Открытие страницы во внешнем браузере

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

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

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

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

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

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

Альтернатива — глобальный метод ПерейтиПоНавигационнойСсылке("https://example.com"). Он открывает ссылку в браузере и удобен в управляемых формах, так как не требует описания оповещения. Метод также умеет открывать внутренние навигационные ссылки 1С, поэтому один и тот же код подходит и для внешних адресов, и для переходов внутри информационной базы.

bsl
// Простое открытие сайта в браузере по умолчанию
ПерейтиПоНавигационнойСсылке("https://example.com/page");

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

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

Открытие страницы внутри формы 1С

Чтобы показать веб-страницу внутри формы, добавьте реквизит формы с типом Строка, затем добавьте элемент формы вида Поле HTML-документа и свяжите его с этим реквизитом. После этого достаточно присвоить реквизиту адрес страницы — содержимое загрузится автоматически:

// Реквизит формы "АдресСтраницы" (Строка), элемент — Поле HTML-документа

АдресСтраницы = "https://example.com";

Вместо адреса можно присвоить реквизиту готовый HTML-текст — тогда 1С отобразит его как страницу без обращения к сети. Это удобно для форматированных отчётов, подсказок и предпросмотра писем. Содержимое загруженной страницы доступно через свойство Элементы.ПолеHTML.Документ, что позволяет читать и изменять DOM программно.

Порядок действий для встраивания страницы в форму
  1. 1
    Откройте форму в конфигураторе и добавьте реквизит формы типа «Строка»
  2. 2
    Перетащите реквизит на форму и смените вид поля на «Поле HTML-документа»
  3. 3
    В коде присвойте реквизиту URL страницы или HTML-текст
  4. 4
    Проверьте отображение в режиме предприятия на тонком клиенте
  5. 5
    Если страница не загружается, проверьте режим совместимости движка и доступность сайта из сети пользователя

Движок отображения и его ограничения

Исторически поле HTML-документа в Windows использует движок Internet Explorer, из-за чего современные сайты со сложным JavaScript могут отображаться некорректно. В свежих версиях платформы доступен альтернативный движок на базе WebKit, который включается через параметры запуска или настройки клиентского приложения. Перед встраиванием проверьте, как ваша целевая страница открывается в обоих режимах.

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

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

Если логика формируется на сервере (например, URL строится по данным документа), сформируйте адрес в серверной функции, верните его на клиент и уже там вызовите переход. Это стандартный паттерн для управляемых форм с разделением кода.

// &НаСервереБезКонтекста

Функция ПолучитьАдресКабинета(ИНН)

Возврат "https://service.example.com/cabinet?inn=" + ИНН;

КонецФункции

// &НаКлиенте

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

Адрес = ПолучитьАдресКабинета(Объект.КонтрагентИНН);

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

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

Проверка результата и типичные ошибки

Признак успешного выполнения — открывшаяся вкладка браузера с нужным адресом или загруженное содержимое в поле HTML-документа. Если ничего не произошло, проверьте: корректность URL (должен начинаться с http:// или https://), отсутствие блокировки всплывающих окон в веб-клиенте и права пользователя на запуск внешних приложений.

Типичные ошибки
01
Вызов ЗапуститьПриложение на сервере — метод недоступен, код падает с ошибкой или молча не выполняется
02
URL без протокола (example.com вместо https://example.com) — система не понимает, чем открывать строку
03
Открытие ссылки в веб-клиенте после серверного вызова — браузер блокирует вкладку как всплывающее окно
04
Ожидание корректной работы современного сайта в поле HTML на движке IE — скрипты не выполняются, верстка «ломается»
05
Передача в URL кириллицы и спецсимволов без кодирования — ссылка обрезается или ведёт не туда

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

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

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

Внешний браузер
Норма

Открылась вкладка с нужным адресом, страница загрузилась

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

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

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

Содержимое отображается внутри формы, ссылки и скрипты работают

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

Пустое поле, ошибка скрипта, искажённая вёрстка

URL с параметрами
Норма

Параметры корректно отображаются на открывшейся странице

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

Кириллица превратилась в кракозябры, параметр обрезан

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

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

Открыть визуальную страницу на клиенте по расписанию нельзя — регламентные задания выполняются на сервере, где нет пользовательского интерфейса. Если цель — периодически получать данные со страницы, используйте в регламентном задании HTTPСоединение и обрабатывайте ответ программно.

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

Передайте в НачатьЗапускПриложения путь к исполняемому файлу браузера, а URL — как аргумент командной строки, например: «C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe» с параметром адреса. Учтите, что путь у разных пользователей может отличаться, поэтому такой подход хрупок.

Почему поле HTML-документа показывает пустую страницу?

Чаще всего причина в недоступности сайта из сети пользователя, в блокировке содержимого настройками безопасности или в несовместимости страницы с движком IE. Проверьте, открывается ли адрес в обычном браузере на том же компьютере, и попробуйте присвоить полю простой HTML-текст для изоляции проблемы.

Можно ли из 1С заполнить форму на открытой веб-странице?

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

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

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

Итог

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

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