Смена пользователя без выхода из программы. (обычное и управляемое приложение)
Внимание! Это не полная смена пользователя, а лишь изменение текущих параметров сеанса. Многие права доступа, не привязанные к нему, будут дейстовать как обычно.
С помощью данной обработки Вы можете сменить пользователя не выходя непосредственно из программы.
Работает на всех типовых конфигурациях.
Пароль в данном случае также не требуется.
Необходимо лишь имя пользователя в базе и право на запуск внешних обработок.
Для специалистов по внедерению, за которыми установлен тотальный контроль — нужная разработка. Пришел к клиенту, и можно с ходу работать. Еще бы заменить в журнале регистрации активность ползователя на свою )))
имхо — бред.
просто поменять параметр сеанса недостаточно. права останутся старого пользователя. RLS поведет себя непредсказуемо (ну, конечно, предсказуемо). часть параметров сеанса инициализуруются при запуске, часть запросов выполняется на лету (по параметру текущий пользователь), на выходе можно получить не то, что ожидаешь.
А что есть средства по другому смену пользователя делать не перезапуская постоянно RDP или 1С через Remote APP, и прочие комбинации?
(3) Во первых, а когда оно надо менять пользователя не перезапуская? Перезапуск не такая дорогая процедура.
Во вторых, (и в главных) замена параметра сеанса это не замена пользователя. Так как не отработают права, сохранить/восстановить значения, параметры отчетов через кнопку записи данных формы. Может еще чего.
Очень полезная обработина, в работе постоянно необходимо заходить под другим пользователем, что очень долго, а с данной обработкой это происходит за считанные секунды
Лично использую при следующих ситуациях:
1. Изменить настройки вариантов отчетов, настройки форм у других пользователей без потери времени.
2. Просмотр настроек форм и отчетов под другими пользователями.
3. Иногда пользователь говорит, что у него, например, стоят странные настройки отбора и прочее, то обработка в самый раз в такой ситуации.
Люди, у меня такое впечатление, что я в дурдоме. Сменить параметр «ТекущийПользователь» в какой-то там типовой конфигурации — это не сменить пользователя 1с. А вы все еще и обсуждаете эту «публикацию» серьезно. Минус не поставлю, т.к. я вообще-то добрый 🙂
(7) bulpi, спасибо за доброту =))
А можно уточнить, какие именно реквизиты подменяются и через какой механизм?
В отдельных случаях, когда конфа не типовая, могут использоваться дополнительные параметры сеанса… Будут ли они переустановлены?
(7) bulpi, аналогично.
Ну автор какбэ пояснил — для просмотра вариантов отчета ему вроде бы как хватает 🙂
Обраюотка не правильная, права теже остаются, я не понял смысл ее. я такое делал, но совсем иначе. там и пароль сохранялся и новая копия 1с запускалась уже с правами на пользователя от которого запуск происходит. Очень удобно было на проекте решать многие вопросы с ролями и правами. А это изобретение я не понял.
(6) YPermitin,
В таких случаях лучше через терминал удаленно подключиться к сеансу пользователя. Пусть он сам пальцем покажет, что же такого странного в его настройках 🙂
Я у себя использую замену значения параметра сеанса ТекущийПользователь для эмулирования сеанса какого-либо из пользователей.
На типовых конфигурациях будет работать неправильно, т.к. не учитывается работа с кэшем на сервере и клиенте:
кэш на клиенте: экспортная переменная модуля обычного приложения «глОбщиеЗначения»
кэш на сервере: ПараметрыСеанса.ОбщиеЗначения
При смене параметра сеанса значения в кэшах останутся соответствующими предыдущему пользователю.
Таким образом, при вызове метода глЗначениеПеременной(«глТекущийПользователь») на клиенте будет выведен пользователь из кэша, а не из параментра сеанса ТекущийПользователь
Вот это грамотное решение! На мой взгляд только перезапуск полностью решит проблему. А вот перезапуск можно автоматизировать.
Можно конечно и параметр сеанса поменять и кэши почистить, но ПользователиИнформационнойБазы.ТекущийПользователь() изменить не получится!
(0) Лучше так и написать в публикации что обработка меняет параметр сеанса «Текущий пользователь», а не пользователя
Прикольно было бы обновлять кэш настроек, например, чтобы проверить работу измененной настройки без перезапуска программы.
Идея интересная, конечно есть косяк с правами, но все же…
Для самописных конфигураций удобнее вывести в интерфейс кнопку + добавить в справочник пользователей контекстное меню.
Действительно, если обработка просто меняет параметр сеанса «Текущий пользователь», то не проще было бы так и назвать публикацию, а то реально можно подумать что обработкой полностью эмулируется работа под другим пользователем без перезапуска программы.
Да, именно удобно использовать, когда на этапе внедрения, проходищься по многим пользователям и настраиваешь варианты отчетов…а так — конечно без перезапуска не решить проблему смены пользователя
Интересная обработка! Нужно добавить такую возможность. Особенно удобно для администраторов, когда необходимо проврить почему у какогго либо пользователя не выводится отчет или не проводится документ
Хорошая штука, спасибо!
(0) сие чудо вводит новичков в заблуждение. Минус.
Прежде чем качать, прочтите наконец документацию разработчика и/или администратора 1С.
В инструментах разработчика 2.49 появился список пользователей, где есть команда запуска предприятия в этой же базе под «представителем» выбранного пользователя. Эта команда позволяет запустить сеанс под временной копией выбранного пользователя (без необходимости знания пароля), что обычно требуется для отладки RLS и других ограничений специфичных для конкретного пользователя. Важно учитывать, что УникальныйИдентификатор у этого временного пользователя будет новый.
Жаль, что комментарии не прочитал перед загрузкой, итог: согласен с (7) bulpi
При смене пользователя все равно документы делаются и проводятся от имени старого пользователя! Может что то не так делаю…
товарищи, так сохраняются или нет варианты отчетов под другими пользователями? если да, то очень полезная штука!
Вобщем минусовая публикация!
Потребовалось такое и решил написать обработку, сул и написал:
Вот и вся обработка 🙂
Однако не взлетело 🙁 по причине:
ПараметрыСеанса.ТекущийПользователь = ЭтаФорма.ПользовательДляВхода;
по причине:
Нарушение прав доступа!
Отсюда следует важное правило: на парметр сеанса «ТекущийПользователь» должно стоять право «Установка» (меняется в ролях)
Поэтому я решил что что-то не понял и скачал сие чудо! Оказалась там моя волшебная строка которая естественно не работает под типовой 1С «Управление торговлей», редакция 10.3, т.к. там как раз такого права и нет ни для кого! Даже под «ПолныеПрава»!
И это главный минус автора — он об это не упомянул
МИНУСЫ:
— не указано основное условие ее запуска, отсюда проблема: обработка не работает под типовой конфой Управление торговлей «по умолчанию», хотя это уже проблемы данной конфы, т.к. например конфа Бухгалтерия предприятия, редакция 2.0 в роли «ПолныеПрава» есть право менять «Текущего пользователя»
— примитвный код в 1-ну строку, мог бы хоть для какой-то конфы заточить, где перезаполнять КЭШ и выполнять дургие действия выполняемые при запуске базы, вобщем более серьезная эмуляция смены пользователя
— не рассмотрены особенности работы типовых конф-й, хотя вряд ли предназначено для другого — все читаем в комментариях, хотя все должно быть в описании
— введение в заблуждение пользователей заголовком «смена пользователя», а не «текущего пользователя», а разница для платформы огромная, это и RLS и права на уровне конфигуратора
ПЛЮCЫ:
+ красивое (не тяп-ляп) оформление обработки и публикации
+ разработка на управляемом и обычном приложении
ИТОГ:
-4+2 = -2, вобщем МИНУС
РЕЗЮМЕ:
Итог закономерный т.к. реально обработка сделана «индивидуально под себя», т.к. не будет работать у других, а если код выкладывать вместо обработки то «разработчика» поднимут на смех.
ЗЫ: критиковать легко конечно, сам такого бы не сделал как хочу, но и выкладывать такое убожество рука бы не поднялась, т.к. идеи «на грош», полезной работы столько же. Так что автор извини, если надумаеш доделать описание и сменить заголовок то могу минус и убрать, т.к. тогда потянет на нормальную статью
@@@ не работает в 1с корпдокументооборот
Во многих типовых конфигурациях (или более старых) используется глЗначениеПеременной(«глТекущийПользователь») вместо параметров сеанса. Как обработана здесь эта ситуация?
Спасибо! Спас! Доделал сервис замов…
не работает
Такой подставы я не ожидала