Как из 1С открыть страницу в браузере Google Chrome?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Способ 1: Использование браузера по умолчанию

Проанализируем самый простой вариант. Если в операционной системе Windows в качестве основного браузера уже выбран Google Chrome, нам не нужно знать путь к исполняемому файлу или использовать специфические команды. Платформа 1С умеет открывать файлы и ссылки через ассоциации приложений. Выясним, как это работает на практике.

Для открытия ссылки достаточно передать сам URL-адрес в процедуру ЗапуститьПриложение. В этом случае система сама определит программу, предназначенную для обработки протокола "https" (а расширить возможности веб-клиента поможет специальное расширение для Chrome).


// Самый простой способ запуска
АдресСайта = "https://google.com";
ЗапуститьПриложение(АдресСайта);

Этот метод является предпочтительным, так как он максимально универсален и не зависит от того, где установлен браузер. Однако у него есть существенный минус: если у пользователя по умолчанию стоит другой браузер (например, Edge или Яндекс.Браузер), страница откроется именно в нем, что не решает нашу задачу, если сайт требует строго Google Chrome.

Способ 2: Прямой вызов chrome.exe с указанием пути

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

Основная проблема здесь заключается в том, что путь к браузеру обычно содержит пробелы (например, в названии папки "Program Files"). Если просто написать путь без кавычек, система не сможет найти файл. Выясним, как правильно сформировать строку запуска.


// Пример запуска с полным путем и кавычками
ПутьКБраузеру = """C:\Program Files\Google\Chrome\Application\chrome.exe""";
АдресСайта = """https://google.com""";
ЗапуститьПриложение(ПутьКБраузеру + " " + АдресСайта);

Обратите внимание на использование тройных кавычек в коде 1С. Разберем, почему это важно: внешние кавычки определяют начало и конец строки в конфигураторе, а удвоенные внутренние кавычки позволяют вставить один символ двойной кавычки непосредственно в саму строку. Это необходимо, чтобы Windows получила команду вида "C:\Path\chrome.exe" "https://url.com".

Способ 3: Автоматическое определение пути к Chrome через реестр

Проанализируем ситуацию более глубоко. Прописывать жесткий путь (hardcode) — это плохая практика, так как Chrome может быть установлен в C:\Program Files (x86), в C:\Program Files или даже в профиль пользователя %LocalAppData%. Чтобы программа работала у любого пользователя, мы должны научить 1С находить Chrome самостоятельно. Для этого обратимся к системному реестру Windows.

Актуальный путь к браузеру всегда хранится в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe. Напишем функцию, которая будет получать этот путь автоматически.


Функция ПолучитьПутьКChrome()
    Попытка
        Шелл = Новый COMОбъект("WScript.Shell");
        Путь = Шелл.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe\");
        Возврат Путь;
    Исключение
        Возврат ""; // Chrome не установлен
    КонецПопытки;
КонецФункции

// Использование функции
Путь = ПолучитьПутьКChrome();
Если ЗначениеЗаполнено(Путь) Тогда
    ЗапуститьПриложение("""" + Путь + """ ""https://google.com""");
Иначе
    Сообщить("Браузер Google Chrome не найден в системе!");
КонецЕсли;

Используя объект WScript.Shell, мы делаем наше решение профессиональным и устойчивым к изменениям в настройках конкретного компьютера. Это гарантирует, что 1С найдет браузер, где бы он ни находился.

Способ 4: Расширенные параметры запуска (Инкогнито и режим приложения)

Иногда просто открыть страницу недостаточно. Рассмотрим полезные флаги командной строки Chrome, которые могут пригодиться в работе. Например, если нам нужно, чтобы пользователь зашел на сайт "с чистого листа", без использования старых куки и сессий, можно использовать режим инкогнито.

Популярные параметры:

  1. --incognito — запуск в режиме инкогнито.
  2. --new-window — принудительное открытие в новом окне, а не новой вкладке.
  3. --app="URL" — запуск сайта в режиме приложения (без адресной строки и вкладок), что выглядит очень эстетично при интеграции с 1С.

Посмотрим на пример использования режима приложения:


// Запуск сайта как отдельного окна приложения
ПутьКChrome = "C:\Program Files\Google\Chrome\Application\chrome.exe";
АдресСайта = "https://google.com";
Команда = """" + ПутьКChrome + """ --app=""" + АдресСайта + """";
ЗапуститьПриложение(Команда);

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

Способ 5: Современный встроенный Chromium в 1С (версии 8.3.14+)

Разберем еще один важный момент. Если ваша задача — не просто "выбросить" пользователя в браузер, а показать содержимое сайта прямо в форме 1С, вам не обязательно запускать внешнее приложение. Начиная с версии платформы 8.3.14, 1С поддерживает использование движка Chromium для элемента формы Поле HTML документа.

Чтобы сайт отображался корректно внутри 1С, выполним следующие шаги:

  1. Проверим версию платформы (должна быть 8.3.14 или выше).
  2. В свойствах конфигурации или в коде установим режим использования встроенного браузера.

// Программная установка режима использования встроенного браузера
УстановитьРежимИспользованияВстроенногоБраузера(РежимИспользованияВстроенногоБраузера.Chromium);

После этой настройки стандартное ПолеHTMLДокумента начнет работать на движке Chromium, и потребность в запуске внешнего Chrome может отпасть сама собой, так как сайт будет отображаться идеально внутри вашей формы.

Резюме и рекомендации

Мы проанализировали различные подходы к запуску Google Chrome из 1С. Подведем итоги:

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

← На главную