Как скопировать базу данных 1С:Предприятие без пароля администратора?

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Разберем ситуацию, которая часто встречается в практике системных администраторов и программистов 1С: необходимо перенести или скопировать информационную базу перед переустановкой операционной системы или переносом на другой сервер, но пароль от учетной записи с правами администратора утерян или неизвестен. Многие пользователи по привычке пытаются сделать выгрузку в файл с расширением .dt через конфигуратор. Однако для этого обязательно требуются права администратора и монопольный доступ. Выясним, как решить эту задачу проще и безопаснее, используя альтернативные методы.

Почему копирование файла базы данных 1Cv8.1CD лучше выгрузки в формат DT?

В процессе обсуждения на форуме участники совершенно верно отметили, что для файловой версии 1С нет никакой практической необходимости создавать файл выгрузки .dt. Более того, профессиональное сообщество и сама фирма «1С» настоятельно рекомендуют отказаться от использования формата .dt для регулярного резервного копирования. Рассмотрим подробнее, с чем связаны такие рекомендации:

  1. Высокий риск получения поврежденного архива: Если в базе данных есть скрытые логические или физические ошибки (например, повреждение индексов или таблиц), процесс выгрузки в .dt может пройти абсолютно успешно и без предупреждений. Однако при попытке восстановить базу из этого файла конфигуратор выдаст критическую ошибку (например, «Ошибка формата потока»). В итоге вы получите абсолютно бесполезный файл. Копирование физического файла 1Cv8.1CD гарантирует, что вы сможете запустить базу в том же состоянии, в котором она была на исходном компьютере.
  2. Потеря истории изменений (журнал регистрации): При выгрузке базы в формат .dt журнал регистрации (история действий всех пользователей, которая хранится в файлах 1Cv8.lgf или 1Cv8.lgd) не переносится. При обычном копировании папки с базой все эти важные файлы сохраняются.
  3. Требование монопольного режима: Для создания .dt требуется монопольный режим — из базы нужно выгнать абсолютно всех пользователей. Физический файл базы в некоторых случаях можно скопировать даже при наличии активных сеансов (хотя это сопряжено с определенными рисками, которые мы разберем ниже).

Разбираем по шагам: Копирование файловой базы напрямую

Если вы имеете дело с файловой базой данных, то вся ваша информационная база — это один единственный файл под названием 1Cv8.1CD. Он находится в каталоге базы данных. Чтобы узнать, где именно лежит этот файл, достаточно запустить окно запуска 1С и посмотреть на путь, указанный внизу окна при выборе нужной информационной базы.

Давайте проанализируем алгоритм безопасного копирования файловой базы:

  1. Убедитесь, что программа 1С закрыта у всех пользователей на данном компьютере (и в локальной сети, если к базе предоставлен общий доступ).
  2. Перейдите по пути расположения базы данных через проводник Windows.
  3. Найдите файл 1Cv8.1CD. Это и есть вся ваша база со всеми документами, справочниками и настройками.
  4. Скопируйте этот файл на внешний накопитель или в сетевую папку.

Важно помнить о сопутствующих файлах. В каталоге базы вы можете увидеть файлы с расширениями .1cl, .cdn и .1CD-journal. Это временные файлы блокировок и транзакций. Копировать их на новый компьютер не нужно — они создаются автоматически при следующем запуске базы. Журнал регистрации (папка 1Cv8Log) копировать рекомендуется, так как в нем хранится вся история действий пользователей.

После переустановки операционной системы или переноса файла на новый компьютер достаточно установить платформу «1С:Предприятие», нажать кнопку «Добавить» в окне запуска, выбрать «Добавление в список существующей информационной базы» и указать путь к папке, в которую вы скопировали файл 1Cv8.1CD. База запустится в прежнем режиме, сохранив все настройки и старые учетные записи пользователей.

Что делать, если в базе работают пользователи? Использование теневого копирования (VSS)

Если выгнать пользователей из базы невозможно, а копию сделать нужно прямо сейчас, обычное копирование через проводник Windows может завершиться ошибкой «Файл занят другим процессом» или привести к повреждению копируемого файла. В этом случае мы рекомендуем использовать службу теневого копирования тома Windows (Volume Shadow Copy Service — VSS).

Рассмотрим пример командного сценария для создания согласованной копии файла базы данных без прерывания работы пользователей:


rem Создание теневой копии локального диска C
vssadmin create shadow /for=C:

rem Копирование файла базы данных из созданного теневого тома
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\1C_Bases\Accounting\1Cv8.1CD D:\Backup\1Cv8.1CD

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

Сброс и восстановление пароля администратора в файловой базе 1С

Если вам все же жизненно необходимо зайти в конфигуратор (например, для изменения структуры метаданных или доработки конфигурации), а пароль утерян, можно воспользоваться методами модификации файла базы данных. Обратите внимание, что перед проведением любых подобных операций обязательно нужно сделать резервную копию файла 1Cv8.1CD!

Проанализируем классический метод сброса пароля через HEX-редактор для платформ семейства 1С 8.2 и ранних версий 8.3:

  1. Откройте копию файла 1Cv8.1CD в любом HEX-редакторе (например, WinHex или HxD).
  2. Выполните поиск строки users.usr в кодировке Unicode.
  3. Замените один любой символ в имени найденного файла, например, сделайте его lsers.usr. Это действие «спрячет» список пользователей от платформы при проверке.
  4. Выполните поиск ASCII-строки V8USERS и переименуйте ее аналогичным образом (например, в L8USERS).
  5. Сохраните изменения в файле.
  6. Запустите стандартную утилиту исправления ошибок базы данных chdbfl.exe, которая находится в каталоге bin установленной платформы 1С. Поставьте флажок «Исправлять обнаруженные ошибки» и запустите проверку.
  7. Утилита обнаружит несоответствие измененных нами таблиц и очистит поврежденные ссылки. После этого вы сможете запустить базу в режиме «Конфигуратор» под полными правами без ввода пароля.

Как скопировать базу и сбросить пароль в клиент-серверной версии (SQL)

В случае, если база данных работает на СУБД (MS SQL Server или PostgreSQL), у нас есть еще более надежные инструменты. Если у вас есть доступ к серверу баз данных (права администратора СУБД), вы можете сделать резервную копию и сбросить пароли пользователей 1С без захода в конфигуратор.

Для создания копии базы администратору СУБД достаточно сделать стандартный бэкап средствами SQL (файл .bak для MS SQL или дамп для PostgreSQL) без участия платформы 1С.

Разберем алгоритм сброса пароля администратора 1С через SQL-запросы на примере MS SQL Server:


-- Шаг 1: Переименовываем таблицы с информацией о пользователях
EXEC sp_rename 'v8users', 'v8users_old';
UPDATE Params SET Name = 'users.usr_old' WHERE Name = 'users.usr';

После выполнения этого запроса запустите Конфигуратор 1С. Программа не обнаружит список пользователей и пустит вас под полными правами без пароля. Не закрывая Конфигуратор, вернитесь в SQL Server Management Studio и выполните операцию восстановления исходных таблиц, чтобы вернуть всех остальных пользователей:


-- Шаг 2: Возвращаем все обратно перед сохранением изменений в 1С
DROP TABLE v8users; -- Удаляем новую пустую таблицу, которую создала 1С при входе
EXEC sp_rename 'v8users_old', 'v8users';
UPDATE Params SET Name = 'users.usr' WHERE Name = 'users.usr_old';

Теперь в открытом Конфигураторе перейдите в меню «Администрирование» — «Пользователи», найдите свою учетную запись администратора и задайте ей новый пароль. Нажмите кнопку «Записать». Пароль успешно сброшен, база скопирована, а учетные записи других сотрудников не пострадали.

← На главную