Почему тонкий клиент 1С не подключается к базе, опубликованной на веб-сервере Apache, при этом веб-клиент работает?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

Мы сталкиваемся с достаточно распространенной, но часто неочевидной проблемой при публикации информационных баз 1С на веб-сервере Apache. Пользователь сообщает, что при попытке подключения к базе 1С через веб-браузер (веб-клиент) все работает корректно, однако тонкий клиент не может установить соединение. Вместо нормального запуска тонкий клиент постоянно перезапускает окно выбора пользователя, причем этот цикл прекращается только после остановки службы Apache. Давайте разберем эту ситуацию подробно и выясним, как ее победить.

Разбираемся с проблемой: Тонкий клиент против Веб-клиента

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

  1. Веб-клиент: Мы можем работать с веб-клиентом непосредственно в любом современном интернет-браузере. Для его работы не требуется предварительная установка на компьютер пользователя. Достаточно ввести в адресную строку браузера URL веб-сервера, где опубликована информационная база, и веб-клиент будет загружен и начнет исполняться. Веб-клиент ориентирован на максимальную доступность и удобство использования из любой точки, где есть интернет.
  2. Тонкий клиент: Тонкий клиент, в отличие от веб-клиента, требует предварительной установки на компьютер пользователя. Он подключается к информационной базе также по протоколу HTTP или HTTPS через настроенный веб-сервер. Однако, принцип его работы иной: вся основная логика, работа с базой данных, объектными данными и выполнение запросов происходит на стороне сервера 1С:Предприятие. Тонкий клиент лишь отображает пользовательский интерфейс и передает команды пользователя серверу. Он использует более широкий набор возможностей платформы 1С по сравнению с веб-клиентом и обеспечивает более высокую производительность при интенсивной работе с данными, а также поддерживает работу с локальными клиентскими лицензиями.

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

Анализ некорректного URL-адреса и его исправление

Основная причина проблемы, как выяснилось в ходе обсуждения на форуме, кроется в некорректном формате URL-адреса, который был указан для подключения тонкого клиента. Давайте посмотрим на адрес, который был предоставлен автором:

ws="http://localhost:25500\VSE_KOVRY";

Проанализируем этот URL-адрес. В нем явно видна ошибка, которая является критичной для веб-протоколов:

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

Правильный формат URL для подключения тонкого клиента к базе, опубликованной на веб-сервере Apache, должен выглядеть так:

http://localhost:25500/VSE_KOVRY

Здесь:

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

Диагностика проблемы: Журналы 1С и Apache

Даже если основная причина была в URL, в процессе поиска решения мы всегда должны обращаться к журналам. Они являются нашими главными помощниками в диагностике.

Журнал регистрации 1С

В данном случае журнал регистрации 1С показывал повторяющийся цикл событий:


Сеанс. Аутентификация
Сеанс. Начало
Данные. Изменение Регистр сведений. Замеры статистики
Сеанс. Завершение

Такой повторяющийся паттерн "Аутентификация" -> "Начало" -> "Завершение" без полноценной работы пользователя является четким индикатором того, что тонкий клиент пытается установить соединение, но по какой-то причине не может его завершить успешно или поддерживает его стабильно. Это может быть вызвано:

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

В нашем случае, неверный URL приводил к тому, что клиент не мог корректно взаимодействовать с сервером 1С, инициируя, но не завершая успешно сессию.

Логи Apache

Логи Apache в данном случае не показали явных ошибок, связанных с доступом или синтаксисом конфигурации. Мы видим только стандартные события запуска и остановки службы:


[Wed Jun 09 18:45:28.935962 2021] [mpm_winnt:notice] [pid 8168:tid 728] AH00455: Apache/2.4.48 (Win64) OpenSSL/1.1.1k configured -- resuming normal operations
[Wed Jun 09 18:45:28.935962 2021] [mpm_winnt:notice] [pid 8168:tid 728] AH00456: Server built: May 18 2021 19:22:04
...

Отсутствие ошибок в логах Apache не всегда означает, что все в порядке. В данном сценарии, когда URL был синтаксически неправильным с точки зрения веб-стандартов, но Apache мог обрабатывать начальный запрос (например, перенаправлять его к модулю 1С), сам Apache мог не считать это своей внутренней ошибкой. Проблема возникала на более высоком уровне — при интерпретации пути к опубликованной базе уже модулем 1С или самим тонким клиентом. Тем не менее, всегда рекомендуется проверять логи доступа (access_log) и ошибок (error_log) Apache на предмет:

Дополнительные аспекты для успешной публикации и работы тонкого клиента

Помимо корректного URL-адреса, существует ряд других важных моментов, которые мы должны учитывать для обеспечения стабильной работы тонкого клиента с опубликованной базой 1С:

  1. Корректная конфигурация Apache для 1С:
    • Алиасы (псевдонимы): Убедитесь, что в файле конфигурации Apache (обычно httpd.conf или в отдельном файле конфигурации для виртуального хоста) правильно настроены алиасы, указывающие на директории с дистрибутивами тонкого клиента. Это критично для его автоматического обновления.
    • Права доступа: В конфигурации Apache 2.4 и выше необходимо использовать директиву Require all granted вместо устаревших Order allow,deny и Allow from All для обеспечения доступа к опубликованным ресурсам. Мы должны быть уверены, что пользователь, от имени которого работает Apache (например, NETWORK SERVICE), имеет достаточные права доступа к каталогу публикации базы и к каталогу установки платформы 1С.
    • Модули 1С: Убедитесь, что модуль расширения веб-сервера 1С (например, wsap24.dll для Apache 2.4) корректно подключен и работает.
  2. Совпадение разрядностей платформы и веб-сервера: Крайне важно, чтобы разрядность установленной платформы 1С (например, 64-битная) и веб-сервера Apache (тоже 64-битная) совпадали. Несоответствие может привести к фатальным ошибкам при попытке загрузки модулей 1С веб-сервером.
  3. Настройка автоматического обновления тонкого клиента:

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

  4. Сетевые настройки и фаерволлы:

    Мы должны убедиться, что сетевые экраны (фаерволлы) на сервере и на клиентских машинах не блокируют доступ к порту, на котором работает Apache (в нашем примере 25500). Также проверьте маршрутизацию и доступность сервера по указанному имени или IP-адресу.

Заключение

Эта тема с форума ярко демонстрирует, насколько важна внимательность к деталям при настройке IT-инфраструктуры 1С. Казалось бы, незначительная опечатка – использование обратного слеша \ вместо прямого / в URL – привела к полной неработоспособности тонкого клиента и циклическому перезапуску окна аутентификации.

Урок, который мы можем извлечь из этой ситуации: при возникновении проблем с подключением, особенно если веб-клиент работает, а тонкий клиент – нет, всегда начинаем с проверки самых базовых настроек: правильность URL-адреса, соответствие протоколов, портов и синтаксиса. Журналы регистрации 1С и логи веб-сервера являются нашими основными инструментами диагностики, но иногда простой, наводящий вопрос, как в нашем случае "Шо?", может заставить перепроверить очевидные вещи и привести к быстрому решению. Внимательность и системный подход – ключ к успешному администрированию 1С.

← На главную