Имя: Пароль:
1C
1С v8
Запретить пользователю самостоятельно настраивать форму
0 25-11
 
03.03.20
18:14
Подскажите, существует ли возможность запретить пользователю самостоятельно настраивать форму элемента или списка?
Скажем  админ взял, да и скрыл от какого-то условно-опасного "дурака" какие-то изначально доступные ему кнопки. И он их уже не сможет вернуть самостоятельно. Или это полностью противоречит логике управляемого интерфейса?
1 pechkin
 
03.03.20
18:16
правами это не решишь, но запретить настроку формы можно
2 Фрэнки
 
03.03.20
18:17
Такое подозрение, что даже в типовой попадались на глаза некоторые формы, в которых выключена возможность настройки формы.
3 Фрэнки
 
03.03.20
18:18
(0) а что за форма, если не секрет? :-)
4 25-11
 
03.03.20
18:20
(1) (2) А какие имеются возможности?
Наверняка можно кодом в расширении поменять видимость по определённому условию, например "пользователь = Не такой как все"
5 Фрэнки
 
03.03.20
18:23
(4) Расширением ты можешь ему взамен одной формы вообще другую открыть.
6 25-11
 
03.03.20
18:24
(3) Да не суть, это и конфигурация-то весьма специфическая. Обдумываются разные возможности запрета выполнения определённого действия, связанного с перезаписью. Всем можно, а Феде - нельзя. Хотя по-другому - тоже можно, т.е. правами на объекты не разруливается.
7 25-11
 
03.03.20
18:26
(5) По-видимому, так будет проще всего. Хотя вдруг где-то имеется неизвестная мне опция "запретить пользователю настройку форм"?
8 pechkin
 
03.03.20
18:26
(4) так можно
9 Фрэнки
 
03.03.20
18:29
(6) Ну вот чем Расширение и является приятным механизмом, что это аналог для хуков или перезагрузки методов для классов из С++

Т.е. чем менять базовый набор методов из родительского объекта, наследуем в расширение то, что нам нужно и перекроим по особенному, под текущие условия.
Когда масштабы таких изменений укладываются в разумные рамки, то это очень удобно
10 Фрэнки
 
03.03.20
18:31
(6) А всем можно, но Феде нельзя. Я при создании на сервере такого Федю отслеживаю в расширении и часто всю форму Только на просмотр или отдельные элементы Только на просмотр.
11 Фрэнки
 
03.03.20
18:33
Списочек таких уникальных юзеров и уникальные разрешения для них в регистре сведений хранить можно в том же самом расширении.
12 Fragster
 
гуру
03.03.20
18:35
так права же и рольдоступна, если это не объект метаданных (команда, или еще что-то), а кнопка.
13 Кодер
 
03.03.20
18:36
ПриНачалеРаботысистемы()
Если Федя() Тогда
НачатьТранзакцию();
КонецЕсли;

ПриЗавершенииРаботысистемы()
Если Федя() Тогда
ОтменитьТранзакцию();
КонецЕсли;
14 Фрэнки
 
03.03.20
18:37
(13) :-)
15 25-11
 
03.03.20
19:34
(13) Да, классный способ, любой Федя (имя нарицательное, прощу прощения у тех кого так зовут, ничего личного) обезврежен.
16 Fragster
 
гуру
03.03.20
22:20
(15) жалко, что не работает
17 Кодер
 
04.03.20
09:34
(16) Ты всё-таки попробовал? У меня давно не было таких пользователей, всё жду, кто сделает.
18 sitex
 
naïve
04.03.20
09:38
(0) Решение тут скорее всего на административном уровне решать нужно , и дураков в базы данных не пускать.
19 bolero
 
04.03.20
10:05
(18) тогда не дуракам всю работу надо будет делать, а им денег платить надо больше
20 25-11
 
04.03.20
10:30
(18) На первом этапе примерно так и сделали административно, "по-быстрому". Кнопку скрыли и строго-настрого сказали, чтобы сам форму не менял! Да он и не полезет, конечно.
21 Мимохожий Однако
 
04.03.20
10:41
(18) Согласен. Обучение эффективнее запретов.ИМХО.
22 Cyberhawk
 
04.03.20
10:48
(20) Скрытие кнопки не помогает что ли?
23 Фрэнки
 
04.03.20
10:56
(21) Обучение чревато тем, что обученные резво делают ноги. Амбиции у них появляются.
24 bolero
 
04.03.20
11:07
(23) глаголишь!
25 Fragster
 
гуру
04.03.20
11:08
(17) при возвращении с сервера все транзакции заканчиваются (откатываются или фиксируются).
26 pechkin
 
04.03.20
11:09
если нужно скрывать - то нужно скрывать кодом
27 bolero
 
04.03.20
11:09
(21) в моем мнении эффективнее таки программные запреты, т.к. обучаешь бездушную машину и один раз

а человеков обучать - в одно ухо влетело, через неделю вылетело, плюс даже обученные и проверенные по запарке могут натворить чего угодно
а в конце один пень кожаный мешок увольняется и приходит новый, с нулевым уровнем этих бесполезных знаний
28 Franchiser
 
гуру
04.03.20
11:10
Пусть настраивает форму, убирай ещё и доступность
29 Фрэнки
 
04.03.20
11:10
(25) это в теории. А на практике осознаешь, чем этот код повернется? Если все-таки в базу Федя зайдет?
30 Cyberhawk
 
04.03.20
11:30
(26) А кодом как?
31 pechkin
 
04.03.20
11:33
.Видимость = Ложь
32 sitex
 
naïve
04.03.20
13:23
(27) Если есть возможность безболезненно это сделать тогда спору нет "кодом", и я с этим полностью согласен. Но когда у "дураков" есть полный доступ, это как спасет?! Только административно. Других действенных способов нет.
33 bolero
 
04.03.20
15:10
(32) я своим с полным доступом в потенциально опасных местах тыкаю заглушки:

Если Петя() Тогда работаем() Иначе ой()

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

см например УТ11 сегменты клиентов кто использует в ручном режиме?
34 Fragster
 
гуру
04.03.20
15:45
(29) ошибкой при выходе
35 pechkin
 
04.03.20
15:47
(32) нужно делать полный доступ и суперполный
36 Фрэнки
 
04.03.20
15:48
(34) Я так думаю, что "Федя" со своей транзакцией поставит блокировку на изменения очень многих объектов. Даже если что-то и будет работать, то замедлится очень сильно.
37 Fragster
 
гуру
04.03.20
15:53
(36) нет
38 DiMel_77
 
04.03.20
15:58
Может я неправильно понимаю вопрос, но скрытие команд и кнопок делается пользовательской видимостью по ролям. Зачем программно что то менять?
Если у пользователя отсутствует роль дающее право на видимость этой кнопки (это упрощенно), то он ни как не сможет её изменением формы добавить...
39 Fragster
 
гуру
04.03.20
16:00
(38) пользовательская видимость - это то, что по умолчанию скрыто будет, но можно вернуть через настройки формы. вообще, назачем фирма 1с сделала именно так - я не знаю.
40 Fish
 
04.03.20
16:02
(39) " но можно вернуть через настройки формы." - Можно вернуть, если просто отключить её. А если по ролям видимость настроить - то, емнип, не вернёшь, если прав нет.
41 Fragster
 
гуру
04.03.20
16:03
хотя, конечно, есть такая галочка https://i.imgur.com/UJlsZgC.png
или видимость, установленная через Элементы.Видимость
но правильно проверять при выполнении действия, а не делать бумажные заборчики из видимостей.
42 pechkin
 
04.03.20
16:15
(40) видимость по ролям сама 1с не рекомендует такой механизм
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший