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

06.05.20

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

Вступление

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

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

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

10000 руб.

02.09.2020    159431    872    399    

861

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8843    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10428    36    24    

61

SALE! 20%

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

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

5940 4752 руб.

27.05.2021    37566    264    92    

205

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

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

4560 руб.

21.05.2019    1694764    570    194    

137

Ценообразование, анализ цен Роли и права Системный администратор Платформа 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С УНФ. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    58454    160    261    

152

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

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

19200 руб.

29.11.2019    25657    16    8    

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

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

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


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