Смена пользователя без выхода из программы (обычное и управляемое приложение)


Смена пользователя без выхода из программы. (обычное и управляемое приложение)

Внимание! Это не полная смена пользователя, а лишь изменение текущих параметров сеанса. Многие права доступа, не привязанные к нему, будут дейстовать как обычно.

С помощью данной обработки Вы можете сменить пользователя не выходя непосредственно из программы.

Работает на всех типовых конфигурациях.

Пароль в данном случае также не требуется. 

Необходимо лишь имя пользователя в базе и право на запуск внешних обработок.

33 Comments

  1. Agema

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

    Reply
  2. Serj1C

    имхо — бред.

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

    Reply
  3. Evgeny2009

    А что есть средства по другому смену пользователя делать не перезапуская постоянно RDP или 1С через Remote APP, и прочие комбинации?

    Reply
  4. Ndochp

    (3) Во первых, а когда оно надо менять пользователя не перезапуская? Перезапуск не такая дорогая процедура.

    Во вторых, (и в главных) замена параметра сеанса это не замена пользователя. Так как не отработают права, сохранить/восстановить значения, параметры отчетов через кнопку записи данных формы. Может еще чего.

    Reply
  5. Konsult

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

    Reply
  6. YPermitin

    Лично использую при следующих ситуациях:

    1. Изменить настройки вариантов отчетов, настройки форм у других пользователей без потери времени.

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

    3. Иногда пользователь говорит, что у него, например, стоят странные настройки отбора и прочее, то обработка в самый раз в такой ситуации.

    Reply
  7. bulpi

    Люди, у меня такое впечатление, что я в дурдоме. Сменить параметр «ТекущийПользователь» в какой-то там типовой конфигурации — это не сменить пользователя 1с. А вы все еще и обсуждаете эту «публикацию» серьезно. Минус не поставлю, т.к. я вообще-то добрый 🙂

    Reply
  8. YPermitin

    (7) bulpi, спасибо за доброту =))

    Reply
  9. V.Nikonov

    А можно уточнить, какие именно реквизиты подменяются и через какой механизм?

    В отдельных случаях, когда конфа не типовая, могут использоваться дополнительные параметры сеанса… Будут ли они переустановлены?

    Reply
  10. Новиков

    (7) bulpi, аналогично.

    Ну автор какбэ пояснил — для просмотра вариантов отчета ему вроде бы как хватает 🙂

    Reply
  11. palax

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

    Reply
  12. Altair777

    (6) YPermitin,

    Иногда пользователь говорит, что у него, например, стоят странные настройки отбора и прочее, то обработка в самый раз в такой ситуации

    В таких случаях лучше через терминал удаленно подключиться к сеансу пользователя. Пусть он сам пальцем покажет, что же такого странного в его настройках 🙂

    Reply
  13. ms200999

    Я у себя использую замену значения параметра сеанса ТекущийПользователь для эмулирования сеанса какого-либо из пользователей.

    Reply
  14. 1cKiller

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

    кэш на клиенте: экспортная переменная модуля обычного приложения «глОбщиеЗначения»

    кэш на сервере: ПараметрыСеанса.ОбщиеЗначения

    При смене параметра сеанса значения в кэшах останутся соответствующими предыдущему пользователю.

    Таким образом, при вызове метода глЗначениеПеременной(«глТекущийПользователь») на клиенте будет выведен пользователь из кэша, а не из параментра сеанса ТекущийПользователь

    Reply
  15. 1cKiller
    такое делал, но совсем иначе. там и пароль сохранялся и новая копия 1с запускалась уже с правами на пользователя от которого запуск происходит. Очень удобно было на проекте решать многие вопросы с ролями и правами. А это изоб

    Вот это грамотное решение! На мой взгляд только перезапуск полностью решит проблему. А вот перезапуск можно автоматизировать.

    Можно конечно и параметр сеанса поменять и кэши почистить, но ПользователиИнформационнойБазы.ТекущийПользователь() изменить не получится!

    Reply
  16. echo77

    (0) Лучше так и написать в публикации что обработка меняет параметр сеанса «Текущий пользователь», а не пользователя

    Reply
  17. Psylocibine

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

    Reply
  18. GreenFox

    Идея интересная, конечно есть косяк с правами, но все же…

    Для самописных конфигураций удобнее вывести в интерфейс кнопку + добавить в справочник пользователей контекстное меню.

    Reply
  19. Bassgood

    Действительно, если обработка просто меняет параметр сеанса «Текущий пользователь», то не проще было бы так и назвать публикацию, а то реально можно подумать что обработкой полностью эмулируется работа под другим пользователем без перезапуска программы.

    Reply
  20. Para_1987

    Да, именно удобно использовать, когда на этапе внедрения, проходищься по многим пользователям и настраиваешь варианты отчетов…а так — конечно без перезапуска не решить проблему смены пользователя

    Reply
  21. revril

    Интересная обработка! Нужно добавить такую возможность. Особенно удобно для администраторов, когда необходимо проврить почему у какогго либо пользователя не выводится отчет или не проводится документ

    Reply
  22. vnedr

    Хорошая штука, спасибо!

    Reply
  23. Yasen

    (0) сие чудо вводит новичков в заблуждение. Минус.

    Прежде чем качать, прочтите наконец документацию разработчика и/или администратора 1С.

    Reply
  24. tormozit

    В инструментах разработчика 2.49 появился список пользователей, где есть команда запуска предприятия в этой же базе под «представителем» выбранного пользователя. Эта команда позволяет запустить сеанс под временной копией выбранного пользователя (без необходимости знания пароля), что обычно требуется для отладки RLS и других ограничений специфичных для конкретного пользователя. Важно учитывать, что УникальныйИдентификатор у этого временного пользователя будет новый.

    Reply
  25. no_limits

    Жаль, что комментарии не прочитал перед загрузкой, итог: согласен с (7) bulpi

    Reply
  26. revril

    При смене пользователя все равно документы делаются и проводятся от имени старого пользователя! Может что то не так делаю…

    Reply
  27. orehova123

    товарищи, так сохраняются или нет варианты отчетов под другими пользователями? если да, то очень полезная штука!

    Reply
  28. CaSH_2004

    Вобщем минусовая публикация!

    Потребовалось такое и решил написать обработку, сул и написал:

    ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;

    Вот и вся обработка 🙂

    Однако не взлетело 🙁 по причине:

    Ошибка при установке значения атрибута контекста (ТекущийПользователь)

    ПараметрыСеанса.ТекущийПользователь = ЭтаФорма.ПользовательДляВхода;

    по причине:

    Нарушение прав доступа!

    Отсюда следует важное правило: на парметр сеанса «ТекущийПользователь» должно стоять право «Установка» (меняется в ролях)

    Поэтому я решил что что-то не понял и скачал сие чудо! Оказалась там моя волшебная строка которая естественно не работает под типовой 1С «Управление торговлей», редакция 10.3, т.к. там как раз такого права и нет ни для кого! Даже под «ПолныеПрава»!

    И это главный минус автора — он об это не упомянул

    МИНУСЫ:

    — не указано основное условие ее запуска, отсюда проблема: обработка не работает под типовой конфой Управление торговлей «по умолчанию», хотя это уже проблемы данной конфы, т.к. например конфа Бухгалтерия предприятия, редакция 2.0 в роли «ПолныеПрава» есть право менять «Текущего пользователя»

    — примитвный код в 1-ну строку, мог бы хоть для какой-то конфы заточить, где перезаполнять КЭШ и выполнять дургие действия выполняемые при запуске базы, вобщем более серьезная эмуляция смены пользователя

    — не рассмотрены особенности работы типовых конф-й, хотя вряд ли предназначено для другого — все читаем в комментариях, хотя все должно быть в описании

    — введение в заблуждение пользователей заголовком «смена пользователя», а не «текущего пользователя», а разница для платформы огромная, это и RLS и права на уровне конфигуратора

    ПЛЮCЫ:

    + красивое (не тяп-ляп) оформление обработки и публикации

    + разработка на управляемом и обычном приложении

    ИТОГ:

    -4+2 = -2, вобщем МИНУС

    РЕЗЮМЕ:

    Итог закономерный т.к. реально обработка сделана «индивидуально под себя», т.к. не будет работать у других, а если код выкладывать вместо обработки то «разработчика» поднимут на смех.

    ЗЫ: критиковать легко конечно, сам такого бы не сделал как хочу, но и выкладывать такое убожество рука бы не поднялась, т.к. идеи «на грош», полезной работы столько же. Так что автор извини, если надумаеш доделать описание и сменить заголовок то могу минус и убрать, т.к. тогда потянет на нормальную статью

    Reply
  29. korae

    @@@ не работает в 1с корпдокументооборот

    Reply
  30. ditiatko

    Во многих типовых конфигурациях (или более старых) используется глЗначениеПеременной(«глТекущийПользователь») вместо параметров сеанса. Как обработана здесь эта ситуация?

    Reply
  31. poyson

    Спасибо! Спас! Доделал сервис замов…

    Reply
  32. JohnConnor

    не работает

    Reply
  33. makmmakm

    Такой подставы я не ожидала

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *