Рано или поздно перед разработчиками и системными администраторами встает задача организации удаленной работы или интеграции для конфигураций, разработанных на базе обычных форм. Ярким представителем таких систем является «1С:Управление производственным предприятием 1.3» (УПП). Возникает резонный вопрос: можно ли опубликовать такую конфигурацию на веб-сервере (IIS или Apache) так же, как это делается для современных управляемых приложений? Рассмотрим эту проблему подробно, разберем технические нюансы платформы «1С:Предприятие» и выясним, какие существуют обходные пути.
Для понимания сути проблемы проанализируем, как именно платформа «1С:Предприятие» взаимодействует с пользователем в различных режимах запуска. Платформа имеет жесткое архитектурное разделение интерфейсной логики:
Толстого клиента. Этот режим требует установки полноценной платформы на локальный компьютер пользователя и использует прямое низкоуровневое соединение с сервером «1С» или файловой базой данных по протоколу TCP/IP. Толстый клиент физически не умеет транслировать свой интерфейс в HTML/CSS-код для отправки по HTTP/HTTPS.Тонкий клиент, либо непосредственно веб-браузер (Веб-клиент). В этом случае все взаимодействие строится на отправке легковесных HTTP/HTTPS-запросов к веб-серверу (IIS или Apache), который передает их на сервер приложений «1С» и возвращает клиенту готовый XML/JSON-пакет или HTML-страницу.Если мы попытаемся опубликовать базу данных «1С:УПП 1.3» на веб-сервере и зайти в нее через браузер, то результатом будет пустое окно или критическая ошибка. Браузер не сможет отрендерить ни один документ или справочник, интерфейс которых спроектирован на обычных формах. Таким образом, классический удаленный доступ к интерфейсу УПП 1.3 через веб-сервер технически невозможен.
Несмотря на невозможность запустить интерфейс обычных форм в браузере, публикация базы УПП 1.3 на веб-сервере — это вполне стандартная и очень часто используемая на практике задача. Разберем основные сценарии, когда эта процедура необходима:
Управляемое приложение и обычное приложение. Это позволяет разработчикам создавать точечные управляемые формы для конкретных задач (например, рабочее место кладовщика на ТСД или интерфейс для мобильного торгового представителя) и публиковать только их, в то время как бухгалтеры и производственники продолжают работать в локальном толстом клиенте на обычных формах.Если перед нами стоит задача именно предоставить пользователям удаленный доступ к интерфейсу УПП 1.3, а не настроить обмен данными, то публикация на веб-сервере нам не поможет. Выясним, какие проверенные технологии применяются в этом случае:
Это самый популярный, стабильный и производительный метод для конфигураций на обычных формах. Все пользователи подключаются к выделенному серверу терминалов. На этом сервере локально для каждого сеанса запускается Толстый клиент 1С, который быстро обменивается данными с СУБД по локальной сети.
Технология RemoteApp позволяет сделать этот процесс максимально бесшовным: для пользователя программа выглядит так, будто она запущена прямо на его рабочем столе, без отображения рабочего стола самого терминального сервера.
Если часть сотрудников должна работать удаленно через браузер или мобильные устройства, мы можем пойти по пути создания управляемых форм «поверх» существующей конфигурации УПП. Для этого выполним следующие шаги:
Если мы публикуем базу УПП для обмена данными через веб- или HTTP-сервисы, необходимо учитывать технические нюансы администрирования веб-серверов.
Ограничение на размер передаваемых пакетов: При интенсивном обмене данными файлы или таблицы могут превышать стандартные лимиты веб-серверов. Например, IIS по умолчанию блокирует запросы размером более 30 МБ, а Apache — более 16 МБ. Чтобы избежать ошибок, необходимо скорректировать настройки веб-сервера.
Для веб-сервера IIS это делается в файле web.config, который создается в каталоге публикации:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
(В данном примере лимит увеличен до 100 МБ).
Для веб-сервера Apache ограничение настраивается в файле httpd.conf с помощью директивы LimitRequestBody:
LimitRequestBody 104857600
Лицензирование веб-соединений: Важно помнить, что каждый вызов опубликованного веб-сервиса или HTTP-сервиса создает на сервере «1С» сеанс под указанным пользователем. Этот сеанс потребляет одну клиентскую лицензию платформы на время выполнения запроса. При проектировании высоконагруженных систем интеграции рекомендуется использовать пулы соединений или оптимизировать частоту обращений, чтобы не заблокировать работу обычных пользователей из-за нехватки свободных лицензий.
Проанализировав все технические аспекты, мы видим, что публикация конфигурации УПП 1.3 на веб-сервере — это вполне реальная и полезная задача, но только если она направлена на организацию интеграций (через сервисы и OData) или на работу с точечно разработанными управляемыми формами в гибридном режиме запуска.