Каждый системный администратор и разработчик 1С рано или поздно сталкивается с задачей организации удаленного доступа к базам данных. Современные реалии требуют гибкости: пользователи хотят иметь возможность работать из дома, в дороге или из удаленных филиалов, желательно без установки тяжелого дистрибутива платформы на свои персональные компьютеры. Публикация базы на веб-сервере (IIS или Apache) кажется идеальным решением. Однако при попытке запустить некоторые конфигурации в окне браузера нас может ожидать неприятный сюрприз — вместо привычного интерфейса с разделами, документами и справочниками открывается абсолютно пустой серый экран, где отображается только стандартный рабочий стол 1С.
Давайте подробно проанализируем данную ситуацию, выясним глубинную техническую причину этого поведения платформы «1С:Предприятие 8» и разберем по шагам все возможные варианты решения этой проблемы.
Главная и единственная причина, по которой интерфейс базы данных не отображается в веб-браузере, кроется в архитектуре самой конфигурации. В истории развития платформы «1С:Предприятие» существует два принципиально разных типа интерфейса:
Веб-клиент 1С физически способен работать только с управляемыми формами. Давайте разберем технические причины этого ограничения:
Во-первых, это связано с абсолютным позиционированием элементов на обычных формах. Когда разработчик проектирует обычную форму, он вручную расставляет кнопки, поля ввода и таблицы на пиксельной сетке. Платформа привязывает их к жестким координатам. Веб-браузеры работают по совершенно иным законам — они используют динамическую верстку (HTML/CSS). Платформа 1С умеет автоматически преобразовывать в HTML-код только структуру управляемых форм, где элементы размещаются декларативно (в виде дерева групп), но она технически не способна корректно транслировать пиксельные привязки обычных форм в адаптивный веб-интерфейс.
Во-вторых, ограничение накладывает отсутствие строгого разделения кода. В обычных формах программный код (включая процедуры проведения документов, сложные расчеты и прямые запросы к базе данных) выполняется непосредственно на стороне клиента (в так называемом толстом клиенте). Веб-браузер исполняет исключительно JavaScript и не имеет прямого доступа к ресурсам операционной системы или СУБД. В управляемом приложении весь код жестко разделен специальными директивами компиляции:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Этот код выполняется в браузере (веб-клиенте)
ВыполнитьДействиеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ВыполнитьДействиеНаСервере()
// Этот код выполняется исключительно на сервере приложений 1С
// Здесь доступны тяжелые запросы и работа с базой данных
КонецПроцедуры
В старых конфигурациях вроде ЗУП 2.5 такого разделения нет. Попытка выполнить модуль обычной формы внутри браузера приведет к моментальному краху сессии, так как браузер не поймет серверных процедур. Именно поэтому платформа превентивно блокирует отображение любого интерфейса обычного приложения в веб-клиенте, оставляя пользователю лишь пустой рабочий стол без метаданных.
Часто системные администраторы пытаются решить проблему обходным путем через Конфигуратор. Они заходят в свойства конфигурации и включают свойство Использовать обычные формы в управляемом приложении в надежде, что это «подружит» старый интерфейс с веб-сервером IIS/Apache.
Давайте проанализируем, почему этот метод не работает. Данный флаг действительно позволяет запускать обычные формы внутри управляемого интерфейса, но этот режим работает исключительно при запуске локального толстого клиента в режиме управляемого приложения. При попытке подключения через Тонкий клиент или Веб-клиент (браузер) платформа игнорирует обычные формы, и пользователь снова видит пустой рабочий стол. Чуда не произойдет: переписать логику работы форм без участия программиста невозможно.
Что же делать, если пользователи категорически отказываются переходить на новые конфигурации (например, продолжают работать в ЗУП 2.5), а устанавливать платформу 1С на каждый удаленный ПК нет возможности или желания? Рассмотрим эффективные альтернативные методы организации удаленной работы.
Если стандартный RDP-доступ пугает вас тем, что пользователи получают полный доступ к рабочему столу сервера, оптимальным решением станет использование технологии Microsoft RemoteApp (служба удаленных рабочих столов Windows Server).
Разберем этот процесс по шагам:
1cv8.exe (Толстый клиент)..rdp или настраивается доступ через RDS Web Access.При запуске такого ярлыка на локальном компьютере пользователя программа 1С открывается в обычном независимом окне. Для конечного сотрудника это выглядит так, будто 1С установлена прямо на его компьютере. Нет никакого "второго рабочего стола" сервера, при этом программа работает в режиме толстого клиента и полноценно отображает интерфейс ЗУП 2.5.
Если вам критически важно, чтобы пользователи заходили в 1С именно через обычный веб-браузер без установки каких-либо клиентов на свои ПК и настройки VPN, можно использовать альтернативные программные продукты, например TSplus.
Рассмотрим подробнее принцип работы этой технологии:
TSplus — это альтернативный сервер терминалов, который имеет встроенный сервер Web Portal с поддержкой HTML5. Вы устанавливаете TSplus на свой сервер с базой 1С. Пользователь открывает любой браузер (Chrome, Safari, Firefox), переходит по защищенному адресу вашего сервера, авторизуется и запускает опубликованный сеанс 1С. Терминальный сервер на лету транслирует графический интерфейс толстого клиента 1С прямо в окно браузера, используя протокол HTML5. Пользователь получает полноценную работу с обычными формами прямо в браузере, при этом на сервере фактически крутится стандартная сессия толстого клиента.
При переходе на терминальный доступ (RDP или RemoteApp) системные администраторы часто сталкиваются с проблемой "отваливающихся" локальных принтеров у удаленных пользователей. Давайте разберем, как решить эту классическую проблему:
gpedit.msc). Перейдите по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров. Включите политику Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола. Это позволит серверу использовать универсальный драйвер печати без необходимости устанавливать точные копии драйверов локальных принтеров на сам сервер.Мы выяснили причину отсутствия интерфейса: обычные формы конфигурации ЗУП 2.5 несовместимы с технологией веб-клиента 1С на физическом уровне. Применение RemoteApp или HTML5-терминалов решит техническую проблему удаленного доступа "здесь и сейчас", однако важно помнить, что поддержка редакции 2.5 давно прекращена (за исключением версии КОРП). Единственным стратегически верным решением является планомерный переход на управляемую конфигурацию Зарплата и управление персоналом редакции 3.1, которая изначально проектировалась под веб-стандарты и будет безупречно работать на любых веб-серверах.