Разработка и Конфигурация · 10 мин
Как открыть веб-страницу из 1С: инструкция с примерами кода
Способы открыть веб-страницу из 1С: ЗапуститьПриложение, ПерейтиПоНавигационнойСсылке, поле HTML-документа. Примеры кода, различия режимов, типичные ошибки и FAQ.
Открыть веб-страницу из 1С можно несколькими способами: запустить браузер с нужным адресом, перейти по навигационной ссылке или встроить браузер прямо в форму через поле HTML-документа. Выбор зависит от задачи: показать пользователю справку, открыть личный кабинет контрагента или встроить интерактивную карту внутрь формы.
Для простых сценариев достаточно одной строки кода — платформа сама определит браузер по умолчанию и откроет ссылку. Для сложных задач, где страницу нужно показать внутри интерфейса 1С и обмениваться с ней данными, используется поле HTML-документа, работающее на движке Internet Explorer или WebKit в зависимости от настроек.
Ниже разобраны все рабочие методы с примерами кода, ограничения каждого подхода, типичные ошибки и способы проверки результата. Примеры приведены на встроенном языке 1С и подходят для управляемых форм; отличия обычных форм указаны отдельно.
Какой способ выбрать под свою задачу
В платформе 1С:Предприятие есть три основных подхода. Первый — внешний запуск: 1С передаёт URL операционной системе, и страница открывается в браузере пользователя. Это подходит для ссылок на сайты, личные кабинеты, документацию. Второй — встроенный показ: страница отображается внутри формы 1С в специальном поле. Третий — программная загрузка содержимого через HTTP-запросы, когда нужна не визуальная страница, а её данные.
Критерии выбора простые. Если пользователю достаточно посмотреть страницу и, возможно, что-то там заполнить — запускайте внешний браузер, это надёжнее и не зависит от движка внутри 1С. Если страница — часть рабочего процесса (карта, виджет, отчёт из веб-сервиса) — встраивайте её в форму. Если нужно получить данные со страницы или API — используйте HTTPСоединение, а не визуальные средства.
Сравнение вариантов
Открывает страницу во внешнем браузере. Подходит для ссылок на сайты и личные кабинеты. Ограничение: нет обмена данными с открытой страницей.
Показывает страницу внутри формы 1С, поддерживает обмен данными через JavaScript. Ограничение: зависимость от движка (IE или WebKit), старые сайты могут отображаться некорректно.
Загружает содержимое страницы программно, без отображения. Подходит для API и парсинга. Ограничение: не выполняет JavaScript, возвращает только исходный код.
Открытие страницы во внешнем браузере
Команда ЗапуститьПриложение
Самый прямой способ — процедура ЗапуститьПриложение. Если передать ей URL, операционная система откроет его в браузере по умолчанию. В тонком и веб-клиенте процедура асинхронная, поэтому рекомендуется использовать вариант с описанием оповещения:
Оповещение = Новый ОписаниеОповещения("ПослеЗапускаПриложения", ЭтотОбъект);
НачатьЗапускПриложения(Оповещение, "https://example.com");
В обработчике оповещения можно проверить код возврата и понять, удался ли запуск. Если код возврата равен нулю — команда выполнена успешно. Учтите, что успешный запуск не гарантирует доступность самого сайта: браузер откроется, но страница может не загрузиться из-за сети.
Метод ПерейтиПоНавигационнойСсылке
Альтернатива — глобальный метод ПерейтиПоНавигационнойСсылке("https://example.com"). Он открывает ссылку в браузере и удобен в управляемых формах, так как не требует описания оповещения. Метод также умеет открывать внутренние навигационные ссылки 1С, поэтому один и тот же код подходит и для внешних адресов, и для переходов внутри информационной базы.
// Простое открытие сайта в браузере по умолчанию
ПерейтиПоНавигационнойСсылке("https://example.com/page");
// С проверкой результата запуска
Оповещение = Новый ОписаниеОповещения("ПослеЗапуска", ЭтотОбъект);
НачатьЗапускПриложения(Оповещение, "https://example.com");Обе команды работают на тонком, толстом и веб-клиенте. В веб-клиенте браузер может заблокировать открытие новой вкладки как всплывающее окно, если вызов происходит не из обработчика нажатия кнопки, а, например, после длительного серверного вызова. Поэтому открывайте ссылки непосредственно в обработчике команды формы.
Открытие страницы внутри формы 1С
Чтобы показать веб-страницу внутри формы, добавьте реквизит формы с типом Строка, затем добавьте элемент формы вида Поле HTML-документа и свяжите его с этим реквизитом. После этого достаточно присвоить реквизиту адрес страницы — содержимое загрузится автоматически:
// Реквизит формы "АдресСтраницы" (Строка), элемент — Поле HTML-документа
АдресСтраницы = "https://example.com";
Вместо адреса можно присвоить реквизиту готовый HTML-текст — тогда 1С отобразит его как страницу без обращения к сети. Это удобно для форматированных отчётов, подсказок и предпросмотра писем. Содержимое загруженной страницы доступно через свойство Элементы.ПолеHTML.Документ, что позволяет читать и изменять DOM программно.
- 1Откройте форму в конфигураторе и добавьте реквизит формы типа «Строка»
- 2Перетащите реквизит на форму и смените вид поля на «Поле HTML-документа»
- 3В коде присвойте реквизиту URL страницы или HTML-текст
- 4Проверьте отображение в режиме предприятия на тонком клиенте
- 5Если страница не загружается, проверьте режим совместимости движка и доступность сайта из сети пользователя
Движок отображения и его ограничения
Исторически поле HTML-документа в Windows использует движок Internet Explorer, из-за чего современные сайты со сложным JavaScript могут отображаться некорректно. В свежих версиях платформы доступен альтернативный движок на базе WebKit, который включается через параметры запуска или настройки клиентского приложения. Перед встраиванием проверьте, как ваша целевая страница открывается в обоих режимах.
Открытие страницы из модуля и на сервере
Важно различать контекст исполнения. ЗапуститьПриложение, НачатьЗапускПриложения и ПерейтиПоНавигационнойСсылке — клиентские методы: они работают только на компьютере пользователя. Вызов их на сервере не имеет смысла: сервер не может открыть окно браузера у пользователя, а в фоновых заданиях эти методы недоступны.
Если логика формируется на сервере (например, URL строится по данным документа), сформируйте адрес в серверной функции, верните его на клиент и уже там вызовите переход. Это стандартный паттерн для управляемых форм с разделением кода.
// &НаСервереБезКонтекста
Функция ПолучитьАдресКабинета(ИНН)
Возврат "https://service.example.com/cabinet?inn=" + ИНН;
КонецФункции
// &НаКлиенте
Процедура ОткрытьКабинет(Команда)
Адрес = ПолучитьАдресКабинета(Объект.КонтрагентИНН);
ПерейтиПоНавигационнойСсылке(Адрес);
КонецПроцедуры
Проверка результата и типичные ошибки
Признак успешного выполнения — открывшаяся вкладка браузера с нужным адресом или загруженное содержимое в поле HTML-документа. Если ничего не произошло, проверьте: корректность URL (должен начинаться с http:// или https://), отсутствие блокировки всплывающих окон в веб-клиенте и права пользователя на запуск внешних приложений.
Для параметров в URL используйте кодирование: функция КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL) корректно экранирует кириллицу, пробелы и спецсимволы. Это особенно важно при передаче наименований контрагентов или номеров документов в адресной строке.
Как проверить результат
Открылась вкладка с нужным адресом, страница загрузилась
Ничего не произошло, открылась пустая вкладка или ошибка 404
Содержимое отображается внутри формы, ссылки и скрипты работают
Пустое поле, ошибка скрипта, искажённая вёрстка
Параметры корректно отображаются на открывшейся странице
Кириллица превратилась в кракозябры, параметр обрезан
Частые вопросы
Можно ли открыть страницу из 1С без участия пользователя, по расписанию?
Открыть визуальную страницу на клиенте по расписанию нельзя — регламентные задания выполняются на сервере, где нет пользовательского интерфейса. Если цель — периодически получать данные со страницы, используйте в регламентном задании HTTPСоединение и обрабатывайте ответ программно.
Как открыть страницу в конкретном браузере, а не в браузере по умолчанию?
Передайте в НачатьЗапускПриложения путь к исполняемому файлу браузера, а URL — как аргумент командной строки, например: «C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe» с параметром адреса. Учтите, что путь у разных пользователей может отличаться, поэтому такой подход хрупок.
Почему поле HTML-документа показывает пустую страницу?
Чаще всего причина в недоступности сайта из сети пользователя, в блокировке содержимого настройками безопасности или в несовместимости страницы с движком IE. Проверьте, открывается ли адрес в обычном браузере на том же компьютере, и попробуйте присвоить полю простой HTML-текст для изоляции проблемы.
Можно ли из 1С заполнить форму на открытой веб-странице?
В поле HTML-документа — да: через свойство Документ доступен DOM страницы, можно найти элементы и установить значения программно. Во внешнем браузере, открытом через ЗапуститьПриложение, — нет: 1С не управляет чужим процессом, максимум что доступно — передать данные в параметрах URL.
Работает ли ПерейтиПоНавигационнойСсылке в мобильном клиенте?
Да, в мобильном клиенте метод открывает ссылку в системном браузере устройства. Ограничения те же, что в веб-клиенте: вызов должен быть инициирован действием пользователя, иначе система может проигнорировать переход.
Что важно запомнить
Для открытия страницы в браузере используйте ПерейтиПоНавигационнойСсылке или НачатьЗапускПриложения — только на клиенте. Для показа страницы внутри формы — поле HTML-документа со строковым реквизитом. Кодируйте параметры URL, проверяйте совместимость с движком отображения и не вызывайте клиентские методы на сервере.