Переезд 1С с диска C: файловая база, SQL, каталог кластера и ярлыки
Содержание
Файловую базу
1С переносят на другой диск простым копированием её каталога целиком, а затем меняют путь в списке информационных баз: кнопка Изменить в окне запуска → новый каталог. Серверную базу
двигают средствами СУБД (MS SQL или PostgreSQL), и в самой 1С при этом ничего менять не нужно, если имя сервера и базы остались прежними.
Выбор способа зависит от того, что именно переезжает. Для файловой базы хватает копирования, выгрузка в .dt нужна как страховка или при переносе на другой компьютер. Для клиент-серверного варианта переносят файлы данных СУБД, а иногда ещё и рабочий каталог кластера 1С srvinfo, который по умолчанию лежит на системном диске.
Подготовка к переносу: что лежит на диске и чем рискуем
Сначала определите вариант базы. В окне запуска выделите базу и посмотрите строку внизу списка:
- 📁
File="D:\Bases\Buh"— файловая база, переносится каталог; - 🖥️
Srvr="srv01";Ref="buh"— серверная, данные лежат в СУБД.
Что занимает место на диске C и может переехать:
| Что | Где обычно лежит | Как переносить |
|---|---|---|
| Файловая база | любой каталог с файлом 1Cv8.1CD | копирование каталога или .dt |
| Данные серверной базы | файлы MS SQL (.mdf, .ldf) или каталог данных PostgreSQL | средствами СУБД |
| Рабочий каталог кластера | C:\Program Files\1cv8\srvinfo | остановка службы, смена параметра -d |
| Пользовательский кэш | %APPDATA%\1C\1cv8, %LOCALAPPDATA%\1C\1cv8 | не переносят, при необходимости очищают |
| Сама платформа | C:\Program Files\1cv8\<версия> | только переустановкой в другой каталог |
Перед началом:
- Сделайте резервную копию. Для файловой базы — копия каталога и выгрузка через Конфигуратор:
Администрирование → Выгрузить информационную базу. Для серверной — полный бэкап средствами СУБД. - Договоритесь о времени. Во время переноса с базой никто не должен работать: все сеансы будут завершены.
- Проверьте свободное место на новом диске. Нужен объём самой базы плюс запас на рост: файл
1Cv8.1CDрастёт и при свёртке не всегда сжимается сам. - Запишите все места, где прописан старый путь: ярлыки, скрипты резервного копирования, публикация на веб-сервере, каталоги обмена.
Если меняется не только диск, но и компьютер, .dt надёжнее простого копирования: выгрузка проходит проверку структуры, а битый файл просто не загрузится.
Как перенести файловую базу 1С на другой диск
Способ 1. Копирование каталога
Самый быстрый путь. Подходит, когда база исправна и платформа остаётся той же.
- Закройте 1С у всех пользователей. Проверить, что база свободна, можно через Конфигуратор или по журналу: если базу никто не держит, файл
1Cv8.1CDудаётся переименовать. - Скопируйте весь каталог базы, а не только
1Cv8.1CD. В нём, кроме самого файла данных, лежат:- 📜
1Cv8Log— журнал регистрации; - 🔍
1Cv8FTxt— индекс полнотекстового поиска; - служебные временные файлы.
- 📜
- Скопируйте каталог на новый диск, например в
D:\Bases\Buh. - В окне запуска 1С выделите базу →
Изменить→ в поле каталога укажите новый путь →Далее→Готово. - Откройте базу и убедитесь, что данные на месте. Только после этого удаляйте или переименовывайте старый каталог.
Скопировать можно и через командную строку. Ключ /E переносит подкаталоги, /COPYALL сохраняет атрибуты и права NTFS (запускайте от имени администратора):
robocopy "C:\Users\Buh\Documents\InfoBase" "D:\Bases\Buh" /E /COPYALL /R:1 /W:1
Не переносите базу перетаскиванием мышью с удержанием Shift — это перемещение, а не копирование. Если оно прервётся на середине, в обоих местах окажется неполный набор файлов.
Журнал регистрации переезжает вместе с каталогом. Если 1Cv8Log забыли, база откроется, но история действий пользователей начнётся с чистого листа.
Способ 2. Выгрузка и загрузка .dt
Нужен, когда база подозрительно медленная, есть сомнения в целостности файла или меняется версия платформы.
- Откройте базу в Конфигураторе.
Администрирование → Выгрузить информационную базу→ сохраните файл.dt.- В окне запуска нажмите
Добавить→Создание новой информационной базы→Создание информационной базы без конфигурации→ укажите каталог на новом диске. - Откройте новую пустую базу в Конфигураторе:
Администрирование → Загрузить информационную базу→ выберите.dt. - Удалите из списка старую запись, чтобы пользователи не открывали её по привычке.
При загрузке .dt журнал регистрации не переносится, а настройки пользователей и учётные записи сохраняются: они хранятся в самой базе.
Права на новый каталог
Частая причина проблем после переезда — права NTFS. Каждый, кто работает с базой, должен иметь на каталог право «Изменение» (чтение и запись). Если база лежит в сетевой папке, права нужны и на общий ресурс, и на файловую систему.
Перенос серверной базы 1С: файлы MS SQL и PostgreSQL на новый диск
В клиент-серверном варианте 1С обращается к базе по имени через кластер. Где физически лежат файлы, кластеру безразлично. Поэтому перенос — задача администратора СУБД, а регистрацию базы в кластере трогать не нужно.
Перед любыми действиями завершите сеансы пользователей и заблокируйте вход в базу в консоли кластера (свойства информационной базы → блокировка начала сеансов). Иначе СУБД не отпустит файлы.
MS SQL Server: перенос файлов базы
Логические имена файлов посмотрите запросом:
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('buh');
Затем переведите базу в автономный режим, перенесите файлы и укажите новые пути:
ALTER DATABASE [buh] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [buh] MODIFY FILE (NAME = buh, FILENAME = 'E:\SQLData\buh.mdf');
ALTER DATABASE [buh] MODIFY FILE (NAME = buh_log, FILENAME = 'F:\SQLLog\buh_log.ldf');
Скопируйте файлы .mdf и .ldf в новые каталоги вручную, а потом верните базу в работу:
ALTER DATABASE [buh] SET ONLINE;
WITH ROLLBACK IMMEDIATE обрывает все текущие подключения и откатывает незавершённые транзакции. Выполняйте это только в согласованное окно, когда пользователи вышли.
Учётной записи, под которой работает служба SQL Server, нужны полные права на новые каталоги. Без них база не перейдёт в режим ONLINE, а в журнале SQL Server появится ошибка доступа к файлу.
Альтернатива — отсоединить базу (Detach) в SQL Server Management Studio, перенести файлы и присоединить (Attach) с тем же именем. Результат тот же, но при MODIFY FILE меньше шансов перепутать имя базы.
Журнал транзакций .ldf выгодно вынести на отдельный физический диск от файла данных: так запись в журнал не конкурирует с чтением данных.
PostgreSQL: табличное пространство или весь каталог данных
Для одной базы удобнее табличное пространство. Каталог создайте заранее и дайте права учётной записи службы PostgreSQL:
CREATE TABLESPACE fast_disk LOCATION 'E:/pgdata';
ALTER DATABASE buh SET TABLESPACE fast_disk;
Команда ALTER DATABASE ... SET TABLESPACE выполняется только при отсутствии подключений к базе. Подключитесь к другой базе, например postgres, и выполните её. Пока данные копируются, база недоступна.
Если переезжает весь кластер PostgreSQL со всеми базами:
- Остановите службу PostgreSQL. Это остановит и работу 1С со всеми базами на этом сервере.
- Скопируйте каталог данных целиком на новый диск с сохранением прав.
- Укажите новый путь в параметре
-Dслужбы (в Windows он в строке запуска службы, в Linux — в настройках службы systemd или вpostgresql.confв зависимости от сборки). - Запустите службу и проверьте подключение.
Каталог кластера srvinfo и параметры службы агента
Рабочий каталог сервера 1С по умолчанию находится на системном диске: C:\Program Files\1cv8\srvinfo. В нём хранятся реестр кластера, журналы регистрации серверных баз и сеансовые данные. Журналы со временем занимают гигабайты, поэтому каталог часто переносят.
Путь к нему задан параметром -d в строке запуска службы агента сервера 1С. Посмотреть её можно так:
sc query state= all | findstr /i "1C"
sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"
Имя службы у вас может отличаться: берите его из вывода первой команды. В строке BINARY_PATH_NAME видно что-то вроде:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Порядок переноса:
- Остановите службу агента. Все пользователи серверных баз будут отключены, делайте это вне рабочего времени.
- Скопируйте каталог
srvinfoцеликом на новый диск, например вD:\srvinfo. - Дайте учётной записи службы (обычно
USR1CV8) полные права на новый каталог. - Замените путь после
-d. Через реестр:HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>, параметрImagePath. Или командой, сохранив остальную строку без изменений:
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"D:\srvinfo\" -debug"
- Запустите службу и откройте консоль администрирования: кластер и список баз должны быть на месте.
Пробел после binPath= обязателен — без него sc не примет команду. Номер версии в пути к ragent.exe берите из своей строки, а не из примера.
Старый каталог не удаляйте, пока не убедитесь, что кластер поднялся и пользователи входят в базы.
Список баз, ярлыки и следы старого пути в реестре
После переноса файловой базы старый путь остаётся у каждого пользователя в его списке баз. Список хранится в файле:
%APPDATA%\1C\1CEStart\ibases.v8i
Это обычный текстовый файл. Запись о базе выглядит так:
[Бухгалтерия предприятия]
Connect=File="D:\Bases\Buh";
Если пользователей много, проще исправить путь в одном файле и раздать его, чем править у каждого через окно запуска. Общий список для всех можно подключить через файл 1CEStart.cfg параметром CommonInfoBases — тогда в следующий раз путь меняется в одном месте.
Где ещё прячется старый путь:
- 🖱️ Ярлыки на рабочем столе с параметром
/F, например1cestart.exe ENTERPRISE /F "C:\Bases\Buh". Откройте свойства ярлыка и исправьте путь. - ⏰ Задания планировщика Windows и
.bat-файлы резервного копирования, где база указана по пути. - 🌐 Публикация на веб-сервере: в файле
default.vrdстрокаib="File=...". После правки опубликуйте базу заново или перезапустите веб-сервер. - 🔁 Внешние обработки и обмены, которые обращаются к базе через COM-соединение по строке
File="...".
Саму платформу 1С копированием в другую папку не переносят. Установщик прописывает пути в реестре Windows, регистрирует компоненты и ассоциации файлов. Чтобы платформа стояла на другом диске, удалите её через «Программы и компоненты» и установите заново, указав новый каталог. Базы при этом не затрагиваются.
Кэш пользователя в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 переносить не нужно. Если после переезда база ведёт себя странно, кэш можно очистить: закройте 1С, удалите содержимое этих папок или запустите базу с параметром /ClearCache.
Проверка базы 1С после переноса на новый диск
Открылась — ещё не значит, что всё работает. Пройдите короткий список:
Если переносили файловую базу и есть сомнения в целостности, запустите в Конфигураторе Администрирование → Тестирование и исправление с одной лишь проверкой логической целостности, без исправлений. Для этого нужен монопольный доступ: пользователи должны выйти.
Отдельно проверьте пути внутри конфигурации. Присоединённые файлы могут храниться не в базе, а в томах на диске. Настройка томов находится в разделе Администрирование, в группе настроек хранения файлов. Если тома лежали на старом диске, база откроется, но вложения станут недоступны.
Что делать, если что-то пошло не так: