Разберем ситуацию, которая часто встречается в практике системных администраторов и программистов 1С: необходимо перенести или скопировать информационную базу перед переустановкой операционной системы или переносом на другой сервер, но пароль от учетной записи с правами администратора утерян или неизвестен. Многие пользователи по привычке пытаются сделать выгрузку в файл с расширением .dt через конфигуратор. Однако для этого обязательно требуются права администратора и монопольный доступ. Выясним, как решить эту задачу проще и безопаснее, используя альтернативные методы.
В процессе обсуждения на форуме участники совершенно верно отметили, что для файловой версии 1С нет никакой практической необходимости создавать файл выгрузки .dt. Более того, профессиональное сообщество и сама фирма «1С» настоятельно рекомендуют отказаться от использования формата .dt для регулярного резервного копирования. Рассмотрим подробнее, с чем связаны такие рекомендации:
.dt может пройти абсолютно успешно и без предупреждений. Однако при попытке восстановить базу из этого файла конфигуратор выдаст критическую ошибку (например, «Ошибка формата потока»). В итоге вы получите абсолютно бесполезный файл. Копирование физического файла 1Cv8.1CD гарантирует, что вы сможете запустить базу в том же состоянии, в котором она была на исходном компьютере..dt журнал регистрации (история действий всех пользователей, которая хранится в файлах 1Cv8.lgf или 1Cv8.lgd) не переносится. При обычном копировании папки с базой все эти важные файлы сохраняются..dt требуется монопольный режим — из базы нужно выгнать абсолютно всех пользователей. Физический файл базы в некоторых случаях можно скопировать даже при наличии активных сеансов (хотя это сопряжено с определенными рисками, которые мы разберем ниже).Если вы имеете дело с файловой базой данных, то вся ваша информационная база — это один единственный файл под названием 1Cv8.1CD. Он находится в каталоге базы данных. Чтобы узнать, где именно лежит этот файл, достаточно запустить окно запуска 1С и посмотреть на путь, указанный внизу окна при выборе нужной информационной базы.
Давайте проанализируем алгоритм безопасного копирования файловой базы:
1Cv8.1CD. Это и есть вся ваша база со всеми документами, справочниками и настройками.Важно помнить о сопутствующих файлах. В каталоге базы вы можете увидеть файлы с расширениями .1cl, .cdn и .1CD-journal. Это временные файлы блокировок и транзакций. Копировать их на новый компьютер не нужно — они создаются автоматически при следующем запуске базы. Журнал регистрации (папка 1Cv8Log) копировать рекомендуется, так как в нем хранится вся история действий пользователей.
После переустановки операционной системы или переноса файла на новый компьютер достаточно установить платформу «1С:Предприятие», нажать кнопку «Добавить» в окне запуска, выбрать «Добавление в список существующей информационной базы» и указать путь к папке, в которую вы скопировали файл 1Cv8.1CD. База запустится в прежнем режиме, сохранив все настройки и старые учетные записи пользователей.
Если выгнать пользователей из базы невозможно, а копию сделать нужно прямо сейчас, обычное копирование через проводник 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
Такой подход гарантирует, что файл скопируется в абсолютно согласованном состоянии на момент создания снимка теневой копии, даже если в этот момент пользователи проводили документы.
Если вам все же жизненно необходимо зайти в конфигуратор (например, для изменения структуры метаданных или доработки конфигурации), а пароль утерян, можно воспользоваться методами модификации файла базы данных. Обратите внимание, что перед проведением любых подобных операций обязательно нужно сделать резервную копию файла 1Cv8.1CD!
Проанализируем классический метод сброса пароля через HEX-редактор для платформ семейства 1С 8.2 и ранних версий 8.3:
1Cv8.1CD в любом HEX-редакторе (например, WinHex или HxD).users.usr в кодировке Unicode.lsers.usr. Это действие «спрячет» список пользователей от платформы при проверке.V8USERS и переименуйте ее аналогичным образом (например, в L8USERS).chdbfl.exe, которая находится в каталоге bin установленной платформы 1С. Поставьте флажок «Исправлять обнаруженные ошибки» и запустите проверку.В случае, если база данных работает на СУБД (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';
Теперь в открытом Конфигураторе перейдите в меню «Администрирование» — «Пользователи», найдите свою учетную запись администратора и задайте ей новый пароль. Нажмите кнопку «Записать». Пароль успешно сброшен, база скопирована, а учетные записи других сотрудников не пострадали.