gifts2017

Отключение интерфейсов из внешней обработки

Опубликовал Stamper (Stamper) в раздел Администрирование - Защита, права, пароли

Способ подмены интерфейсов типовой конфигурации из внешней обработки

Приветствую читающего!

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

Для того, чтобы незаметно для пользователей подставлять в качестве интерфейса нашу внешнюю обработку, для всех пользователей был модифицирован ярлычок запуска 1С Предприятия:

"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /S[servername]\[dbname] /EXECUTE c:\desktop.epf

как Вы поняли, этот ярлычок подключает к базе dbname на сервере servername и сразу запускает внешнюю обработку c:\desktop.epf, в которой мы и реализуем весь наш дополнительный функционал. Аутентификация Windows и режим рабочего стола главной формы обработки позволяют сделать подключение быстрым и удобным.

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

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

Для Каждого Элемент Из ГлавныйИнтерфейс Цикл
  Элемент.Переключаемый = Ложь;
  Элемент.Видимость = Ложь;
КонецЦикла;


этот кусочек кода делает невидимыми все лишние пункты меню (включая пункт "Переключить интерфейс").

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Марина Гинко (_qqq) 20.12.12 08:49
Очень полезная статья. Недавно поставили задачу сделать в БП что-то подобное для менеджеров.
Воспользуюсь Вашей идеей. Спасибо!
Однако, вопрос: нельзя ли еще запретить пользователям запускать обработки и отчеты, с помощью которых он мог бы получить те данные, "о которых мы им не рассказываем"? Можно ли доработать Ваше решение в этом направлении?
2. bulpi bulpi (bulpi) 20.12.12 17:40
"Элемент.Переключаемый = Ложь;"

Вот эта строка, ИМХО, лишняя. Достаточно Видимость=Ложь.
3. bulpi bulpi (bulpi) 20.12.12 18:26
Увы, объект ГлавныйИнтерфейс не позволяет решить более общую задачу, а именно : оставить в меню Переключить интерфейс.. только те интерфейсы, которые нужно. Хоть и определяешь свойство Переключаемый = Ложь, а все равно все интерфейсы доступны, и можно переключиться.
Кто-нибудь знает способ ?
4. cratos2 (CratosX) 21.12.12 19:51
(0) а что мешает пользователю открыть 1С не вашим ярлыком с параметром запуска обработки, скрывающий некие меню интерфейса, а из Пуска или из Program Files?

(3) bulpi, давно все знают - снять замок и поколдовать над ролями. Иначе никак.
5. Stamper (Stamper) 24.12.12 20:34
(1) _qqq, к сожалению, нам удалось только не дать пользователям стандартные интерфейсы.
(2) bulpi, мы тоже так думали, но без неё не получалось.
(4) cratos2, а там уже win-админы постарались =)
6. cratos2 (CratosX) 25.12.12 00:02
(5) Stamper, а можно поподробнее с этого места?
как именно запретили включать 1С всеми остальными способами?
7. Александр Журавлев (apostal86) 25.12.12 14:41
А что мешает поставить конфигурацию на частичную поддержку, с сохранением поддержки для исходных объектов конфигурации? И по аналогии делайте дополнительно интерфейсы, роли, проблем меньше. Только при обновлении на два клика дольше процедура обновления получится.
8. Stamper (Stamper) 25.12.12 19:54
(6) cratos2, спрошу у админов.
(7) apostal86, хотели (и получилось) совсем без лишних кликов, чтобы бухгалтер мог сам из предприятия это делать.
9. cratos2 (CratosX) 26.12.12 00:03
(8) Stamper, ведь без этой инфы твой пост "ниочём"
10. Stamper (Stamper) 26.12.12 18:02
(9) cratos2, пользователи приёмной (от которых интерфейсы и скрывались) с помощью этой технологии http://en.wikipedia.org/wiki/Remote_Desktop_Services проваливались сразу в 1С с настройками, описанными в статье. ничего другого они сделать не могут.
11. cratos2 (CratosX) 26.12.12 22:17
(10) Stamper, лично я сидел у клиента с таким подключением, что не мешало мне нажать ctrl+shift+esc и открыть диспетчер задач, посредством которого не составило труда запустить новый процесс.

второй способ - обычный файловый доступ изнутри 1С - жмешь "сохранить как", и получаешь доступ ко всем файлам - выбираешь файлик c:\program files\1cv8\bin\1cv8.exe и жмешь правой кнопкой мыши - "Открыть", попутно вспоминая добрым словом горе-админов
12. Stamper (Stamper) 27.12.12 01:55
(11) cratos2, только юзерам не рассказывайте =))))
мы понимаем, что без правки ролей в конфигураторе определённый риск остаётся.
13. cratos2 (CratosX) 27.12.12 03:14
Не зря во франчевых офисных базах есть ограничение на открытие внешних файлов, ой не зря...
14. Stamper (Stamper) 27.12.12 15:19
(13) cratos2, где и что?! в типовых конфигурациях есть роль "право открытия внешних обработок" (как-то так).
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа