Отключение интерфейсов из внешней обработки
Способ подмены интерфейсов типовой конфигурации из внешней обработки
- Описание
- Подробнее
Описание
Приветствую читающего!
Для одного из наших клиентов требовалось доработать типовую конфигурацию с целью расширения функционала работы с розничными «конечными» покупателями. По-скольку продажа она повсюду продажа (контроль взаиморасчетов, оформление оплат и проч.) решили не изменять типовую конфигурацию, а все разработки вести во внешней обработке, которая будет служить интерфейсом для пользователей-продажников. Дополнительные данные, требующие хранения в БД, решили сохранять с помощью механизма свойств и категорий.
Для того, чтобы незаметно для пользователей подставлять в качестве интерфейса нашу внешнюю обработку, для всех пользователей был модифицирован ярлычок запуска 1С Предприятия:
«C:\Program Files (x86)\1cv82\common\1cestart.exe» ENTERPRISE /S[servername]\[dbname] /EXECUTE c:\desktop.epf
как Вы поняли, этот ярлычок подключает к базе dbname на сервере servername и сразу запускает внешнюю обработку c:\desktop.epf, в которой мы и реализуем весь наш дополнительный функционал. Аутентификация Windows и режим рабочего стола главной формы обработки позволяют сделать подключение быстрым и удобным.
Но тут возникает новая проблема. В некоторых типовых конфигурациях набор ролей ограничен и не позволяет достичь желаемого. Например, не нашлось роли, которая бы позволяла работать с торговыми документами, но не получать доступ к справочнику «Сотрудники», а ведь в нём видны оклады. Пусть даже мы и не дали в интерфейсе своей обработки доступ к этом справочнику, но существование во всех интерфейсах пункта меню «Переключить интерфейс» оставляет серьёзную брешь в системе распределения доступа к данным. Ну а пользователи рано или поздно находят те пункты меню, о которых мы им не рассказываем 🙂
Сотрудник подсказал мне как обойти этот момент: в обработчике «При открытии» нашей формы с интерфейсом можно написать
Для Каждого Элемент Из ГлавныйИнтерфейс Цикл
Элемент.Переключаемый = Ложь;
Элемент.Видимость = Ложь;
КонецЦикла;этот кусочек кода делает невидимыми все лишние пункты меню (включая пункт «Переключить интерфейс»).
Таким образом, и конфигурация осталась на полной поддержке 1С (т.е. простота обновления сохранена), и у пользователей нет искушения открыть ненужные для них данные.

