Работа удаленного разработчика с крупными конфигурациями, такими как 1С:Комплексная автоматизация 2.2 или 1С:ERP, часто сопряжена с трудностями передачи больших объемов данных. Пересылка .cf файлов размером около 1 Гб через TeamViewer или другие средства удаленного доступа крайне неэффективна. В этой статье мы разберем, как правильно настроить работу с хранилищем конфигурации через VPN, проанализируем типичные ошибки и выясним, почему «простой» проброс сетевой папки может привести к фатальным последствиям для базы данных.
Рассмотрим стандартную ситуацию: разработчик подключается к сети заказчика через VPN-туннель и пытается подключиться к хранилищу конфигурации, которое расположено в «расшаренной» (Shared) сетевой папке. На первый взгляд, это кажется логичным — система видит путь как локальный. Однако здесь кроется серьезная опасность.
Проанализируем работу протокола SMB (через который работают сетевые папки Windows) в условиях VPN-соединения. Протокол 1С при работе с файловым хранилищем крайне чувствителен к микро-разрывам связи и задержкам (latency). Выясним, что происходит в момент помещения объектов (команды Поместить в хранилище):
В результате мы получаем ситуацию, когда индекс ссылается на несуществующие или недописанные данные. Это приводит к ошибке «Поток поврежден» или «Неверный формат хранилища». Восстановление хранилища в таких случаях — процедура сложная и не всегда успешная.
Для стабильной работы через VPN-каналы мы рекомендуем полностью отказаться от файлового доступа в пользу специализированной службы — Сервера хранилища конфигураций 1С. Рассмотрим, почему это безопаснее:
crserver оптимизирует передачу данных, что критично для конфигураций объемом 900 Мб и более.Разберем по шагам процесс запуска службы на стороне заказчика. Для этого не требуется поднимать веб-сервер (IIS или Apache), достаточно стандартных средств платформы 1С.
1. На сервере заказчика необходимо зарегистрировать службу сервера хранилища. Это делается через командную строку. Пример команды для регистрации службы:
sc create "1C:Enterprise Configuration Repository Server" binpath= "C:\Program Files\1cv8\8.3.11.3034\bin\crserver.exe -srvc -d C:\StorageData" displayname= "1C:Enterprise Configuration Repository Server" depend= "Tcpip" start= auto
В данном примере параметр -d указывает на каталог, где будут физически располагаться файлы хранилищ. Проанализируем параметры: -srvc запускает приложение как службу Windows, а start= auto обеспечит автоматический запуск при перезагрузке сервера.
2. После запуска службы необходимо настроить VPN-туннель таким образом, чтобы порт 1542 был доступен с вашего рабочего компьютера. Если вы используете VPN внутри TeamViewer или специализированные решения (OpenVPN, WireGuard), убедитесь, что брандмауэр на сервере заказчика разрешает входящие соединения по этому порту.
3. В конфигураторе на своем компьютере при подключении к хранилищу вместо пути к папке укажите адрес сервера:
tcp://ИмяСервераИлиIP/ИмяХранилища
Рассмотрим дополнительные технические нюансы, которые помогут сделать работу максимально комфортной.
Соответствие версий платформ. Крайне важно, чтобы версия платформы 1С на вашем компьютере и версия crserver.exe на стороне заказчика совпадали вплоть до последнего знака (например, оба должны быть 8.3.11.3034). Различие в версиях часто приводит к загадочным ошибкам «Ошибка сетевого доступа к серверу» при попытке захвата объектов.
Настройка MTU. При работе через VPN пакеты данных инкапсулируются (один пакет вкладывается в другой), что увеличивает их размер. Если размер пакета превышает стандартные 1500 байт, происходит фрагментация, что сильно замедляет 1С. Мы рекомендуем уменьшить значение MTU на сетевом интерфейсе вашего VPN до 1300–1400 байт. Это можно сделать командой:
netsh interface ipv4 set subinterface "Имя_Вашего_VPN_Соединения" mtu=1350 store=persistent
Локальный кэш хранилища. Помните, что 1С хранит кэшированную информацию о хранилище локально на вашем ПК в папке пользователя AppData\Local\1C\1cv8\...\ConfigSave. Если при работе через VPN произошел сбой и хранилище ведет себя странно (например, показывает, что объект захвачен вами, но не дает его редактировать), попробуйте очистить этот кэш.
Если настройка VPN и сервера хранилища по каким-то причинам невозможна, рассмотрим другие варианты передачи наработок, которые эффективнее пересылки полного .cf файла:
gitsync. Вы фиксируете изменения в Git локально, а затем синхронизируете репозиторий с сервером. Это самый надежный способ, полностью исключающий повреждение базы данных из-за проблем со связью.Подводя итог, отметим: работа через "локальное" файловое хранилище по VPN — это путь к повреждению данных. Используйте crserver.exe, следите за версиями платформ и не забывайте про возможности частичных обновлений через .cfu.