Что делать, если потерян доступ к информационной базе 1С
Содержание
Доступ к базе 1С пропадает по трём причинам: забыт пароль пользователя или администратора, база занята чужими сеансами и не пускает в монопольном режиме, либо повреждён сам файл данных. От того, какой случай у вас, зависит порядок действий — вплоть до того, нужен ли сервер или хватит обычного запуска.
Ниже — что проверить в первую очередь и как восстановить вход в файловой и клиент-серверной базе, снять блокировки сеансов и починить повреждённую базу. Примеры даны для платформы 8.3 с интерфейсом «Такси».
С чего начать: понять, что именно заблокировано
Прежде чем сбрасывать пароли и останавливать службы, определите тип проблемы по тексту сообщения и поведению программы. Это экономит время и защищает от лишних действий.
Запишите точный текст ошибки. По формулировке почти всегда видно, пароль это, блокировка или повреждение.
Заодно уточните, какая у вас база — файловая или клиент-серверная. Это видно в окне запуска 1С: у файловой в строке базы указан путь к папке на диске или в сети, у клиент-серверной — имя сервера и имя базы на нём. От типа базы зависит половина дальнейших шагов: пароли, блокировки и ремонт в них лечатся по-разному.
Прежде чем что-либо менять в рабочей базе — сделайте копию файла данных или архивную копию средствами конфигурации. На повреждённой базе это тем более обязательно.
Сброс пароля пользователя в файловой базе
Самый частый случай — сотрудник забыл пароль, а у вас есть доступ администратора. Сбросить чужой пароль может только пользователь с полными правами.
В режиме 1С:Предприятие (если в конфигурации есть подсистема управления пользователями — БП 3.0, ЗУП 3.1, УТ 11):
- Войдите под учётной записью с полными правами.
- Откройте
Администрирование → Настройки пользователей и прав → Пользователи. - Откройте карточку нужного пользователя.
- Снимите или задайте новый пароль в поле пароля и запишите изменения.
Через Конфигуратор (работает в любой конфигурации, даже без подсистемы пользователей):
- Запустите базу в режиме
Конфигураторпод учётной записью с административными правами. - Откройте
Администрирование → Пользователи. - В карточке пользователя на вкладке
Основныеочистите пароль или задайте новый. - Нажмите
OK.
Это и есть «сброс пароля »: вы не узнаёте старый, а задаёте новый. Старый пароль платформа нигде не показывает — он хранится в виде хеша.
И в режиме предприятия, и в Конфигураторе сброс чужого пароля требует, чтобы ВЫ уже вошли как администратор. Если администратор в базе единственный и его пароль потерян — переходите к следующему разделу.
Если потеряны права или пароль администратора
Здесь всё зависит от того, остался ли в базе хоть один работающий администратор.
Есть второй пользователь с полными правами. Войдите под ним и либо сбросьте пароль первого администратора, либо верните нужному пользователю роль Администратор (в Конфигураторе — на вкладке Прочие карточки пользователя, галочка у роли; в режиме предприятия — переключатель прав доступа в карточке).
Список пользователей пуст. Если в базе не заведён ни один пользователь, платформа пускает без пароля с полными правами. Зайдите и сразу создайте администратора с паролем, иначе база открыта всем.
Вход настроен через учётную запись ОС. Если у пользователя включена аутентификация средствами операционной системы, пароль 1С вообще не спрашивается — вход идёт по текущей учётной записи Windows. Тогда «потеря пароля» на деле означает, что человек зашёл в систему под другой учётной записью или его запись в домене изменилась. Проверьте в карточке пользователя, какой способ входа включён, и при необходимости добавьте вход по паролю 1С в дополнение к входу по ОС.
Администратор единственный, пароль потерян. Честный ответ: штатного сброса пароля администратора в 1С нет — это защита от посторонних. Законные варианты:
- восстановить базу из резервной копии, сделанной до смены пароля;
- если копии нет — пароль задан относительно недавно и у вас остался более ранний бэкап, разверните его и перенесите свежие данные документами/обменом.
Сторонние утилиты, обещающие «сбросить пароль 1С», правят файл базы в обход платформы и могут её испортить. Для своей базы это крайний риск без гарантий; надёжнее дисциплина резервных копий (раздел ниже).
Восстановление доступа в клиент-серверной базе
В клиент-серверном варианте есть три независимых уровня доступа — не путайте их, лечится каждый по-своему.
| Что потеряно | Где хранится | Как восстановить |
|---|---|---|
| Пароль пользователя ИБ | в самой информационной базе | сброс администратором — как в файловом варианте, через Конфигуратор или режим предприятия |
| Пароль администратора кластера | в служебных файлах кластера на сервере | см. ниже — через остановку службы и резервную копию |
| Логин СУБД (например, SQL Server) | в самой СУБД | сбрасывает администратор СУБД средствами СУБД, 1С здесь ни при чём |
Пользователь ИБ. Подключитесь Конфигуратором к серверной базе под администратором ИБ и сбросьте пароль так же, как в файловом варианте. Если нужной базы нет в списке запуска, добавьте её кнопкой Добавить и выберите вариант «На сервере 1С:Предприятия», указав имя сервера и имя информационной базы на нём, — файл базы при этом не нужен, всё хранится на сервере.
Администратор кластера. Если потерян пароль администратора кластера серверов 1С, не пересоздавайте кластер и не удаляйте базы — потеряете все информационные базы. Правильно:
- Остановите службу агента сервера 1С (
Агент сервера 1С:Предприятия). - Восстановите служебные файлы кластера из резервной копии каталога
srvinfo, сделанной до установки пароля. - Если копии нет — обратитесь к администратору сервера: список администраторов кластера хранится в файлах каталога
srvinfo, и работа с ними требует прав на сервере.
Остановка службы агента обрывает ВСЕ сеансы всех баз на этом сервере. Делайте это только в согласованное окно, когда в базах никто не работает.
Логин СУБД. Если база не подключается из-за пароля учётной записи СУБД, это решает администратор СУБД: в SQL Server — через SSMS сменить пароль логина, затем прописать новый пароль в параметрах информационной базы в консоли администрирования.
Снятие блокировок сеансов и монопольного режима
Монопольный (исключительный) доступ нужен не всегда — только для обновления структуры базы, загрузки .dt, тестирования и исправления, удаления помеченных объектов. Если при такой операции вы видите «Не удалось заблокировать информационную базу», в базе есть активные сеансы.
Порядок действий:
- Посмотрите, кто в базе. В режиме предприятия —
Администрирование → Активные пользователи(список сеансов). В клиент-серверном варианте — консоль администрирования серверов или утилитаrac. - Попросите выйти или дождитесь завершения — это самый безопасный способ.
- Закройте вход новым сеансам. В конфигурации есть блокировка начала работы пользователей (раздел
Администрирование, пункт про блокировку работы/сеансов) — она не пускает новых, пока вы заняты обслуживанием. - Принудительно завершите зависшие сеансы, если пользователь уже ушёл, а сеанс висит.
В клиент-серверной базе сеансы завершают из консоли администрирования (правой кнопкой по сеансу → удалить) либо командой rac:
rac session list --cluster=<идентификатор кластера>
rac session terminate --session=<идентификатор сеанса>
Точный синтаксис и дополнительные параметры смотрите в rac help — не угадывайте ключи.
Принудительное завершение сеанса откатывает незаписанные данные пользователя. Предупредите людей, прежде чем «выбивать» их из базы.
Отдельно помните про фоновые и регламентные задания: они тоже держат базу. Если после закрытия всех видимых сеансов монополия всё равно не даётся, в списке сеансов, скорее всего, остался фоновый сеанс регламентного задания. На время обслуживания регламентные задания отключают — в конфигурации это делается в разделе Администрирование (управление регламентными операциями), а в клиент-серверной базе — ещё и установкой блокировки регламентных заданий в свойствах информационной базы на сервере.
Файловая база «занята», хотя никого нет. Иногда в каталоге файловой базы остаётся файл блокировки 1Cv8.cdn после аварийного закрытия. Если вы уверены, что база закрыта на всех компьютерах, его можно удалить — после этого вход освободится. Сначала убедитесь, что ни один сеанс не открыт, иначе повредите данные.
Когда база повреждена: проверка и восстановление файла
Если база не открывается ни в предприятии, ни в Конфигураторе, и в сообщении есть слова «формат потока», «ошибка формата», скорее всего повреждён файл данных.
Файловая база. Используйте утилиту проверки chdbfl.exe из каталога платформы (...\1cv8\<версия>\bin\chdbfl.exe):
- Сделайте копию файла
1Cv8.1CD— все дальнейшие действия только с копией или после копии. - Закройте базу на всех компьютерах.
- Запустите
chdbfl.exe, укажите путь к1Cv8.1CD. - Поставьте галочку
Исправлять обнаруженные ошибкии запустите проверку.
Утилита лечит нарушения формата файла. Логические ошибки данных она не исправит — для этого есть Тестирование и исправление в Конфигураторе (Администрирование → Тестирование и исправление), которое требует монопольного доступа.
Признаки, что дело именно в повреждении, а не в пароле: база не открывается ни в одном режиме, сообщение появляется сразу при запуске, до окна входа, и повторяется на любом компьютере. Частая причина — аварийное завершение работы: отключили питание или закрыли процесс 1cv8 во время записи. После успешной проверки не продолжайте работать «как есть»: выгрузите базу в файл .dt (Администрирование → Выгрузить информационную базу) и сверьте ключевые остатки и итоги, чтобы убедиться, что данные целы.
Клиент-серверная база
. chdbfl.exe здесь не применяется — данные лежат в СУБД. Восстанавливайте из резервной копии СУБД; средствами самой СУБД проверяйте целостность (в SQL Server — соответствующие проверки администратором СУБД).
Если повреждение серьёзное, самый быстрый и надёжный путь — развернуть вчерашний бэкап и довнести данные за день вручную. Это почти всегда быстрее, чем «вытаскивать» убитую базу.
Как не потерять доступ к базе снова
Большинство обращений «потерял доступ» — это не сбой программы, а отсутствие резервных копий и единственный администратор. Настройте защиту заранее.
Отдельно стоит задать политику паролей в конфигурации (минимальная длина, срок действия) и не работать всем под одной учётной записью администратора — тогда даже потеря одного пароля не блокирует базу.
Частые вопросы
Можно ли узнать старый пароль пользователя 1С?
Сбросил пароль пользователю, а он всё равно не входит — почему?
Нужен ли сервер, чтобы сбросить пароль в клиент-серверной базе?
Почему при обновлении пишет, что база занята, хотя я один?
Поможет ли chdbfl.exe, если база не открывается из-за пароля?
chdbfl.exe чинит повреждения файла данных, к паролям отношения не имеет. Если база открывается, но не принимает пароль — это другой случай, лечится сбросом пароля.