Почему не работают онлайн-сервисы 1С после переноса базы на SQL-сервер и как это исправить?

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

Перевод информационных баз 1С:Предприятия с файлового режима работы на клиент-серверный вариант (под управлением MS SQL Server, PostgreSQL или других СУБД) — стандартный этап масштабирования ИТ-системы любого предприятия. Однако в процессе миграции администраторы часто сталкиваются с неожиданной проблемой: в базах перестают функционировать различные онлайн-сервисы. Например, становится недоступным автоматическое заполнение реквизитов контрагентов по ИНН (сервис «1С:Контрагент»), не загружаются классификаторы (БИК, адресный классификатор ФИАС), не работает автоматическая проверка обновлений конфигурации, а программа выдает сообщения об отсутствии подключения к интернету.

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

Выясняем причину: в чем разница между файловым и серверным режимами?

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

  1. В файловом режиме работы: абсолютно все интернет-запросы выполняются на стороне клиентского приложения (в контексте сеанса текущего пользователя операционной системы Windows). Платформа использует сетевые параметры, настройки DNS, шлюзы и, самое главное, настройки прокси-сервера, которые прописаны в профиле конкретного пользователя Windows, запустившего сеанс 1С.
  2. В клиент-серверном режиме работы: выполнение большинства тяжелых и фоновых операций (включая все веб-сервисы, HTTP-соединения и фоновые задания по интеграции) переносится на сторону сервера 1С:Предприятия. Эти запросы выполняются внутри рабочих процессов rphost.exe. Следовательно, запросы в глобальную сеть отправляются непосредственно с физического (или виртуального) сервера, на котором развернута служба «Агент сервера 1С:Предприятия». Сетевая активность происходит под правами и в окружении той системной учетной записи, от имени которой запущена данная служба в операционной системе.

Как правило, служба сервера 1С по умолчанию устанавливается под специальной локальной учетной записью USR1CV8 (или Network Service, Local System). В крупных корпоративных сетях её часто перенастраивают на запуск от имени выделенного доменного пользователя. Если для этой учетной записи не настроен доступ в интернет, закрыты порты на брандмауэре или прописаны неверные сетевые параметры (например, устаревший прокси-сервер), серверные процессы 1С не смогут достучаться до серверов обновлений и онлайн-сервисов.

Давайте подробно рассмотрим наиболее эффективные методы решения этой проблемы.

Решение 1. Настройка прокси-сервера в Internet Explorer для учетной записи службы 1С

Если в вашей корпоративной сети доступ в интернет регулируется через прокси-сервер, операционная система Windows обращается к настройкам прокси, заданным в системном профиле пользователя. Это классическая ситуация, описанная на форуме: служба сервера 1С была запущена от имени учетной записи, в профиле которой в браузере Internet Explorer был прописан устаревший адрес прокси-сервера.

Разберем по шагам, как исправить эту ситуацию, если служба 1С запущена от имени конкретного доменного или локального пользователя:

  1. Выполним вход в операционную систему сервера под той учетной записью, от имени которой стартует служба «Агент сервера 1С:Предприятия». Если запуск происходит от имени доменного администратора или специального пользователя domain\srv_1c, нам необходимо зайти в систему именно под этим именем.
  2. Запустим классический браузер Internet Explorer (или перейдем в современные «Параметры сети и Интернета» -> «Прокси-сервер»).
  3. Перейдем в меню «Свойства браузера» (Internet Options) на вкладку «Подключения» (Connections) и нажмем кнопку «Настройка сети» (LAN settings).
  4. Проверим установленные параметры. Если используется прокси-сервер, укажем его актуальный IP-адрес и порт. Если доступ прямой, снимем галочки автоматического определения и использования прокси.
  5. Обязательно сохраним изменения, закроем браузер и перезапустим службу сервера 1С через консоль services.msc, чтобы рабочие процессы перечитали конфигурацию окружения Windows.

Важное примечание: Если служба сервера 1С запущена от имени встроенной системной учетной записи (например, Network Service или Local System), войти в систему интерактивно под этим пользователем невозможно. Настройка прокси через графический интерфейс IE для них крайне затруднена (требует редактирования реестра Windows в ветках соответствующих системных SID). В таких случаях мы рекомендуем использовать другие, более профессиональные методы настройки, описанные ниже.

Решение 2. Использование конфигурационного файла inetcfg.xml (Рекомендуемый способ)

Для того чтобы не зависеть от настроек профилей пользователей Windows и оперативно управлять параметрами подключения платформы 1С к интернету, разработчики предусмотрели специальный конфигурационный файл inetcfg.xml. Этот файл имеет наивысший приоритет для платформы 1С:Предприятие. Настройки, прописанные в нем, применяются ко всем процессам сервера (включая rphost.exe) независимо от того, под каким пользователем запущена служба.

Рассмотрим алгоритм настройки по шагам:

  1. Перейдем в каталог конфигурационных файлов платформы 1С на сервере. По умолчанию для 64-битной версии платформы этот путь выглядит так: C:\Program Files\1cv8\conf\. Если на сервере установлена также 32-битная версия, аналогичный файл необходимо будет настроить в папке C:\Program Files (x86)\1cv8\conf\.
  2. Проверим наличие файла с именем inetcfg.xml. Если файла нет, создадим обычный текстовый документ и переименуем его, обязательно изменив расширение с .txt на .xml.
  3. Откроем созданный файл в любом текстовом редакторе (например, Notepad++) и внесем в него параметры нашего прокси-сервера. Пример структуры файла приведен ниже:

<config xmlns="http://v8.1c.ru/v8/inetcfg">
    <proxy url="http://192.168.1.100:8080"
           bypassOnLocal="true">
        <bypassAddress>127.0.0.1</bypassAddress>
        <bypassAddress>localhost</bypassAddress>
        <bypassAddress>*.yourdomain.local</bypassAddress>
        <user login="domain\your_user" password="your_password"/>
    </proxy>
</config>

Разберем основные параметры этого файла:

После сохранения файла inetcfg.xml перезапуск сервера 1С обычно не требуется, однако для гарантированного применения настроек новыми рабочими процессами рекомендуется выполнить перезапуск службы «Агент сервера 1С:Предприятия».

Решение 3. Настройка параметров прокси-сервера внутри самой базы 1С

Если вы используете современные типовые конфигурации 1С, разработанные на базе Библиотеки Стандартных Подсистем (БСП), например, «1С:Бухгалтерия 3.0», «1С:ERP», «1С:Управление торговлей 11» и другие, у вас есть возможность задать сетевые настройки прокси-сервера непосредственно из пользовательского интерфейса программы.

Для этого выполним следующие действия:

  1. Запустим информационную базу 1С в режиме «Тонкий клиент» или «Толстый клиент» с правами администратора системы (с ролью «Полные права»).
  2. Перейдем в раздел «Администрирование» (в некоторых конфигурациях — «НСИ и администрирование»).
  3. Выберем пункт меню «Настройки программы» -> «Общие настройки» (или воспользуемся поиском по функциям и найдем «Настройка прокси-сервера»).
  4. В открывшейся форме установим переключатель в положение «Использовать другие настройки прокси-сервера».
  5. Заполним поля «Адрес сервера» и «Порт». При необходимости введем данные для авторизации (имя пользователя и пароль).
  6. Обязательно установим флажок «Использовать прокси-сервер для серверных вызовов» (или аналогичный по смыслу параметр конфигурации). Это критически важно, так как именно эта настройка указывает серверу 1С использовать введенные параметры при выполнении фоновых регламентных заданий на стороне rphost.exe.
  7. Нажмем кнопку «ОК» или «Записать и закрыть».

Решение 4. Устранение проблем с SSL-сертификатами (Критично для Windows Server 2008 R2)

В тексте обращения автора упоминается использование операционной системы Windows Server 2008 R2. Это устаревшая ОС, поддержка которой со стороны корпорации Microsoft давно прекращена. На таких серверах администраторы регулярно сталкиваются со следующей проблемой: физический доступ к сайтам 1С есть (веб-страницы открываются), но при попытке программного обращения к веб-службам сервер выдает ошибку «Удаленный узел не прошел проверку» или «Ошибка SSL при работе с Интернет».

Выясним причину этой проблемы. Сервисы 1С (включая API проверки контрагентов, механизмы обновлений и платформу ИТС) используют защищенное соединение HTTPS, безопасность которого обеспечивается SSL/TLS сертификатами, выданными международным удостоверяющим центром GlobalSign. Поскольку на старых операционных системах отключены автоматические обновления корневых сертификатов, Windows Server 2008 R2 просто «не знает» о новых доверенных центрах сертификации и блокирует соединение с ними как потенциально небезопасное.

Разберем по шагам, как вручную установить актуальные корневые сертификаты на сервер:

  1. С любого современного компьютера перейдем на официальный сайт удостоверяющего центра GlobalSign и скачаем актуальные корневые сертификаты. Нам потребуются сертификаты Root CA (например, GlobalSign Root R3) и промежуточные сертификаты (промежуточный сертификат центра, выдавшего подпись для сайтов 1С, например, gsgccr3dvtlsca2020.crt).
  2. Перенесем скачанные файлы сертификатов на наш сервер Windows Server 2008 R2.
  3. Откроем консоль управления сертификатами компьютера. Для этого нажмем комбинацию клавиш Win + R, введем команду mmc и нажмем Enter.
  4. В открывшемся окне выберем меню «Файл» -> «Добавить или удалить оснастку» (File -> Add/Remove Snap-in).
  5. В списке выберем оснастку «Сертификаты» (Certificates), нажмем «Добавить» (Add) и обязательно выберем вариант «Учетная запись компьютера» (Computer account), после чего нажмем «Далее» и «Готово».
  6. В дереве консоли развернем узел «Сертификаты (локальный компьютер)» -> «Доверенные корневые центры сертификации» (Trusted Root Certification Authorities) -> «Реестр» -> «Сертификаты».
  7. Нажмем правой кнопкой мыши по разделу «Сертификаты», выберем «Все задачи» -> «Импорт» (All Tasks -> Import).
  8. Укажем путь к скачанному файлу корневого сертификата Root-R3.crt и завершим работу мастера импорта, согласившись с параметрами по умолчанию.
  9. Аналогичную процедуру импорта выполним для промежуточных сертификатов, поместив их в ветку «Промежуточные центры сертификации» (Intermediate Certification Authorities).
  10. Перезапустим службу сервера 1С. После этой процедуры операционная система начнет корректно доверять защищенным соединениям с узлами 1С.

Решение 5. Обновление файла cacert.pem в папке платформы 1С

Если ваша конфигурация 1С запущена в режиме совместимости с версией платформы 8.3.7 и ниже, либо сама платформа имеет устаревший релиз, поведение системы безопасности меняется. В этих режимах платформа 1С:Предприятие игнорирует системное хранилище сертификатов Windows и использует собственный встроенный список доверенных удостоверяющих центров.

Этот список хранится в специальном файле под названием cacert.pem, который располагается в каталоге установленной платформы 1С:

C:\Program Files\1cv8\8.3.X.X\bin\cacert.pem (где 8.3.X.X — номер релиза вашей платформы).

Если этот файл устарел, соединение с онлайн-сервисами будет разрываться на этапе SSL-рукопожатия (SSL Handshake). Чтобы исправить это:

  1. Перейдем на портал информационно-технологического сопровождения (ИТС) 1С в раздел загрузки программных компонентов или найдем актуальный архив сертификатов cacert.zip.
  2. Распакуем архив и скопируем новый файл cacert.pem.
  3. Остановим службу сервера 1С.
  4. Заменим устаревший файл cacert.pem в папке bin рабочего релиза платформы новым файлом. Рекомендуем предварительно сохранить резервную копию старого файла, переименовав его, например, в cacert.pem.bak.
  5. Запустим службу сервера 1С заново и проверим работоспособность онлайн-сервисов.

Решение 6. Проверка доступности адресов проверки отзывов сертификатов (OCSP и CRL)

Начиная с версии платформы 8.3.10, механизмы безопасности 1С при установлении защищенного HTTPS-соединения строго проверяют статус отзыва SSL-сертификатов узла назначения. Даже если вы открыли полный доступ к целевым адресам 1С (например, к api.orgregister.1c.ru или login.1c.ru) на вашем корпоративном сетевом шлюзе или прокси-сервере, подключение все равно может завершаться ошибкой.

Это происходит потому, что серверу 1С для успешной проверки подлинности сертификатов дополнительно требуется доступ к внешним серверам проверки отзывов (по протоколам OCSP и CRL). Для сертификатов GlobalSign такими серверами являются:

Если эти адреса заблокированы на брандмауэре вашей компании для учетной записи, под которой функционирует сервер 1С, проверка статуса отзыва завершится аварийно по таймауту, и платформа разорвет безопасное соединение с онлайн-сервисом. Рекомендуется проверить правила фильтрации трафика на пограничном оборудовании и внести указанные домены в список разрешенных сетевых направлений (белый список).

Решение 7. Анализ локальных систем защиты на сервере

Даже если брандмауэр Windows (Windows Firewall) полностью отключен администратором (как в рассматриваемом случае на форуме), на сервере могут присутствовать сторонние компоненты защиты, способные блокировать исходящую сетевую активность рабочих процессов 1С:

Эти программы могут классифицировать интенсивную отправку HTTP-запросов со стороны процесса rphost.exe на внешние веб-ресурсы как подозрительную активность (например, как попытку утечки данных или работу вредоносного ПО) и молчавно блокировать исходящие сокеты. Для решения этой проблемы рекомендуется добавить исполняемые файлы сервера 1С (ragent.exe, rmngr.exe, rphost.exe) в список доверенных программ локального антивирусного ПО и исключить их сетевой трафик из контура глубокого сканирования (SSL-дешифрации).

Подведем итоги совместной работы

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

Для гарантированного устранения подобных неполадок рекомендуем придерживаться следующего чек-листа:

  1. Создавать для службы сервера 1С выделенного доменного пользователя с ограниченными правами локального входа, но с открытыми правами на сетевой доступ через прокси-сервер.
  2. Использовать файл inetcfg.xml для жесткого и централизованного контроля сетевых параметров платформы 1С.
  3. Регулярно обновлять список доверенных корневых сертификатов операционной системы Windows Server.
  4. Контролировать доступность серверов отзыва сертификатов на сетевом шлюзе компании.
← На главную