Представленный инструмент позволяет получить административный доступ к файловой базе 1С, если он, по какой-либо причине, был утерян.
Итак, сама проблема известна достаточно давно: предыдущий программист/главбух уволился/уехал/пропал/на звонки не отвечает, админская учётка запаролена, и сам пароль утерян. В итоге ни выгрузить базу, ни обновить/подправить конфигурацию, ни ТиИ сделать, короче, ситуация примерно как если потеряли единственный ключ от своей квартиры, и не можем попасть внутрь. Что мы делаем обычно в такой ситуации? Правильно, вскрываем дверь, меняем замок и ложим в карман новенький комплект ключей.
Поскольку проблема не нова, то и решений накопилось немало: от засучивания рукавов и ныряния в недры БД с hex-редактором, до автоматизированных утилит, например, http://infostart.ru/public/83593/ (имеет проблемы с версией платформы 8.2) , http://infostart.ru/public/151254/. Более обобщённо проблема рассмотрена также в публикации http://infostart.ru/public/155131/.
Принципы всех этих решений практически идентичны - таблица (файл для 1С 8.1) со списком пользователей полностью изымается из базы, т.е. список пользователей "обнуляется". Согласитесь, такой принцип ампутации "мешающих" органов не очень соответствует идеологии законных владельцев базы данных, ведь перед ними стоит задача не по удалению списка пользователей, а по восстановлению административного доступа, но куда деваться, ради восстановления доступа они идут даже на такие методы.
В данной публикации Вашему вниманию представлен, так сказать, идеологически правильный вариант решения данной проблемы при помощи "точечной хирургии" - а именно, восстановление административного доступа к базе с сохранением всех уже имеющихся пользователей, включая их роли, интерфейсы, пароли и т.п.
Данное решение стало возможным благодаря повялению нового инструмента - компоненты для прямого чтения и записи данных в формате файловой базы данных .1CD Компонента для прямого чтения/записи данных из файлов баз данных .1CD .
Для восстановления доступа проделываем следующие шаги:
0. Обязательно делаем бэкап БД (копированием/архивированием файла БД)
1. Открываем обработку "ПолучитьАдминскийДоступ.epf" в управляемом приложении любой другой базы (например, можно создать новую пустую базу), указываем файл исходной БД, нажимаем кнопку "Прочитать".
2. Выбираем нужного пользователя с адмнистративными правами, жмём кнопку "Сохранить", затем кнопку "Сбросить".
3. Закрываем обработку, и спокойно заходим в конфигуратор под этим пользователем. Здесь мы можем проделать необходимые административные действия, но, самое главное, мы можем создать новых пользователей с административными правами.
4. Закрываем конфигуратор, вновь открываем нашу обработку, выбираем этого же пользователя, жмём кнопку "Восстановить".
Таким образом, имеем список пользователей в исходном виде, и плюс имеем вновь добавленных пользователей с административными правами.
Выполнение 4-го пункта необязательно (опционально), и нужно для приведения состояния выбранного пользователя в исходное состояние. Если это не трубуется, то данный пункт можно пропустить (при этом ещё раз хочу отметить, что все остальные пользователи остаются в исходном состоянии).
Технические детали:
Обработка может функционировать только на платформах 1С 8.2 и выше (т.к. компонента написана по технологии NativeAPI), в режиме управляемого режима (код открыт - можно портировать и для обычного режима), при этом сами обрабатываемые БД могут быть любых версий (8.0-8.3).
Данные пользователя сохраняются в папке БД, в подпапке "V8USERS_SAVE", с указанием GUID пользователя в имени файла. Формат сохраняемых данных различается для версий 8.0-8.1, и 8.2-8.3.
Предупреждения, отказ от ответственности:
Данный инструмент предназначен исключительно для законных владельцев баз данных. Автор не может нести ответственность за любой нанесённый ущерб при применении данного программного обеспечния. Используйте его исключительно на тестовых копиях баз данных! Своевременно производите резервное копирование баз данных во избежание потери информации!
История версий: