#0
by Sasha_1CK
Платформа 1С 8.2.16.368 Конфигурация Бухгалтерия 3.0.21.14 Задача в справочнике "Пользователи" добавлен реквизит - доступ к справочнику "Мой справочник". В справочнике "МойСправочник" необходимо запретить установку пометки удаления на элемент списка справочника. Элементы справочника редактируются в форме списка. Процедура модуля формы списка &НаКлиенте тупо не отрабатывает. Процедура в модуле объекта &НаСервере Процедура ПередЗаписью(Отказ) В принципе приводит к желаемому результату, но выглядит не кошерно. Во-первых программа предлагает вопрос "пометить на удаление? да нет" Во-вторых после него появляется предупреждение с ошибкой о невозможности записи элемента. Есть ли более аккуратные способы программно предотвратить установку пометки удаления? в идеале до появления вопроса вывести пользователю предупреждение об отсутствии прав и отменить событие. З.Ы. Настройку прав в конфигураторе просьба не предлагать. Это самый крайний случай.
#4
by Maxus43
>>Это самый крайний случай Это самый нормальный вариант. программные затычки для этой цели - и есть быдлокод
#5
by Sasha_1CK
ну это для того что бы и снять было нельзя. Но кошерности это не добавляет. Все равно вопрос выводиться и все равно процедура сообщает об ошибке записи. я именно это хочу обойти. Собственно есть ли такая возможность или нет смысла биться головой об стену.
#8
by Sasha_1CK
а как выглядит нормальный вариант для ситуации Пользователь 1 - имеет право редактировать номенклатуру. Но не имеет права редактировать контрагентов. Пользователь 2 имеет право редактировать контрагентов, но не имеет права редактировать номенклатуру. Пользователь 3 имеет право редактировать и контрагентов и номенклатуру.
#10
by zladenuw
ну я так в нетленке делал. там рлс нету и не хочу. так как конфу переписываем. пока не до них :)
#11
by Maxus43
у тебя затычка на запрет интерактивной пометки на удаления. Это легко решается галкой в правах... при чем тут данный пример?
#13
by NcSteel
Достаточно частая задача, когда права настраиваются не ролями, а настройками в справочниках.
#14
by Соло
а тупо найти где выводится "пометить на удаление?" и переписать тоже не предлагать или глобальный поиск не рулит?
#15
by Sasha_1CK
ну как бы запрет редактирования пользователю предполагает и запрет пометки элемента справочника на удаление. Понятно, что это решается правами - но в пределе это ведет к тому что для каждого пользователя формируется индивидуальный набор прав. И когда их набирается штук 30-40 их администрирование и обновление конфигурации становится слегка не тривиальной задачей. Есть еще кнопка del. уже. Есть такая сообщалка - но в из справочников не вызывается. Вызывается при сохранении настроек отчетов и из дополнительных отчетов и обработок
#16
by Maxus43
это платформенное задача да, но пример неудачный, про пометку на удаление, это платформенный вопрос и его имхо не обойти, если есть права
#18
by Sasha_1CK
А чем в данном случае РЛС то отличается? Я так же из ПередЗаписью Вызываю контроль прав. Или я чего то не догоняю?
#19
by Sasha_1CK
если в модуле объекта к процедуре ПередЗаписью поставить директиву "наКлиенте" - она тупо не отрабатывает.
#20
by Maxus43
да в принципе конечно ничем, если ещё и перед открытием будешь вызывать контроль прав и лочить форму от изменений. Но от вопроса "Пометить на удаление" - не уйти
#21
by Лефмихалыч
забери у всех ролей право интерактивной пометки удаления. Потом добавь роль, у которой только это право и есть. Реквизит свой выкинь к херам - он не нужен. Пользователям, которым хотел расставить реквизит, выдай новую роль с одним правом
#22
by Mitriy
в том-то и дело, что там вообще директивы компиляции не нужны... модуль объекта всегда на сервере...
#23
by Sasha_1CK
так "СписокПередНачаломДобавления" и "СписокПередНачаломИзменения" отрабатывают штатно и никаких проблем не вызывают. В принципе пользователь без галочки ничего сделать в справочнике не может. Формально задача решена - только в случае пометка на удаление - выглядит криво. И не было бы так обидно - если бы в форме списка не было события "ПередУдалением" которое тупо не работает. если бы все так просто - см и
#25
by Лефмихалыч
все именно и есть ТАК просто. Это называется проектирование профилей пользователей. А твой реквизит - быдлокод
#28
by Лефмихалыч
Добавить роли: 1. Редактирование номенклатуры 2. Редактирование контрагентов 3. Пометка удаления номенклатуры и контрагентов Определить (хоть на бумажке, хоть из ДО выдрать) профили: 1. Человек первого сорта - все три роли 2. Человек второго сорта - только первая роль 3. Человек третьего сорта - только вторая роль 4. Вообще не человек, а робот - только третья роль 5. ..... свой вариант, если есть И раздавать людям роли в соответствии с этими профилями. Если группы доступа из документооборота, например, выдрать или что-то подобное самому смастерить, то можно людям прямо непосредственно профили раздавать.
#29
by Sasha_1CK
Ага. Главное потом заказчика убедить этим профилям следовать. Потому что на практике все стремится к тому что фактически у каждого пользователя индивидуальный профиль. Создать индивидуальные профили можно - управлять ими примерно через год становится невозможно. Уже проходили.
#31
by zladenuw
зачем реквизит ? лучше уже РС с доп настройками и подписки на события. если влом РЛС использовать
#32
by Sasha_1CK
Как показывает практика - гораздо легче. По факту у заказчика есть только три профиля Главный бухгалтер, пользователь и только просмотр. Однако затем возникают потребности запретить конкретным пользователям доступ к конкретным объектам. Если бы у 1С были права - запретить чтение, запретить изменение, запретить удаление с приоритетом над разрешением и возможность раздать роль всем пользователям (как в файерволлах) было бы проще - создал роль "запрет изменения контрагентов" назначил всем, у нужных снял. Однако по факту получается - есть пользователи - у всех есть права к контрагентам. Потом через месяц выясняется, что некий пользователь накосячил, кто то попал на разборки и следует директива - запретить доступ всем пользователям к изменениям справочника контрагенты, кроме пупкина. Как это происходит в 1С - нужно у роли "пользователь" отключить доступ к контрагентам. Создать отдельную роль "доступ к контрагентам" дать ее Пупкину. И так раз 100. И все бы ничего, но через год-два понять к каким объектам имеет доступ роль "пользователь" тупо невозможно - потому что надо зайти в каждый объект по дереву роли и проверить наличие галочек.
#34
by zladenuw
посмотри реализацию типовых. у них доп права реализованы через РС и РЛС. ты можешь использовать РС и подписки на событие
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как из формы элемента справочника открыть другую форму этого же элемента?
- Запрет редактирования уже существующего элемента справочника
- v8: Запрет вывода на принтер (запрет печати)
- .Net: Программный запрет на переход в спящий режим КПК
- Как сделать запрет в 1с 7 запрет на удаление позиций на кассе
- Пометка удаления предопределенного элемента
- v7: запрет удаления документов после даты запрета редактирования
- Запрет удаления, распроведения
- Программный вызов сверки итогов Атол
- УТ11 Программный вызов дополнительного отчета
В этой группе 1С
- БП 2.0 Не закрывается Счет 68.04.2
- Вопрос по табличному документу. Как программно понять такое?
- 1с82 Обработка ячейки в табличном документе
- AddInNative : Неправильное значение параметра "ФИО". Недопустимый символ '.'
- КА: Если первоначальная стоимость ОС в НУ и БУ разная
- как осуществить перенос данных из конф. УТУ 2.3. в 3.0.
- Работа с деревом значений. Вопрос
- Отвалилась лицензия 1С после установки более новой версии техн. платформы
- Как это написать в 8.2: oDb = new ActiveXObject("LiteX.LiteConnection")
- Можно ли узнать остатки по регистру накопления на разные даты в одном запросе
- Розница 2.0 весы меркурий 301
- Сравнить ТЧ двух документов
- УПП. Последовательность Парт. учет (упр.) актуальна на 01.01.0001
- запрос в цикле
- Отметка о том что контрагент прекратил свою деятельность
- Создание письма в Outlook через 1С
- Регистр сведений ИсторияЗаписиОбъектов
- Право на добавление нового Контрагента.
- Выполнить процедуру модуля формы из внешней обработки. Нужен совет
- Ошибка с внешними источниками в 8.3.3