Простенькая обработка на управляемых и обычных формах под платформу 8.2-8.3, позволяющая сменить пароль Аутентификации 1С: Предприятия и вернуть обратно. Будет полезна администраторам, программистам, связанным с 1С.

Недавно столкнулся с проблемой, которая потребовала простенького решения. Собственно, проблему можно уместить в один вопрос: как помочь пользователю, не зная и не сбрасывая его пароль?

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

С развитием мобильной платформы и мобильных клиентов Аутентификация 1С: Предприятия становится «занята» пользователем, так как синхронизация проходит именно по ней. То есть не каждый пользователь захочет разглашать свои пароли или пользоваться тем паролем, что ему «назначили». Наша контора так��е все больше и больше подвязывается с мобильными клиентами. Вот тут и возник упомянутый ранее вопрос.

Я перерыл просторы интернета, нашел кучу описаловок как ломать пароли в файловой БД или в серверных версиях.
В случае с файловой версией не нужно ни каких прав достаточно установить программу просмотра файлов баз *.1CD и меняем пароли в таблице V8USERS. Стоит заметить, что пароли там хранятся не в чистом виде, а хранится хеш пароля. Собственно хеш неизвестного пароля меняется на хеш известного пароля. В случае серверных баз нужно знать логин администратора БД и там уже дело не хитрое поменять пароль. Но как объяснить пользователю ошибку аутентификации после таких взломов? Да и к чему такие трудности?

Нашел так же обработку, которая подбирает пароли при этом требует такие же права как и моя обработка. Ну подбирает пароль 123 или даже 123456 она быстро, а что если пароль настоящий? Она пишет около 90 дней буду подбирать. Это не в какие ворота! Может выйти такая ситуация, пока подбирали пароль, пользователь сменил пароль. Да еще и не 1 раз может сменить.

В общем предлагаю небольшую обработку, которая меняет хеш неизвестного пароля на хеш желаемого пароля, а затем подменяет обратно. Работает она как в Управляемых формах, так и под обычные формы. Может быть встроена через «дополнительные обработки и отчеты», процедура в модуль объекта с описанием обработки добавлена.



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

Принцип работы:

По пользователю получаем хеш пароля.

//Пользователь элемент справочника Пользователи
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ);
//СохраняемоеЗначениеПароля хранит хеш пароля
ПарольПользователя = ПользовательИБ.СохраняемоеЗначениеПароля;
//Имя хранит логин пользователя
ЛогинПользователя = ПользовательИБ.Имя;

Вводим желаемый пароль и получаем его хеш.



Меняем хеш пользователя на хеш желаемого пароля.



Входим в систему под новым паролем. Меняем все обратно.



Ссылка на скачивание обработки