Часто при разработке интеграционных механизмов в 1С:Предприятие программисты сталкиваются с тем, что штатный объект ИнтернетПрокси не приводит к желаемому результату. При попытке выполнить запрос через HTTPСоединение сервер возвращает ошибку 407 (Proxy Authentication Required), даже если в настройках операционной системы прокси указан явно, а авторизация для него не требуется. Давайте разберем, почему это происходит и как эффективно решить эту проблему.
Проблема заключается в различии между тем, как сетевой стек Windows и библиотека WinHTTP, которую использует платформа 1С, обрабатывают запросы. Браузеры обычно автоматически подхватывают учетные данные текущего пользователя или настройки системного прокси, тогда как 1С при программном создании объекта ИнтернетПрокси может не передавать их корректно в специфических сетевых средах. Когда прокси-сервер требует авторизацию или использует прозрачную аутентификацию (NTLM/Kerberos), стандартные попытки «пустой» авторизации через ИнтернетПрокси заканчиваются неудачей.
Самым надежным способом принудительно указать настройки прокси для платформы 1С является создание конфигурационного файла inetcfg.xml. Этот файл позволяет задать параметры сетевого соединения на уровне всей платформы для конкретного процесса. Рассмотрим пошагово, как это реализовать.
C:\Program Files\1cv8\[номер версии]\bin\.conf.conf создайте текстовый файл с именем inetcfg.xml.
<InternetProxy
protocols="адрес_сервера:порт"
bypassOnLocal="true"
bypassOnAddresses="127.0.0.1;адреса_исключений"
/>
Разберем подробнее каждый параметр этого файла:
protocols — укажите здесь адрес вашего прокси-сервера и порт через двоеточие. Например: lab-atlassian:3128.bypassOnLocal — логическое значение, указывающее, нужно ли использовать прокси для локальных адресов. Рекомендуется установить true.bypassOnAddresses — список адресов или масок, для которых прокси-сервер использовать не нужно. Разделяйте их точкой с запятой.Использование inetcfg.xml переносит настройки сетевого взаимодействия на более низкий уровень — уровень загрузки конфигурации платформы при старте процесса. В этом случае все последующие вызовы HTTPСоединение будут инициализироваться с учетом настроек, описанных в данном файле. Это позволяет избежать конфликтов, возникающих при программном создании объекта ИнтернетПрокси, когда 1С не успевает или «не хочет» подхватывать системные данные авторизации Windows.
Если после создания inetcfg.xml ошибка 407 сохраняется, проанализируем дополнительные аспекты:
lab-atlassian на прямой IP-адрес сервера.inetcfg.xml должен находиться в папке bin\conf того экземпляра платформы, который используется сервером 1С. Если вы работаете в толстом клиенте, файл должен быть в папке того клиента, который запускает обработку.bypassOnAddresses, чтобы внутренние запросы не уходили на внешний прокси.Применяя этот подход, мы обеспечиваем стабильную работу сетевых функций 1С, так как платформа получает четкие инструкции по маршрутизации трафика еще до момента выполнения кода. Это избавляет от необходимости жестко «зашивать» пароли и логины в код 1С, что также повышает безопасность конфигурации.