Многие специалисты, организующие удаленную работу с базами данных 1С в клиент-серверном варианте, сталкиваются с парадоксальной ситуацией. Мы настроили VPN-туннель, канал связи кажется стабильным и быстрым, режим 1С:Предприятие запускается и работает без нареканий. Однако при попытке открыть Конфигуратор, процесс останавливается на загрузке дерева конфигурации и может висеть часами. Давайте разберемся, почему так происходит и как мы можем исправить эту ситуацию, основываясь на техническом устройстве платформы и сетевых протоколов.
Для начала проанализируем, в чем фундаментальная разница между режимами запуска, которые мы используем.
Когда мы запускаем 1С:Предприятие (особенно в современных конфигурациях, таких как "Бухгалтерия предприятия" или "ЗУП"), мы чаще всего работаем в режиме Тонкого клиента. Этот режим специально оптимизирован разработчиками платформы для работы по низкоскоростным и нестабильным каналам связи (Internet, VPN). Тонкий клиент не "тянет" на себя большие объемы данных; он получает от сервера уже готовые "картинки", результаты запросов и отображаемые формы. Трафик при этом минимален.
Ситуация кардинально меняется, когда мы запускаем Конфигуратор. Этот режим всегда работает как Толстый клиент. Давайте посмотрим, что это значит для нашей сети:
Еще одной, более скрытой причиной, которую мы должны рассмотреть, является проблема фрагментации пакетов. VPN-соединение "оборачивает" (инкапсулирует) пакеты данных 1С в свои заголовки.
Стандартный размер пакета (MTU — Maximum Transmission Unit) в Ethernet сетях обычно равен 1500 байт. Платформа 1С пытается отправить пакет максимального размера. Однако, проходя через VPN, к пакету добавляются служебные данные туннеля. Итоговый размер превышает 1500 байт.
Если сетевое оборудование настроено некорректно (установлен флаг запрета фрагментации), такие пакеты просто отбрасываются. Толстый клиент 1С крайне плохо реагирует на потерю пакетов при передаче больших бинарных данных конфигурации. Это выглядит как "затык": полоса загрузки доходит до определенного момента и замирает навсегда.
Давайте признаем, что это "золотой стандарт" для разработки. Самым надежным и быстрым способом работы с Конфигуратором является запуск его непосредственно в той же локальной сети, где находится сервер 1С.
Мы рекомендуем использовать VPN только для того, чтобы подключиться по RDP к терминальному серверу или рабочей станции внутри периметра сети. Для эффективного управления множеством таких соединений можно использовать EasyRDPHub — удобную утилиту для управления RDP-подключениями, а чтобы не вводить данные каждый раз вручную, настройте быстрое подключение к RDP с автоматическим вводом пароля.
Преимущества:
Если по каким-то причинам RDP недоступен и нам необходимо заставить работать Конфигуратор через VPN, нам придется заняться тонкой настройкой сети. Наша задача — избежать фрагментации пакетов.
Рассмотрим, как диагностировать проблему с MTU. Запустите командную строку Windows (CMD) и выполните команду ping до сервера с флагом запрета фрагментации и заданным размером пакета:
ping <адрес_сервера> -f -l 1472
Если вы видите сообщение "Требуется фрагментация, но установлен запрещающий флаг", значит, пакет не проходит. Нам нужно уменьшать значение (например, 1400, 1350), пока пинг не пройдет успешно. Найденное значение (плюс заголовки IP и ICMP, обычно 28 байт) и будет оптимальным MTU.
Затем, на виртуальном сетевом интерфейсе VPN (как на клиенте, так и желательно на сервере) нужно установить это значение MTU. Обычно это делается в настройках VPN-клиента или через реестр/командную строку Windows.
Это позволит "протолкнуть" данные конфигурации, но не избавит от задержек, связанных с пингом.
Иногда после неудачной попытки загрузки конфигурации через нестабильную сеть, локальный кэш 1С оказывается поврежденным («битые» файлы). Это может мешать даже при последующем нормальном подключении.
Мы рекомендуем очистить временные файлы. Для этого удалите содержимое следующих папок (предварительно закрыв все окна 1С):
C:\Users\<Имя_Пользователя>\AppData\Local\1C\1cv8C:\Users\<Имя_Пользователя>\AppData\Roaming\1C\1cv8В некоторых случаях может потребоваться и автоматическая очистка серверного кэша скриптом, если проблемы с сеансовыми данными возникают на стороне сервера.
Если прямой доступ к Конфигуратору невозможен, а RDP недоступен, мы можем использовать следующие обходные пути:
Выгрузите базу данных (файл .dt) или конфигурацию (.cf) один раз. Проводите разработку и тестирование локально. При слиянии изменений вам может очень помочь объединение модулей в разрезе методов с помощью KDiff3, которое теперь доступно непосредственно в конфигураторе. Затем создайте файл поставки и накатите его на продуктив через механизм Обновить конфигурацию из файла.
Мы можем настроить Сервер хранилища конфигурации (доступный по протоколу TCP). Протокол работы с хранилищем более оптимизирован для передачи изменений, чем полное открытие конфигурации БД. Вы подключаете свою пустую локальную базу к хранилищу через VPN, получаете только нужные изменения и захватываете объекты.
Если вам нужно обновить конфигурацию, но GUI не открывается, можно использовать командную строку для пакетного обновления. Для подготовки необходимых служебных файлов может пригодиться автоматическая генерация ConfigDumpInfo.xml в 1С. Создайте bat файл или скрипт, который выполнит обновление на сервере, чтобы не тянуть трафик на клиентскую машину.
Давайте подведем итог. Проблема с открытием Конфигуратора через VPN — это не ошибка программы, а архитектурная особенность работы Толстого клиента в сетях с высокими задержками.
Лучшее решение: Использовать RDP для доступа к машине внутри локальной сети.
Техническое решение: Настройка MTU на VPN-интерфейсе и отключение IPv6 (в некоторых случаях помогает избежать конфликтов).
Организационное решение: Использование хранилища конфигурации или разработка на локальных копиях с последующим обновлением через файлы обновлений.