Тестируем быстро. Запуск сеанса под другим пользователем за 6 секунд!

06.05.20

Администрирование - Роли и права

Как часто вам приходится запускать отладку под другим пользователем? Сколько времени у вас занимает запуск "чужого" сеанса? Убрать (если имеется) у себя аутентификацию ОС, сбросить пароль пользователя и восстановить его потом и т.д. Есть простой и действенный код, который поможет запускать сеансы под другим пользователем без ручной смены параметров аутентификации.

Скачать файлы

Наименование Файл Версия Размер
Тестируем быстро. Запуска сеанса под другим пользователем за 6 секунд!:
.epf 6,68Kb
328
.epf 6,68Kb 328 Скачать бесплатно

Вступление

Натолкнуло на идею создания статьи отсутствие вменяемой, открытой информации о методике решения текущего вопроса на просторах "интернетов", удалось найти пару обработок, внешние подсистемы и т.д., некоторые из решений так вообще на иностранных, незнакомых рядовому конфигуральщику 1с(мне в их числе), языках в программном коде, ужас...

 
Не рекомендуется к просмотру беременным, детям и людям с нездоровой НС

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

"Ларчик просто открывался"

Чтобы запустить приложение нам понадобится команда "ЗапуститьСистему" и строка параметров, которая будет заполнена следующим набором: имя приложения, параметр запуска приложения, имя базы, имя пользователя и пароль. На последнем стоит заострить внимание.

Как оказалось, имея даже роль "полные права", у вас не будет возможности посмотреть пароль пользователя используемый для ввода, он будет представлен в виде "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=", а для запуска нужен вид "123". Из-за этого мы не сможем запустить систему под текущим паролем пользователя, нам нужно будет установить свой пароль, запустить систему со своим паролем, а потом вернуть старый. В этом то и вся загвоздка.

!ЛикБез из комментариев! <"QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8="> - это 2 хеша паролей: от регистрозависимого и от пароля в нижнем регистре. Т. е. установив для пользователя пароль "ReGiStR", вы также сможете войти и под паролем "registr". 1С (так же как и сбер) заботится об удобстве бабушек пользователей и снижает секьюрность

Пароль «Рыба-меч»

 Это работает как-то так: в момент запуска окна аутентификации вы вводите цифры, платформа кодирует их и сравнивает с сохраненным, кодированным тем же алгоритмом, паролем пользователя. Это было выявлено опытным путем. Итак, чтобы получить этот параметр (пароль для ввода) мы можем установить какому-то пользователю новый пароль вида "123". Программа его кодирует, а мы любым из доступных способов (написать обработку, которая выведет на экран или в точке остановки найти в параметрах пользователя ИБ СохраняемоеЗначениеПароля, или на что у вас хватит фантазии) получим пароль вида "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=". Теперь у нас есть связь кодированного и некодированного пароля для подстановки в нашем алгоритме.

5 простых шагов к успеху

Итак весь алгоритм от Элемента справочника "Пользователи" до запуска под ним системы строится в пять действий:

1. Получаем пользователя ИБ из "пользователя справочника". Для решения этого непростого задания создаем супер процедуру:

 
Новый листинг 1

Как говорится, "куй железо пока горячо", сразу получим параметры: шифрованный пароль (СохраняемоеЗначениеПароля), может ли он "логиниться" стандартным путем (АутентификацияСтандартная) и его имя. А сам пользователь вовсе и не нужен больше.

!Важный момент! хранить полученный набор параметров в реквизитах формы. Для этого я выделил переменную с произвольным типом "ДанныеПользователя".

2. Создаем строку параметров запуска для процедуры "ЗапуститьСистему", используя имя, которое получили из пользователя ИБ и пароль "123". Каких-то сложностей быть не должно.

 
 Новый листинг 2

3. Сменим пользователю ИБ шифрованный пароль, на тот, который мы подсмотрели и возможность "логиниться" через 1с. Для этого лучше создать процедуру, которая по параметрам установит пользователю другой пароль, и запустить её.

 
Новый листинг 3

4. Подключим обработчик ожидания, который через 5 секунд вернет параметры аутентификации пользователя в доисторическое состояние. Для этого напишем экспортную процедуру на клиенте, запускающую процедуру, которую мы описали в прошлом действии с параметрами, хранящимися на форме.

 
Новый листинг 4

5. Сладенькое на десерт - запустим уже наконец систему!

 
Новый листинг 5

"Игого"

Тестировалось на 1С:Предприятие 8.3 (8.3.16.1224). Конфигурация: Управление торговлей, редакция 11.1 (11.1.10.53).

Сначала использовалось сие добро как внешняя обработка, но позже было внедрено на форму элемента справочника "Пользователи", для оперативности запуска. Для отладки прав и работы решений под пользователями на дальней перспективе, экономит времени значительно. 

Не скупитесь на комментарии и "Звездочки"! Это мотивирует авторов делиться добром!

Кому совсем лень -матушка, прикрепляю бесплатный файл для скачивания.

А какие решения у вас позволяют сэкономить время работы разработчиков и тестировщиков? 

Мира и здоровья вам!

Пользователи запуск безпароля кодом автоматически администратор

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    102112    565    385    

611

Запрет доступа к данным по зарплате для БП.0 и КА 2.5

Зарплата Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    30037    176    87    

135

Универсальная система оповещений в базе или по почте по произвольным условиям, расписанием, ролям и пользователям (Расширение / конфигурация для платформ 8.3.6+, для ЛЮБЫХ баз)

Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 18.09.2023, версия 2.1, расширение)

16800 руб.

29.11.2019    24166    11    7    

28

Управление данными и формами (УДиФ)

Инструменты администратора БД Инструментарий разработчика Администрирование Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    1412    3    1    

20

Система интерактивных ролей и обработчиков с возможностью интерактивной настройки и не только (платформа 8.3.17+, расширение) для УТ 11 (все), КА 2, ERP 2, Розница 2, УНФ 1.6/3.0, БП 3, ЗУП 3.1, ААА 6

Роли и права Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Бухгалтерия автономного учреждения 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 27.03.2023, версия 1.9)

10800 руб.

21.03.2022    13786    19    51    

38

Роли для кладовщика

Логистика, склад и ТМЦ Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

2000 руб.

21.05.2019    1690278    539    192    

129

Расширение для разграничения доступа к контрагентам и обработка для группового назначения доступа для Бухгалтерии (RLS) 3.0.143.42

Роли и права Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    5466    4    4    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. json 3264 06.05.20 01:33 Сейчас в теме
Если база серверная, то может запускаться дольше 5 секунд.
В этом случае старый пароль вернется на место раньше, чем пользователь начнет входить.
Я на такое натыкался, когда делал подобную обработку.
Поэтому я сделал мониторинг текущих сеансов по обработке ожидания. Как только появился новый сеанс нужного пользователя, тогда откатываем пароль назад.
autosvg; cleaner_it; user1276813; feva; +4 Ответить
4. feva 508 06.05.20 08:06 Сейчас в теме
(1) Мне кажется, что время запуска растягивается после аутентификации, или ошибаюсь?
Ну как вариант - да. Для простаты решения сделал минимум движений. Если скините код мониторинга - будет только лучше )))
5. RustIG 1761 06.05.20 08:55 Сейчас в теме
(0) если пользователь заходит в 1с во время отладки, что произойдет с пользователем? что произойдет с вашим сеансом отладки?
6. feva 508 06.05.20 08:58 Сейчас в теме
(5)
IntellXeon; EvgeniyOlxovskiy; maksa2005; MixailKa; WTL; user1276813; +6 Ответить
2. RustIG 1761 06.05.20 06:17 Сейчас в теме
Сначала использовалось сие добро как внешняя обработка, но позже было внедрено на форму пользователя.

- на каком скриншоте это можно посмотреть, что именно видит пользователь?
3. feva 508 06.05.20 08:02 Сейчас в теме
(2)Перефразировал
Сначала использовалось сие добро как внешняя обработка, но позже было внедрено на форму элемента справочника "Пользователи", для оперативности запуска.
Мне кажется скриншот кнопки неуместен
7. nusv 47 06.05.20 11:36 Сейчас в теме
Плагиат
9. feva 508 06.05.20 12:21 Сейчас в теме
(7) ну, не у всех есть такая кнопка, люди качают- значит актуально
8. SerVer1C 732 06.05.20 11:40 Сейчас в теме
Тема очень старая и изъезженная. Странно, что вы не нашли информацию по данному вопросу. Немного дополню: <"QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8="> - это 2 хеша паролей: от регистрозависимого и от пароля в нижнем регистре. Т. е. установив для пользователя пароль "ReGiStR", вы также сможете войти и под паролем "registr". 1С (так же как и сбер) заботится об удобстве бабушек пользователей и снижает секьюрность ))
user1276813; nusv; tormozit; feva; maxopik2; +5 Ответить
10. bmk74 227 06.05.20 13:27 Сейчас в теме
Только тут на инфостарте несколько обработок которые подменяют пароль на время запуска приложения, одна из первых моя, кстати код был подсмотрен в ИР..и просто переделан на управляемые формы...кстати в моей обработке пароль меняется обратно как только будет найден запущенный сеанс , что бы не ломать вход обычному пользователю...т.е пароль новый буквально на секунд 10-20 меняется...
11. kai068 5 07.05.20 08:36 Сейчас в теме
Если использовать Инструмент разработчика, то там можно вообще под любым пользователем без пароля зайти.
14. feva 508 12.05.20 13:06 Сейчас в теме
(11) Инструменты разработчика - кухонный комбайн который сварит кофе, сделает из пшена муку, запечет пирог и т.д. Какой смысл делать затраты на установку комбайна, если нужно взбить яйца венчиком для омлета.
12. capitan 2414 11.05.20 13:17 Сейчас в теме

Делаете у пользователя авторизацию ОС и подставляете имя пользователя компьютера
3 строки кода
13. feva 508 12.05.20 13:03 Сейчас в теме
(12) Как быт ьв том случае если у пользователя была ранее установлена авторизация ОС? Нужно поменять будет обратно на тот которые стоял ранее. А если авторизации ОС не было? Нужно будет вернуть значение обратно на "Ложь". Чем тогда принципиально отличается ваш предложенный метод от текущего? Тем что передернем не пароль, а параметры ОС
Спасибо
15. Cyberhawk 134 11.06.20 08:48 Сейчас в теме
(13) Отличие как минимум в том, что если аварийно упал сеанс, который уже подменил доменного пользователя, но не успел вернуть его обратно, то эту информацию в большинстве случаев можно восстановить, т.к. сопоставить имя пользователя ИБ и доменную учетку почти всегда легко.
А когда мы подменили хэш пароля у пользователя ИБ, то в случае падения старый пароль мы никак уже не вернем, если заранее отдельно о его сохранении не позаботились.
16. Артано 748 11.12.20 03:13 Сейчас в теме
А зачем такие сложности то?
17. feva 508 11.12.20 13:05 Сейчас в теме
(16) В плане? Какие сложности?
18. Артано 748 13.12.20 11:11 Сейчас в теме
(17) Есть более простой и быстрый способ запуска сеанса в том числе отладки под любым пользователем в любой базе и любой конфигурации без сброса паролей и.т.д. Поэтому и спрашиваю в чем преимущество описанного в статье метода
19. feva 508 26.12.20 11:19 Сейчас в теме
(18)К чему намеки? Если вы обладаете какими-то знаниями, почему ими просто не поделиться а не писать "из далека"
20. Артано 748 28.12.20 09:22 Сейчас в теме
(19) Так уже писали же про авторизацию ОС, а вы упорно прикидываетесь шлангом =)
21. feva 508 18.01.21 15:23 Сейчас в теме
(20) А если у пользователя уже была авторизация по ОС? У нас, к примеру, в 1с около 1000 пользователей 95% с авторизацие ОС. Т.е. каждый раз проще будет копировать, сохранять где-то имена пользователей и вставлять свои, потом менять обратно штату из 30 проггеров чем написать за пол часа данный код и наживать одну кнопку?
Я человеку ответил про его метод. Если вы работаете в базе с 10тью человеками у которых пароль есть только у админа и главбуха - да вам такое еще рано использовать. Но когда ни будь, Вы, с опытом, придете к этому решению
Dali; aalu14; user1478951; +3 Ответить
22. Артано 748 19.01.21 06:08 Сейчас в теме
(21) Вообще не вижу, обоснования. Вы и так подменяете параметры авторизации пользователя на время запуска. Зачем усложнять если можно подменить способ авторизации. Самомнение бросилось в глаза конечно, но отвечать не буду, чтобы не обидеть. Всё равно не поможет это Вам, на данном этапе саморазвития.
Единственное что хотел бы отметить, так это тестирование на базе в 10к работающих пользователей. Может быть сейчас это нормально и вам рано еще использовать более безопасные методы, но со временем вы придете к решению, что тестировать надо на "кошках", а в продуктовой базе, только работать.
Оставьте свое сообщение