Каждый системный администратор и специалист 1С рано или поздно сталкивается с задачей организации удаленной работы сотрудников. В процессе настройки внешних подключений часто возникает крайне специфическое поведение платформы «1С:Предприятие»: при попытке запустить базу с удаленного («левого») компьютера под управлением толстого клиента заставка 1С бесконечно появляется, мерцает, исчезает и запускается по кругу, даже не доходя до диалогового окна авторизации пользователя (ввода логина и пароля).
В этой статье мы подробно разберем, почему возникает этот бесконечный цикл, проанализируем сетевую архитектуру взаимодействия клиента и сервера 1С, выясним, почему прямая публикация портов в интернет — это критическая ошибка, и рассмотрим пошаговые сценарии правильной и безопасной организации удаленной работы для конфигураций на обычных формах (таких как «Управление торговлей 10.3»).
Для того чтобы понять физику процесса, нам необходимо детально разобрать механизм, по которому клиентское приложение 1С подключается к серверному кластеру. Этот процесс состоит из нескольких последовательных этапов:
1540, где запущен процесс ragent).ragent перенаправляет запрос клиента на главный менеджер кластера (порт 1541, процесс rmngr), который занимается авторизацией и распределением нагрузки.rphost, работающий в диапазоне портов 1560–1591) будет обслуживать данное клиентское соединение. На этом этапе происходит ключевой сбой.Проблема трансляции имен (DNS): Сервер 1С внутри локальной сети всегда оперирует своими локальными параметрами. Когда менеджер кластера возвращает клиенту адрес рабочего процесса rphost, он передает не внешний IP-адрес, по которому вы стучались на сервер, а локальное сетевое имя сервера (например, srv-1c-main). Получив этот ответ, клиентский компьютер пытается соединиться с рабочим процессом по имени srv-1c-main. Поскольку «левый» компьютер находится вне локальной сети предприятия, его DNS-сервер понятия не имеет, что такое srv-1c-main, и не может разрешить это имя в IP-адрес.
Программа 1С получает отказ соединения, пытается переподключиться заново, инициализирует повторный запуск сессии, закрывает окно заставки и тут же открывает его снова. Мы наблюдаем тот самый бесконечный цикл мерцания логотипа 1С.
Помимо проблемы с DNS, бесконечный цикл на этапе заставки может свидетельствовать еще о двух проблемах:
1540 и 1541, но закрыть пул портов 1560–1591. Клиент авторизуется на главном порту, но теряет связь при попытке подключиться к выделенному процессу rphost.Рассмотрим ситуацию, когда администратор пытается решить проблему «в лоб» — путем настройки проброса портов (Port Forwarding) на офисном роутере, чтобы пустить внешнего клиента напрямую к серверу. На этом пути вас ждут серьезные технические препятствия и угрозы безопасности:
Во-первых, вам придется открыть наружу не один порт, а целый диапазон:
1540 — Агент сервера.1541 — Главный менеджер кластера.1560 по 1591 (а в крупных кластерах и больше) — порты рабочих процессов.Во-вторых, это критическая угроза информационной безопасности. Публикация портов СУБД (MS SQL, PostgreSQL) или портов сервера 1С напрямую в глобальную сеть — грубейшее нарушение стандартов безопасности. Злоумышленники мгновенно обнаружат открытые порты с помощью автоматизированных сканеров (например, Shodan) и начнут проводить атаки методом перебора (brute-force), искать уязвимости в самой платформе 1С для проникновения в операционную систему сервера или пытаться перехватить незашифрованный трафик, который передается между клиентом и сервером.
Кроме того, если внешний клиент пытается подключиться, используя серый IP-адрес из диапазона 192.168.х.х (как в нашем примере на форуме), роутинг без специализированного туннелирования физически невозможен. Сети диапазона 192.168.0.0/16, 10.0.0.0/8 и 172.16.0.0/12 являются частными (немаршрутизируемыми в Интернет) согласно стандарту RFC 1918. Провайдеры просто отбросят такие пакеты.
Даже если вы решите проблему с сетевой доступностью портов и разрешением имен, работа старых конфигураций (таких как «Управление торговлей 10.3») напрямую через интернет превратится в кошмар для пользователей. Разберем, почему это происходит.
Конфигурация УТ 10.3 построена на архитектуре обычных форм. Это означает, что она работает в режиме Толстого клиента. В режиме толстого клиента практически вся бизнес-логика выполняется на компьютере пользователя. Для выполнения любого действия (открытие справочника, проведение документа, формирование отчета) локальный компьютер совершает сотни и тысячи последовательных запросов к серверу 1С и СУБД, пересылая огромные массивы сырых данных.
Толстый клиент критически чувствителен к задержкам сети (Latency / Ping). В локальной сети офиса пинг составляет менее 1 мс, и тысячи мелких запросов пролетают незаметно. Но если запустить толстый клиент через интернет (где пинг даже на хорошем канале составляет 20–50 мс), задержка на каждом мелком запросе суммируется. В результате операция проведения документа, которая в офисе занимает полсекунды, через интернет будет выполняться 5–10 минут, а интерфейс программы будет постоянно находиться в состоянии «Не отвечает».
Также важно помнить, что конфигурации на обычных формах принципиально невозможно опубликовать на веб-сервере (IIS или Apache) для работы через веб-браузер или тонкий клиент. Веб-публикация поддерживает только управляемый интерфейс (управляемые формы), появившийся в более современных конфигурациях (например, УТ 11, БП 3.0, ЗУП 3.1).
Для эффективной, безопасной и быстрой работы с конфигурацией УТ 10.3 (и любыми другими базами на обычных формах) существуют только два рабочих сценария.
Это самый надежный, быстрый и безопасный способ. При такой схеме сама программа 1С физически запускается и работает на сервере внутри вашей локальной сети, а по интернету передается только «картинка» экрана и команды ввода (мышь и клавиатура).
Рассмотрим процесс настройки по шагам:
WireGuard, OpenVPN или L2TP/IPsec).192.168.100.х) и безопасный шифрованный канал.mstsc) и подключается к терминальному серверу внутри офиса.RemoteApp. В этом случае 1С будет запускаться в отдельном красивом окне прямо на рабочем столе домашнего компьютера, маскируясь под локально установленную программу, но фактически исполняясь на мощностях сервера.Если у вас нет лицензий на терминальный сервер (RDS) или по каким-то организационным причинам требуется запустить базу 1С именно в локально установленной платформе на внешнем компьютере, выполним техническую настройку обхода проблемы бесконечной заставки.
Проанализируем шаги настройки данного сценария:
Для этого откроем текстовый редактор «Блокнот» обязательно от имени Администратора. В блокноте откроем файл системных маршрутов по пути: C:\Windows\System32\drivers\etc\hosts (обратите внимание, у файла hosts нет расширения).
Добавим в самый конец файла новую строку, где укажем локальный IP-адрес сервера 1С и его сетевое имя внутри офиса. Например:
# Соответствие IP-адреса и локального имени сервера 1С в офисе
192.168.1.100 srv-1c-main
Сохраним изменения в файле hosts.
В поле «Кластер серверов 1С:Предприятия» указываем именно сетевое имя сервера (в нашем примере — srv-1c-main), а не его IP-адрес. В поле «Имя информационной базы» пишем точное имя базы на сервере.
hosts), получит список процессов и сможет успешно подключиться к рабочему процессу rphost. Бесконечный цикл перезапуска логотипа прекратится.Внимание! При использовании Варианта Б будьте готовы к крайне низкой скорости работы интерфейса. Любое формирование отчета по продажам или проведение тяжелой расходной накладной может вешать программу на несколько минут. Если объем документов велик, единственным разумным выбором останется переход на Вариант А (VPN + RDP).