Вы здесь

Отключение авторизации в 1С

tags: 

Иногда необходимо войти в какую-то базу 1С. Например, у нас это случилось когда один объект нашей сети закрыли и ИТшников уволили. Естественно паролей администраторов локальной базы никто не знал, а оставшиеся пользователи не имели админских прав. Для этого существует 2 совета (для файловой БД и для MsSQL):

Файловый вариант

  1. Открываем 1CD файл в HEX-редакторе (я пользуюсь HIEW)
  2. Ищем в файле юникодовую строку “users.usr” находим что-то вроде этого:
    00 00 2D 00 00 00 00 09 00 75 00 73 00 65 00 72 00…
    09 – число символов строки “users.usr”, 75,73,… – сама строка “users.usr”
  3. Исправляем байт, стоящий перед 09 с 00 на 01 (получается, что исправляем даже на байт, а один бит) получается следующее:
    00 00 2D 00 00 00 01 09 00 75 00 73 00 65 00 72 00…
  4. Запускаем конфигуратор и спокойно заходим в конфигурацию вообще без пользователей.
  5. При открытом конфигураторе производим обратное исправление “на лету”, т.е. меняем 01 на 00

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

P.S. В принципе п.п. 4 и 5 можно не делать, но тогда 1С-ка не дает создавать новых пользователе.

Microsoft SQL вариант

  1. Открываем базу в редакторе SQL.
  2. Ищем таблицу Params
  3. Удаляем строку, где в колонке FileName прописано "users.usr" или меняем значение UPDATE Params SET FileName = 'tusers.usr' WHERE FileName = 'users.usr'
  4. В последних версиях нужно удалить или переименовать таблицу dbo.v8users EXEC sp_rename 'v8users', 't8users'. После входа в конфигуратор создастся новая таблица v8users. Её надо удалить DROP TABLE v8users.
  5. Возвращаем обратно значение в таблице Params и переименовываем таблицу v8users

Комментарии

Microsoft SQL вариант
1 Находим Таблицу users
2 Находим нужную строку с пользователем,
3 Находим поле ХЕШ ключем (Название не помню), далее просто правой кл.мыши чистим его.

Удаление строки может привести к тому, что без полных прав вас не пустит в конфиг. ;)