Запрет на изменение форм, панелей навигации, разделов и действий в управляемом интерфейсе

24.05.21

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

Как настроить права на изменение интерфейса и чем это чревато?

Скачать файл

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

Наименование По подписке [?] Купить один файл
Запрет на изменение панелей формы, навигации разделов в управляемом интерфейсе.:
.cf 80,43Kb
11
11 Скачать (1 SM) Купить за 1 850 руб.

Саму целесообразность и соответствиям идеологиям вышеозначенного, в заметке обсуждать не буду.

Кто-то может сказать, что это очередная статья из-за одной галочки, но, т.к. я потратил на это кучу времени, считаю, что кому-то это может быть полезно. 

Подопытная база - УТ11.1 примерно на 20-30 активных пользователей.

Текущая версия платформы 8.3.18.1289. Все описанное работало также на платформе 8.3.16, как и приложенный файл.

Первая попытка.

Такую задачу, чтобы пользователи не могли настраивать интерфейс передо мной поставили еще лет 5 назад. Тогда я не нашел ничего об этом в сети.

Единственное, что удалось сделать - программно заблокировать пункт меню "Изменить форму".

Это можно сделать примерно таким образом:

 
 Код отключения пунктов "Изменить форму"

Код заворачивается в процедуру общего модуля, и вызывается в процедуре ПриОткрытии() каждой формы

    ЭА_Клиент.ПриСозданииНаСервере(ЭтаФорма);

Для чего пришлось создать специальную обработку, позволяющую вставить код во все формы  //infostart.ru/public/609469/

 

Этот вариант работал пару лет, пока к вопросу не вернулись, т.к. остались еще панели навигации.

Была сделана попытка модифицировать служебные окна "Настройка панели навигации" и другие, через механизмы, найденные на ИС, но их удалось только выгрузить, но не упаковать обратно. К тому же, надежность и корректность такого метода весьма сомнительна.

Решение

Флаг "Сохранение данных пользователя" в ролях доступа.

С чем пришлось столкнуться:

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

     
     

    Перем глЭА_СписокПринтеров Экспорт;
    
    Процедура ЭА_ЗаполнитьСписокПринтеров()
    
       Попытка
          WSпринтеры = Новый COMОбъект ("WScript.Network");
          prn = WSпринтеры.EnumPrinterConnections();
          i = 0;
          глЭА_СписокПринтеров = Новый СписокЗначений;
          Пока i < prn.Count()-1 Цикл
             глЭА_СписокПринтеров.Добавить(prn.Item(i+1));
             i = i + 2;
          КонецЦикла;
       Исключение
       КонецПопытки;
    
    КонецПроцедуры
    
    Процедура ПриНачалеРаботыСистемы()
    
    
       ....
    
       ЭА_ЗаполнитьСписокПринтеров();
    
    КонецПроцедуры
    

     

    Форму печати прикладываю. Вызов:

     
     Вызов формы печати
    &НаКлиенте
    Процедура НапечататьТабДок(ТабДок,КлючПараметровПечати, Синоним = "")Экспорт
    
       Если ТабДок=Неопределено Тогда
          Возврат;
       КонецЕсли;
    
       ТабДок.ТолькоПросмотр = Истина;
       ТабДок.КлючПараметровПечати = КлючПараметровПечати;
       ТабДок.ОтображатьСетку = Ложь;
       ТабДок.АвтоМасштаб = Истина;
    
       ПараметрыФормы = Новый Структура("ТабДок", ТабДок);
       Если ЗначениеЗаполнено(Синоним) Тогда
         ПараметрыФормы.Вставить("Синоним", Синоним);
       КонецЕсли;
       ОткрытьФорму("ОбщаяФорма.ЭА_Печать", ПараметрыФормы,,Истина);
    
    КонецПроцедуры
    

     

    Не сохраняются выбранные пользователем значения. Решено программным сохранением важных в привилегированном режиме :   
     

     

    УстановитьПривилегированныйРежим(Истина);
    ХранилищеОбщихНастроек.Сохранить("ИмяНастройки

     

        
  • Возникает ошибка при программном сохранении истории открытых объектов. ( ИсторияРаботыПользователя.Добавить(НовыйЭлементСправочника) ;) Столкнулся с этим только в помощнике ввода номенклатуры. Решается закомментированием, ну или установкой привилегированного режима.

Итог

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

См. также

SALE! %

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

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

12000 10000 руб.

02.09.2020    164032    910    402    

884

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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    9344    44    5    

76

SALE! %

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

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

15000 10000 руб.

10.11.2023    10938    40    27    

66

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

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

5940 руб.

27.05.2021    38261    274    96    

208

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

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

4560 руб.

21.05.2019    1695062    570    194    

137

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

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

3000 руб.

23.02.2018    58759    162    261    

154

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

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

19200 руб.

29.11.2019    25776    17    8    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nance 29.01.22 02:31 Сейчас в теме
Ок.
Но это реально, если конфигурация редактируется с сохранением поддержки..
А если нет? Как быть тем, кто с Фрешем или у кого конфигурация типовая?
Я так понимаю, через расширение никак не повторить
2. unknown181538 158 31.01.22 19:39 Сейчас в теме
(1) Сложный вопрос. Возможно, попробовать скопировать типовую роль, и в ней сниматься флаг "Сохранение данных пользователей".
Далее, выдать добавленные роли вместо типовых. Но, для этого может потребоваться добавить в расширении чуть ли не всю конфигурацию.
Потом еще возникнут права с профилями групп доступа...
В общем, я бы в это не лез.
3. Scroudge 4 03.11.22 21:42 Сейчас в теме
а через расширение это можно сделать?
4. unknown181538 158 03.11.22 21:46 Сейчас в теме
(3)не могу точно сказать. Боюсь, что право доступа, которое нужно отключить есть в массе типовых ролей. Как вариант, типовые роли вообще не использовать, а только свою, добавленную . Если пользователь "простой", то, наверное, это осуществимо. В целом - извращение.
Па. Ваш вопрос задан в комментарии выше
5. user1714790 04.11.24 00:35 Сейчас в теме
На сегодня в типовых не правленных конфах снятие флага с "сохранения д.п." не работает.
Правка интерфейса по шестерёнке не блокируется.
6. unknown181538 158 05.12.24 02:18 Сейчас в теме
(5) Не понятно. Статья, в целом, не о неправленных конфах. Снять галочку нужно во всех ролях доступа в конфигураторе. Делалось это давно, конечно, не на современных типовых.
Если же теперь штатные роли этой галочки уже не содержат, то... быть может платформа стала отрабатывать по-другому.
Оставьте свое сообщение