При модернизации инфраструктуры или плановом переезде серверов часто встает задача переноса хранилища конфигурации 1С на новое физическое или виртуальное оборудование. Главное опасение разработчиков в этот момент — потерять накопленную историю версий, комментарии к коммитам или учетные записи пользователей хранилища. Разберем по шагам, как устроен этот процесс, с какими типичными ошибками можно столкнуться и как их гарантированно избежать.
Проанализируем структуру хранения данных. Если хранилище создавалось стандартным путем через Конфигуратор (меню Конфигурация — Хранилище конфигурации — Создать хранилище) с указанием локальной или сетевой папки, оно представляет собой файловую базу. Вся история разработки, список пользователей, их роли и права содержатся внутри единого каталога в файле с расширением .1CD (обычно это 1cv8ddb.1CD или 1cv8bbd.1CD).
Это означает, что для сохранения абсолютно всех данных не требуется выполнять выгрузку и последующую сложную загрузку: достаточно корректно перенести сам каталог со всем его содержимым.
Перед тем как копировать файлы на новый сервер, выполним обязательные подготовительные действия, чтобы исключить повреждение данных и конфликты захвата объектов:
*.lck.Рассмотрим основной этап миграции и разберем распространенную проблему, которая возникает сразу после копирования.
Перенесем папку с хранилищем на целевой сервер. При первой попытке подключиться к хранилищу по новому пути (даже локально, находясь непосредственно на самом сервере) разработчики нередко сталкиваются с исключением:
Ошибка режима доступа к файлу базы данных 'D:\ConfStorage\1cv8bbd.1CD'
Выясним причину этой неполадки. Операционная система Windows при копировании файлов на другой диск или сервер часто наследует права доступа родительской папки назначения или оставляет права только за той учетной записью администратора, которая выполняла копирование. Если пользователь, запускающий Конфигуратор, не обладает полными правами файловой системы NTFS на данный каталог, платформа блокирует операцию открытия базы.
Разберем по шагам, как исправить эту ошибку:
После того как файлы перенесены и права настроены, настроим рабочие места программистов. Из-за особенностей кэширования Конфигуратора простая замена сетевого адреса в свойствах может вызывать ошибки. Рекомендуем выполнить переподключение по следующей схеме:
\\NewServer\ConfStorage) или локальный путь, если работа ведется через терминальный сервер.В случае возникновения системных ошибок структуры данных после смены адреса хранилища очистим локальный кэш 1С на компьютере разработчика, удалив пользовательские каталоги по путям AppData\Local\1C\1cv8 и AppData\Roaming\1C\1cv8, либо подключим чистую информационную базу к новому хранилищу «с нуля».
Если во время копирования по нестабильному сетевому каналу произошел сбой, файл базы хранилища может повредиться. В такой ситуации восстановим структуру файла при помощи стандартной утилиты тестирования chdbfl.exe, которая располагается в системном каталоге платформы (обычно C:\Program Files\1cv8\версия_платформы\bin\chdbfl.exe). Запустим утилиту, укажем файл 1cv8bbd.1CD и отметим флаг исправления обнаруженных ошибок.
Также стоит помнить об архитектурных ограничениях файлового доступа по протоколу SMB (через сетевую папку). При работе команды из более чем 3–5 человек или при подключении через VPN сетевой доступ к файлам работает медленно и подвержен рискам разрушения базы при малейшем обрыве связи. В качестве альтернативы для высоконагруженной разработки развернем выделенный сервер хранилища с помощью службы crserver.exe (подключение по протоколу TCP) либо выполним публикацию хранилища на веб-сервере (IIS или Apache) по протоколу HTTP/HTTPS, что обеспечит максимальную стабильность и скорость обмена данными.