Имя: Пароль:
1C
 
Как запретить открытие формы всех документов по определенной организации в расширении?
0 Гений 1С
 
гуру
18.10.22
13:54
Есть подписка на событие получения формы, но там нет отказа.
Есть процедуры БСП, вызываемые при открытии, например КонтекстныеНовости_ПриОткрытии, но там тоже не пробрасывается отказ.
Я пробую вызывать Форма.Закрыть после КонтекстныеНовости_ПриОткрытии.
Как-то еще можно или это всё?
1 vde69
 
18.10.22
13:56
вызватьисключение "доступ запрещен"
2 PR
 
18.10.22
13:56
Вы прослушали очередной выпуск передачи "Из жизни говнокодеров"
3 Сергиус
 
18.10.22
13:59
(0)Через подписку на событие вряд ли.
4 Гений 1С
 
гуру
18.10.22
14:07
(1) ну в принцие в КонтекстныеНовости_ПриОткрытии если форму закрыть, то норм.
(2) как говорил товарищ сталин, каждая трагедия имеет конкретное ФИО. Так и тут - копрокод связан с отсутствием глобальных подписок ну или хотя бы глобальных функций БСП для форм. Раньше, кстати, такие глобальные события были, но их смыли в утиль, а зря.
5 PR
 
18.10.22
14:09
(4) Начнем с того, что запретить открывать формы документов по определенной организации — это пиздец головного мозга
6 Сергиус
 
18.10.22
14:13
+(5)Тут скорее РЛСом надо решать.
7 Fish
 
18.10.22
14:14
(4) А если ты открыл форму документа по разрешённой организации, и поменял организацию на запрещённую, что тогда?
8 PR
 
18.10.22
14:16
(7) Ты плохой, плохой, обидел Сирожу!
9 Мультук
 
гуру
18.10.22
14:16
(6)

Сейчас будет 101% верный аргумент, что в данной ситуации РЛС-невозможен и даже вреден.
И главное "так хочет заказчик"



P.S.
(1)
+1 к вызову исключения
10 Фрэнки
 
18.10.22
14:26
а всем лишь бы гениальный срач устроить ни о чем.
11 PR
 
18.10.22
14:28
(10) Ты т пропустил
12 Фрэнки
 
18.10.22
14:46
Если в конфиге есть общий модуль
МодификацияКонфигурацииПереопределяемый
то в него прилетают вызовы ПриСозданииНаСервере

Это почти из всех форм типовых конфиг, но является эта ххх просто типовой в какой-то конфигурации или это механизм БСП - я не проверял.
Зачем носиться с БСП, как дурень с писаной торбой... до этой ветки тоже не задумывался.
13 Новый1сник2
 
18.10.22
14:54
(0) конфа какая ? в бух можно ограничить доступные организации пользователю. да и в др типовых
14 Фрэнки
 
18.10.22
15:13
(13) в бух это сделано через механизм RLS
15 Гений 1С
 
гуру
18.10.22
15:17
(7) записать не даст, у меня подписка контролирует
(9) да, RLS тут не в тему.
(13) БП3, там не нужно ограничивать.
16 vde69
 
18.10.22
15:19
вообще у меня есть готовое решение для сабжа, только не на расширении а в отдельной подсистеме, там програмно модифицируются данные в регистре ТаблицыГруппДоступа

все остальное штатное....
17 Гений 1С
 
гуру
18.10.22
15:29
(16) спасибо, не люблю я РЛС
18 vde69
 
18.10.22
15:36
(17) ты просто не умеешь его готовить....

сейчас без RLS сложно представить хоть мало мальско серьезную автоматизацию.
19 Гений 1С
 
гуру
18.10.22
15:46
(18) в данной задаче не нужно RLS, я тебе как 1сник с 20-летним стажем говорю.
20 НафНаф
 
18.10.22
19:44
(19) как говнокодер ты хотел сказать
21 Гений 1С
 
гуру
18.10.22
21:41
(20) ты знатный мастер галлюцинировать на тему чужих мыслей
22 FIXXXL
 
18.10.22
21:43
(0) можешь похватать в расширение все нужные документы и в их модуле менеджера задействовать
&После
ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)

в параметрах найдешь ссылку, от нее получишь организацию
ну и если не проходит, покажи свою форму запрета
23 FIXXXL
 
18.10.22
21:45
(22) + сделай для этой бабуйни отдельное расширение, что бы потом выкинуть-отключить не жалко было :)
24 FIXXXL
 
18.10.22
21:51
ну и подписку посмотри
https://infostart.ru/1c/articles/149181/
25 FIXXXL
 
18.10.22
21:55
(24) +
Отказ зачем тебе? показывай свою общую формуОтказа
26 БигБаг
 
19.10.22
00:41
(0) В событии получения формы можно вернуть кривое название формы, и объект не будет открыт. Возвращаемое название формы можно назвать "Доступ запрещен", и тогда сообщение что-то вроде форма не найдена, доступ запрещен.
27 Гений 1С
 
гуру
19.10.22
07:43
(22) это слишком сложно, нет, спасибо.
(23) да, я сделал отдельное расширение.
(24) смотрел, не годится.
(25) там нельзя общую форму, только форму прикладного объекта, для которого вызывается форма.
(26) Я поступил проще - вызываю метод Закрыть и потом ПоказатьПредупреждение. Работает.
28 Гений 1С
 
гуру
19.10.22
07:43
В принципе, расширение сдал клиенту, как-нибудь выложу у себя на гении
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.