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

06.05.20

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

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

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

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

Вступление

Натолкнуло на идею создания статьи отсутствие вменяемой, открытой информации о методике решения текущего вопроса на просторах "интернетов", удалось найти пару обработок, внешние подсистемы и т.д., некоторые из решений так вообще на иностранных, незнакомых рядовому конфигуральщику 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).

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

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

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

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

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

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

См. также

SALE! 20%

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

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

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

13000 10400 руб.

02.09.2020    122180    670    389    

714

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

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

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

5700 руб.

27.05.2021    32740    204    89    

165

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

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

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2981    13    1    

34

SALE! 20%

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

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

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

10000 8000 руб.

10.11.2023    3546    11    1    

34

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

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

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

9360 руб.

14.09.2022    5760    7    4    

9

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

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

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

2520 руб.

21.05.2019    1692312    552    192    

133

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

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

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

18000 руб.

29.11.2019    24694    13    8    

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

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

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


Поставить пользователю авторизацию через ОС, подставив свои учётные данные. После запуска, вернуть обратно.
Восьмой; +1 Ответить
25. Восьмой 87 22.02.24 10:18 Сейчас в теме
(24)
Огромное спасибо! я об этом даже не подумал)
Оставьте свое сообщение