Как решить проблему "Ошибка работы с Интернет: Не могу установить соединение" при отправке СМС и получении обновлений из 1С:ERP?

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

Мы рассмотрим распространенную проблему, когда из базы 1С:ERP не отправляются СМС и не удается получить обновления, при этом возникает ошибка "Ошибка работы с Интернет: Не могу установить соединение". Эта ситуация часто вводит в заблуждение, поскольку на первый взгляд кажется, что интернет работает корректно, а другие приложения имеют к нему доступ. Мы разберем по шагам, как диагностировать и устранить эту проблему, уделяя внимание особенностям сетевых взаимодействий в среде 1С:Предприятие.

Начальная диагностика: Проверяем базовую работоспособность

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

Наш первый шаг – убедиться, что служба агента 1С-сервера запущена с адекватными правами. В некоторых случаях даже запуск от имени администратора может быть недостаточен, если существуют жесткие политики безопасности или ограничения на сетевые подключения для конкретных процессов. Автор подтвердил, что агент сервера запущен под учетной записью администратора. Это важный момент, который исключает очевидные проблемы с правами, но не гарантирует полного доступа к сети.

Различие между ICMP (Ping) и HTTP/HTTPS: Ключевой момент в диагностике

Очень часто пользователи проверяют доступность интернета с помощью команды ping. Однако, мы должны понимать принципиальное различие между командой ping (протокол ICMP) и HTTP/HTTPS-запросами (протокол TCP). Успешный ping лишь подтверждает, что целевой узел доступен на сетевом уровне и отвечает на запросы ICMP. Он не гарантирует, что к этому узлу можно установить TCP-соединение на определенных портах (например, 80 для HTTP или 443 для HTTPS) и успешно обменяться данными по протоколу более высокого уровня.

Как мы видим в нашем случае, попытка установить HTTP-соединение с "rambler.ru" из 1С выдает ошибку 301, в то время как ping rambler.ru проходит успешно. Ошибка 301 (Moved Permanently) — это стандартный HTTP-ответ, который сообщает, что запрошенный ресурс был окончательно перемещен на новый адрес. В контексте современных веб-сайтов это часто означает, что сайт перенаправляет с HTTP (незащищенный протокол) на HTTPS (защищенный протокол).

Проверяем доступность HTTP и HTTPS из 1С

Чтобы точно определить, где возникает проблема, мы попробуем программно проверить доступность внешних ресурсов прямо из 1С. Для этого мы будем использовать объекты HTTPСоединение и ЗащищенноеСоединениеOpenSSL.

Проверка HTTP-соединения (порт 80)

Мы используем следующий код для проверки базового HTTP-соединения:


Функция ПроверитьИнтернет() Экспорт
    Попытка
        Соединение = Новый HTTPСоединение("rambler.ru", 80);
        Запрос = Новый HTTPЗапрос("/");
        Ответ = Соединение.Получить(Запрос);
        Если Ответ.КодСостояния = 200 Тогда
            Возврат Истина;
        Иначе
            Сообщить("Получен код состояния: " + Ответ.КодСостояния);
            Возврат Ложь;
        КонецЕсли;
    Исключение
        Сообщить("Ошибка работы с Интернет: " + ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    Возврат Ложь;
КонецФункции

В случае автора, этот код выдал Код ответа 301. Это подтверждает, что HTTP-соединение на порт 80 установить удалось, но сервер сразу же перенаправляет нас на HTTPS. Это ожидаемое поведение для большинства современных сайтов, заботящихся о безопасности.

Проверка HTTPS-соединения (порт 443)

Поскольку большинство сервисов сейчас работают по HTTPS, мы должны проверить доступность HTTPS. Для этого нам потребуется объект ЗащищенноеСоединениеOpenSSL. Важно правильно его инициализировать. Изначальная попытка автора была близка к истине, но требовала небольшого уточнения. Правильный синтаксис будет выглядеть так:


Функция ПроверитьHTTPSИнтернет() Экспорт
    Попытка
        ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
        Соединение = Новый HTTPСоединение("rambler.ru", 443,,,,, ЗащищенноеСоединение);
        Запрос = Новый HTTPЗапрос("/");
        Ответ = Соединение.Получить(Запрос);
        Если Ответ.КодСостояния = 200 Тогда
            Сообщить("HTTPS-соединение установлено успешно. Код: " + Ответ.КодСостояния);
            Возврат Истина;
        Иначе
            Сообщить("Получен код состояния HTTPS: " + Ответ.КодСостояния);
            Возврат Ложь;
        КонецЕсли;
    Исключение
        Сообщить("Ошибка работы с Интернет (HTTPS): " + ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    Возврат Ложь;
КонецФункции

Автор темы подтвердил, что этот код дал ответ 200 на тестовой базе, но на проблемной базе снова возникла ошибка Ошибка работы с Интернет. Это является ключевым диагностическим моментом, указывающим на то, что проблема кроется в окружении проблемного сервера, а не в самом коде 1С или провайдере СМС.

Возможные причины ошибки "Не могу установить соединение" для HTTPS из 1С

Теперь, когда мы сузили круг поиска до серверного окружения, мы рассмотрим наиболее вероятные причины, по которым 1С не может установить HTTPS-соединение, даже если другие приложения или другие базы 1С на другом сервере работают корректно.

  1. Межсетевой экран (брандмауэр) или антивирусное ПО

    Несмотря на то, что порты могут быть "открыты" на уровне сетевого оборудования, программные брандмауэры (например, Брандмауэр Windows) или антивирусное ПО на самом сервере 1С могут блокировать исходящие HTTP/HTTPS соединения для конкретных процессов 1С (ragent.exe, rphost.exe). Даже если служба 1С запущена от имени администратора, эти программы могут иметь более высокие привилегии или специфические правила, ограничивающие сетевой доступ. Мы рекомендуем проверить настройки этих программ и добавить процессы 1С в исключения или временно отключить их для проверки.

  2. Использование прокси-сервера

    Если доступ в интернет осуществляется через прокси-сервер, 1С должна быть явно настроена на его использование. Настройки прокси на уровне операционной системы могут не всегда автоматически подхватываться 1С. Объект HTTPСоединение имеет параметры для указания адреса прокси-сервера, порта, а также учетных данных для авторизации, если прокси требует аутентификации. Мы должны удостовериться, что в конфигурации 1С или в параметрах запуска сервера 1С прописаны необходимые настройки прокси, если он используется.

    Например, в 1С можно установить параметры прокси через метод УстановитьПараметрыПрокси() объекта ИнтернетПрокси или напрямую в конструкторе HTTPСоединение:

    
    Прокси = Новый ИнтернетПрокси;
    Прокси.Установить("адрес_прокси", порт_прокси, "пользователь", "пароль");
    Соединение = Новый HTTPСоединение("rambler.ru", 443, Прокси,,,, ЗащищенноеСоединение);
    
  3. Особенности HTTPS-соединений и SSL-сертификатов

    Ошибка "Ошибка работы с Интернет" при использовании ЗащищенноеСоединениеOpenSSL, особенно если на другой базе все работает, часто связана с проблемами SSL-сертификатов на проблемном сервере.

    • Хранилище сертификатов Windows: Платформа 1С, начиная с версии 8.3.8, использует хранилище сертификатов Windows для проверки подлинности SSL-сертификатов. Мы должны убедиться, что сертификат целевого сервера (например, сервиса СМС или rambler.ru) является доверенным для системы, на которой работает сервер 1С. Возможно, необходимо установить недостающие корневые или промежуточные сертификаты на сервере, или проверить их актуальность.
    • Библиотеки OpenSSL: Проблемы могут быть связаны с устаревшими или поврежденными библиотеками OpenSSL на сервере 1С. Иногда переустановка или обновление платформы 1С может помочь, поскольку она включает свои версии этих библиотек.
    • Проверка сертификатов: Объект ЗащищенноеСоединениеOpenSSL может создаваться с различными параметрами. Если не указать источник сертификатов удостоверяющих центров, проверка сертификата сервера может не производиться должным образом. Мы должны проверить документацию 1С для своей версии платформы на предмет дополнительных параметров.
  4. Права пользователя, от имени которого запущен сервер 1С

    Хотя агент сервера запущен от имени администратора, в условиях корпоративной безопасности для сетевых взаимодействий могут требоваться специфические права или настройки, которые могут быть ограничены даже для администраторских учетных записей. Мы должны проверить локальные политики безопасности и групповые политики, которые могут ограничивать сетевой доступ для учетной записи, под которой работает сервер 1С.

  5. Сетевые ограничения на маршрутизаторах/фаерволах

    На уровне сетевого оборудования (корпоративный фаервол, маршрутизатор) могут быть установлены более строгие правила, которые блокируют трафик для определенных приложений или протоколов, даже если порт считается "открытым". Мы должны обратиться к сетевым администраторам, чтобы они проверили логи фаерволов на предмет блокировки исходящих соединений с IP-адреса сервера 1С на порты 80 и 443 к целевым сервисам. Напомним, что ping (ICMP) и HTTP/HTTPS (TCP) — это разные протоколы, и разрешение одного не гарантирует разрешение другого.

  6. Проблемы с DNS-разрешением

    Если доменное имя не может быть разрешено в IP-адрес, соединение не будет установлено. Хотя ping работает, в редких случаях могут быть проблемы с DNS-серверами, используемыми 1С. Мы можем попробовать использовать IP-адрес вместо доменного имени в HTTPСоединение для проверки, если проблема связана с DNS.

  7. Устаревшая платформа 1С

    Если платформа 1С давно не обновлялась, она может использовать устаревшие версии библиотек OpenSSL или не поддерживать современные протоколы TLS/SSL, что приводит к невозможности установить защищенное соединение с актуальными веб-сервисами. Проблемы с получением обновлений платформы 1С также указывают на общую проблему с интернет-подключением, которая может быть решена обновлением платформы. Убедитесь, что версия платформы 1С актуальна и поддерживает современные стандарты безопасности.

  8. Проверка доступности ресурсов 1С

    Для корректной работы сервисов 1С, таких как 1С-ЭДО или интернет-поддержка, должен быть открыт доступ к определенным ресурсам и портам (например, 1c.ru по порту 80, webits.1c.ru и login.1c.ru по порту 443). Мы можем проверить доступность этих ресурсов с помощью команды telnet из командной строки сервера, чтобы убедиться, что TCP-соединение на соответствующие порты проходит:

    
    telnet 1c.ru 80
    telnet login.1c.ru 443
    

    Успешное выполнение команды telnet, при котором на экране появляется черный экран или курсор, указывает на то, что соединение установлено. Ошибка "Не удалось открыть подключение" или "Сбой подключения" будет указывать на блокировку.

Подводим итог и предлагаем дальнейшие шаги

На основе проведенной диагностики мы можем сделать вывод, что проблема связана не с кодом 1С или провайдером СМС, а с сетевым окружением сервера, на котором работает 1С:ERP. Успешный ping и даже успешное HTTP-соединение на порт 80, но неработоспособность HTTPS на порту 443, указывают на более глубокие проблемы с TLS/SSL-соединениями.

Мы рекомендуем выполнить следующие шаги:

  1. Проверить логи брандмауэра и антивируса на сервере 1С на предмет блокировки исходящих соединений для процессов ragent.exe и rphost.exe на порт 443. Временно отключить эти программы для проверки.
  2. Уточнить у сетевых администраторов, используется ли прокси-сервер, и если да, то настроить его в 1С. Также попросить проверить правила корпоративного фаервола на предмет блокировки исходящего HTTPS-трафика с сервера 1С.
  3. Проверить актуальность и наличие необходимых корневых/промежуточных SSL-сертификатов в хранилище сертификатов Windows на сервере 1С. Возможно, требуется их обновление или установка.
  4. Убедиться, что платформа 1С на проблемном сервере актуальна и обновлена до последней стабильной версии, которая поддерживает современные версии TLS/SSL.

Совместная работа с системными и сетевыми администраторами, а также пошаговое исключение каждой из возможных причин, поможет нам найти источник проблемы и восстановить работоспособность отправки СМС и получения обновлений из вашей базы 1С:ERP.

← На главную