Переезд 1С с диска C: файловая база, SQL, каталог кластера и ярлыки

· 10 мин

Содержание

Файловую базу 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\<версия>только переустановкой в другой каталог

Перед началом:

  1. Сделайте резервную копию. Для файловой базы — копия каталога и выгрузка через Конфигуратор: Администрирование → Выгрузить информационную базу. Для серверной — полный бэкап средствами СУБД.
  2. Договоритесь о времени. Во время переноса с базой никто не должен работать: все сеансы будут завершены.
  3. Проверьте свободное место на новом диске. Нужен объём самой базы плюс запас на рост: файл 1Cv8.1CD растёт и при свёртке не всегда сжимается сам.
  4. Запишите все места, где прописан старый путь: ярлыки, скрипты резервного копирования, публикация на веб-сервере, каталоги обмена.

Если меняется не только диск, но и компьютер, .dt надёжнее простого копирования: выгрузка проходит проверку структуры, а битый файл просто не загрузится.

Как перенести файловую базу 1С на другой диск

Способ 1. Копирование каталога

Самый быстрый путь. Подходит, когда база исправна и платформа остаётся той же.

  1. Закройте 1С у всех пользователей. Проверить, что база свободна, можно через Конфигуратор или по журналу: если базу никто не держит, файл 1Cv8.1CD удаётся переименовать.
  2. Скопируйте весь каталог базы, а не только 1Cv8.1CD. В нём, кроме самого файла данных, лежат:
    • 📜 1Cv8Log — журнал регистрации;
    • 🔍 1Cv8FTxt — индекс полнотекстового поиска;
    • служебные временные файлы.
  3. Скопируйте каталог на новый диск, например в D:\Bases\Buh.
  4. В окне запуска 1С выделите базу → Изменить → в поле каталога укажите новый путь → Далее → Готово.
  5. Откройте базу и убедитесь, что данные на месте. Только после этого удаляйте или переименовывайте старый каталог.

Скопировать можно и через командную строку. Ключ /E переносит подкаталоги, /COPYALL сохраняет атрибуты и права NTFS (запускайте от имени администратора):

robocopy "C:\Users\Buh\Documents\InfoBase" "D:\Bases\Buh" /E /COPYALL /R:1 /W:1

Не переносите базу перетаскиванием мышью с удержанием Shift — это перемещение, а не копирование. Если оно прервётся на середине, в обоих местах окажется неполный набор файлов.

Журнал регистрации переезжает вместе с каталогом. Если 1Cv8Log забыли, база откроется, но история действий пользователей начнётся с чистого листа.

Способ 2. Выгрузка и загрузка .dt

Нужен, когда база подозрительно медленная, есть сомнения в целостности файла или меняется версия платформы.

  1. Откройте базу в Конфигураторе.
  2. Администрирование → Выгрузить информационную базу → сохраните файл .dt.
  3. В окне запуска нажмите Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации → укажите каталог на новом диске.
  4. Откройте новую пустую базу в Конфигураторе: Администрирование → Загрузить информационную базу → выберите .dt.
  5. Удалите из списка старую запись, чтобы пользователи не открывали её по привычке.

При загрузке .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 со всеми базами:

  1. Остановите службу PostgreSQL. Это остановит и работу 1С со всеми базами на этом сервере.
  2. Скопируйте каталог данных целиком на новый диск с сохранением прав.
  3. Укажите новый путь в параметре -D службы (в Windows он в строке запуска службы, в Linux — в настройках службы systemd или в postgresql.conf в зависимости от сборки).
  4. Запустите службу и проверьте подключение.

Каталог кластера 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

Порядок переноса:

  1. Остановите службу агента. Все пользователи серверных баз будут отключены, делайте это вне рабочего времени.
  2. Скопируйте каталог srvinfo целиком на новый диск, например в D:\srvinfo.
  3. Дайте учётной записи службы (обычно USR1CV8) полные права на новый каталог.
  4. Замените путь после -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"
  1. Запустите службу и откройте консоль администрирования: кластер и список баз должны быть на месте.

Пробел после 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С после переноса на новый диск

Открылась — ещё не значит, что всё работает. Пройдите короткий список:

Проверка после переноса
Выполнено: 0 / 7

Если переносили файловую базу и есть сомнения в целостности, запустите в Конфигураторе Администрирование → Тестирование и исправление с одной лишь проверкой логической целостности, без исправлений. Для этого нужен монопольный доступ: пользователи должны выйти.

Отдельно проверьте пути внутри конфигурации. Присоединённые файлы могут храниться не в базе, а в томах на диске. Настройка томов находится в разделе Администрирование, в группе настроек хранения файлов. Если тома лежали на старом диске, база откроется, но вложения станут недоступны.

Что делать, если что-то пошло не так:

Диагностика: выберите симптом

Частые вопросы

Можно ли хранить файловую базу 1С на флешке или внешнем диске?
Технически база откроется, но это рискованно. Отключение диска во время записи может повредить файл 1Cv8.1CD. Для постоянной работы используйте внутренний диск, а внешний — для копий.
Нужно ли перерегистрировать базу в кластере после переноса файлов SQL?
Нет. Кластер обращается к базе по имени сервера СУБД и имени базы. Если они не менялись, регистрация в кластере остаётся прежней.
Сохранятся ли пароли и настройки пользователей?
Да. Пользователи и их настройки хранятся внутри базы и переезжают вместе с ней, хоть при копировании каталога, хоть через .dt.
Слетит ли лицензия при переносе базы на другой диск?
Нет. Лицензия привязана к компьютеру или ключу, а не к расположению базы.
Стоит ли переносить базу на SSD?
Для файловой базы это заметно ускоряет проведение и отчёты, особенно при нескольких пользователях. Для SQL выгоднее всего вынести на SSD файлы данных и tempdb.