Представим стандартную ситуацию: в организации используется файловая база данных «1С:Бухгалтерия 3.0» (объемом около 1 ГБ), расположенная на одном из офисных компьютеров под управлением Windows 10. В локальной сети офиса все работает быстро и без нареканий. Однако при попытке настроить удаленную работу сотрудников через VPN-соединение напрямую к сетевой папке (файловой шаре) программа намертво зависает при запуске. Заставка висит по 10–15 минут, а в диспетчере задач процесс 1С отображается в состоянии «Не отвечает».
В рамках этой статьи мы подробно проанализируем, почему файловая 1С физически не способна стабильно работать через обычную сетевую папку по VPN, разберем скрытые опасности такого подключения и рассмотрим надежные альтернативные варианты организации удаленной работы, проверенные практикой.
Среди начинающих специалистов существует заблуждение, что при запуске базы 1С по сети компьютер удаленного пользователя пытается полностью скопировать файл базы данных 1Cv8.1CD (размером 1 ГБ и более) на свой локальный диск. Это не так. На самом деле причина зависания кроется в архитектуре файловой СУБД 1С и особенностях работы сетевых протоколов.
Рассмотрим подробнее физику этого процесса:
1Cv8.1CD.
В локальной сети (LAN) задержка пакета (ping / RTT — Round Trip Time) составляет менее 1 миллисекунды. Поэтому тысячи мелких запросов выполняются незаметно для пользователя.
При подключении через VPN-канал задержка пакета (ping) неизбежно возрастает до 20–80 мс. Проанализируем простую математику: если для запуска конфигурации требуется совершить 100 000 последовательных запросов к файлу базы данных, то при задержке в 40 мс чистое сетевое время ожидания ответов составит: 100 000 * 0.04 сек = 4 000 секунд (более 1 часа!). Именно это время пользователи воспринимают как глухое зависание программы.
В условиях VPN-соединения задержки при передаче команд сброса кэша приводят к постоянным коллизиям. Удаленный клиент банально «засыпает» в ожидании ответа от файла блокировок 1Cv8.1CL, что парализует работу как удаленных, так и локальных пользователей.
Зависание и медленная работа — это лишь верхушка айсберга. Главная опасность схемы работы «файловая база через SMB поверх VPN» заключается в высочайшем риске безвозвратного повреждения базы данных.
В файловом режиме работы 1С отсутствует выделенный сервер СУБД (транзакционный менеджер), который мог бы откатить незавершенную транзакцию при обрыве связи. Вся логика по записи данных выполняется непосредственно на компьютере пользователя. Если у удаленного сотрудника хотя бы на доли секунды пропадет интернет или перезагрузится VPN-туннель в тот момент, когда программа записывает документ или проводит регламентную операцию, целостность файла 1Cv8.1CD будет нарушена.
В результате при следующем запуске программа выдаст критическую ошибку «Файл базы данных поврежден» или «Ошибка формата потока». Восстановить базу встроенной утилитой chdbfl.exe удается далеко не всегда, что приводит к частичной или полной потере учетных данных.
Выясним причину еще одной неочевидной проблемы при попытке запуска 1С через VPN — это отсутствие лицензии. По умолчанию платформа 1С ищет сетевые многопользовательские ключи защиты с помощью широковещательных UDP-запросов по порту 475. Однако сетевое оборудование и VPN-серверы по умолчанию блокируют широковещательный трафик (broadcast) между разными подсетями.
В результате удаленный клиент выдает ошибку: «Не найдена лицензия». Для исправления этой проблемы на удаленном компьютере необходимо вручную настроить конфигурационный файл драйвера защиты nethasp.ini, явно указав IP-адрес компьютера, на котором физически установлен USB-ключ или программная лицензия.
Разберем пример правильного заполнения секции файла nethasp.ini (файл обычно располагается в папке C:\Program Files\1cv8\conf\ или C:\Program Files (x86)\1cv8\conf\):
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь локальный IP-адрес ПК-хоста в офисе
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
После такой настройки платформа будет обращаться за лицензией целенаправленно по указанному IP-адресу, минуя блокируемые широковещательные запросы.
Для того чтобы организовать комфортную, а главное безопасную работу пользователей с файловой базой 1С через интернет, необходимо полностью исключить прямое сетевое обращение платформы к файлу базы данных через SMB. Рассмотрим три проверенных и безопасных варианта.
Это наиболее современный, быстрый и бюджетный способ работы для конфигураций на управляемых формах (к которым относится «1С:Бухгалтерия 3.0»). При такой схеме на офисном компьютере, где физически расположена база данных, разворачивается бесплатный веб-сервер (например, Apache 2.4 или встроенный компонент Windows IIS).
Веб-сервер обращается к файлу базы данных 1Cv8.1CD локально, на максимальной скорости дисковой подсистемы (HDD/SSD). Удаленные пользователи подключаются к веб-серверу через интернет с помощью Тонкого клиента 1С или обычного интернет-браузера по протоколам HTTP/HTTPS.
Преимущества решения:
Пошаговый алгоритм публикации базы на Apache:
cb), выбираем веб-сервер (Apache 2.4), указываем каталог на диске для хранения файлов публикации и нажимаем кнопку «Опубликовать».После этого удаленные пользователи добавляют базу в свой список 1С, выбрав тип подключения «На веб-сервере», и указывают адрес вида: http://[Внешний_IP_адрес_офиса]/cb.
Данный вариант идеально подходит для сильно доработанных конфигураций или в случаях, когда на веб-сервере некорректно работают специфические внешние компоненты (например, драйверы торгового оборудования, весов или принтеров этикеток).
При терминальном доступе вся программа 1С физически запускается в сессии пользователя непосредственно на офисном сервере. На компьютер удаленного сотрудника передается лишь видеопоток экрана (картинка), а обратно возвращаются нажатия клавиш клавиатуры и движения мыши.
Преимущества решения:
Недостатки:
Если в компании нет штатного системного администратора для обслуживания собственного веб-сервера или терминала, оптимальным выбором станут официальные облачные решения от фирмы 1С:
Попытка запустить файловую базу 1С напрямую через VPN-соединение по сети — это критическая ошибка проектирования ИТ-инфраструктуры, которая неизбежно приведет к постоянным зависаниям и в конечном итоге к разрушению базы данных. Для обеспечения безопасной и производительной работы удаленных пользователей всегда используйте связку «Веб-сервер + Тонкий клиент» или технологию RDP.