Версия для печати темы (https://pro1c.org.ua/index.php?s=3773bfc07bbd1365e349d397d43b6a02&showtopic=40734)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Программное управление справочниками и документами в режиме "ТолькоПросмотр"

Автор: Constantus 03.10.17, 11:27

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Есть такая хотелка у начальника, чтобы запретить или разрешить пользователям иметь возможность редактирования справочников и документов, или оставить в режиме "ТолькоПросмотр"...

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

Мелькнула такая мысль: создать некий справочник (или регистр), где будут реквизиты:
Пользователь;
Документ/Справочник ("СправочникМенеджер")
Булево (ТолькоПросмотр)

Далее, для участвующих в процессе блокировке спр/док на событие "При открытии" ставится некая процедура, которая обращается к справочнику Блокировок и считывает режим просмотра, типа, если Булево=Истина, то "ТолькоПросмотр"...

Если ПроверкаНаПросмотр(ТекущийПользователь, ТекущийДокумент) Тогда
ТолькоПросмотр = Истина;
КонецЕсли;

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

Подскажите правильную идею, а то в голову какой-то ... лезет

Автор: Flexy 03.10.17, 11:40

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
       Отказ = Не ОбщийМодульПроверкаДоступа.ПроверитьДоступ(ТекущийПользователь, ТекущийДокумент);
           // ТолькоПросмотр = ОбщийМодульПроверкаДоступа.ПроверитьДоступ(ТекущийПользователь, ТекущийДокумент);
КонецПроцедцры

...

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

      Возврат РазрешенДоступ;

КонецФункции

Автор: Constantus 03.10.17, 15:08

Столкнулся с такой проблемой...

При использовании

Сообщить(ЭлементыФормы.Список.ТипЗначения);


получил ответ:

Документ список: Реализация товаров и услуг

А как получить тип значение в виде:

РеализацияТоваровИУслуг

Автор: Flexy 03.10.17, 15:26

Constantus @ Сегодня, 15:08 * ,
Док.Метаданные().Имя

Автор: Dimtok1985 04.10.17, 18:26

Constantus @ Вчера, 12:27 * ,
А чего не хочется лезть в роли? Создаете роль " запретРедактированияСпрХ" далее назначаете роль пользователям которім нужно ограничить роли. Далее создаете подписку на событие "ПередЗаписью" или перед открытием формы проверяете если роль доступна - отказ. Конечно если сколько пользователей столько и ролей тогда проблематично.

 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 1
 

Автор: logist 05.10.17, 3:19

Цитата(Dimtok1985 @ 04.10.17, 19:26) *
А чего не хочется лезть в роли?

Цитата(Dimtok1985 @ 04.10.17, 19:26) *
Конечно если сколько пользователей столько и ролей тогда проблематично.

32542460.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua