![]() |
![]() |
![]() |
|
Разрешение на изменение. Подскажите как лучше сделать. | ☑ | ||
---|---|---|---|---|
0
mzelensky
19.06.12
✎
15:25
|
Доброго всем!
Суть такая - есть заказ покупателя, в нем есть реквизит (галочка) "Особо важен". Смысл в том, что менеджер должен иметь возможность поставить эту галочку и провести документ. Как только документ с этой галочкой провелся - дальнейшее его изменение возможно только под полными правами (т.е. нельзя перепровести документ, снять с проведения, перезаполнить и т.д.). Проблема в том, что если делать эти операции через форму (открыть форму и попытаться что-то там сделать), то решается все довольно просто. Пишется в обработчике формы "При открытии" мОсобоВажный=ОсобоВажный; А в обработчике "ПередЗаписью" (обработка в модуле объекта): Если мОсобоВажный тогда Если НЕ РольДоступна("Перепроведение") тогда //НЕ РольДоступна("ПолныеПрава") и Отказ=истина; Сообщить("Заказ является 'Особо важным'. Изменить его можно только под полными правами"); КонецЕсли; КонецЕсли; Вроде все работает. Но если сделать перепроведение прям из журнала документов, то разумеется код не отрабатывает. Если поместить "мОсобоВажный=ОсобоВажный" в самый низ модуля объекта, то почему-то реквизит "ОсобоВажный" там всегда равен "ложь", хотя галочка стоит (такое ощущение, что данные еще не считаны). Как решить вопрос? |
|||
1
Нуф-Нуф
19.06.12
✎
15:26
|
обработка события при записи
|
|||
2
pumbaEO
19.06.12
✎
15:28
|
можно даже подпиской
|
|||
3
mzelensky
19.06.12
✎
15:28
|
(1) не хотелось создавать новую подписку из-за 5 строчек кода.
Почему в модуле объекта (при первом вхождении) реквизит получается не считанным? |
|||
4
golden-pack
19.06.12
✎
15:29
|
(0) подпиской + если конфа типовая - то сделать через доп. права
|
|||
5
golden-pack
19.06.12
✎
15:29
|
(3) лол
|
|||
6
Нуф-Нуф
19.06.12
✎
15:30
|
(3) связь подписки и количество строк кода? подписки для того и предназначены, чтобы не корячить код типовых
|
|||
7
mzelensky
19.06.12
✎
15:30
|
(4) без подписки не вариант?
|
|||
8
Галахад
гуру
19.06.12
✎
15:30
|
А нафиг нужен мОсобоВажный, если есть просто ОсобоВажный ?
|
|||
9
pumbaEO
19.06.12
✎
15:31
|
(6) часто ты видел, что бы Заказ менялся в типовой (гусары УТ11 молчать)
|
|||
10
mzelensky
19.06.12
✎
15:32
|
(6) у меня не типовая и корячить могу все что угодно - тут ограничений нет.
|
|||
11
mzelensky
19.06.12
✎
15:33
|
(8) смысл в том чтобы отловить изменение флага "ОсобоВажный".
Иначе манагер может просто зайти и снять его - а это должно быть запрещено. |
|||
12
Галахад
гуру
19.06.12
✎
15:35
|
(11) Не проще сравнивать текущий объект и объект из базы?
|
|||
13
mzelensky
19.06.12
✎
15:36
|
(6) так ,стоп...а о какой вообще подписке идет речь? ты говоришь про "обработка события при записи" ? - я это могу и в модуле сделать, но так не получится - читай (0)
|
|||
14
mzelensky
19.06.12
✎
15:36
|
(12) как?
|
|||
15
mzelensky
19.06.12
✎
15:37
|
(12) + если встать на документ в списке документов и нажать "отмена проведения" - что ты будешь сравнивать? А нужно чтобы если галочка стоит, то косяк - нельзя изменять.
|
|||
16
pumbaEO
19.06.12
✎
15:39
|
(15)
Если ЭтотОбъект.Ссылка.ОсобоВажный Тогда Отказ Истина КонецЕсли; Если ЭтотОбъект.ОсобоВажный <> ЭтотОбъект.Ссылка.ОсобоВажный Тогда //ПОМЕНЯЛИ КонецЕсли |
|||
17
mzelensky
19.06.12
✎
15:40
|
(16) вариант...ща попробую.
|
|||
18
Галахад
гуру
19.06.12
✎
15:41
|
(15) Ну, событие есть при отмене проведения. Там можно сравнить.
|
|||
19
mzelensky
19.06.12
✎
15:44
|
(16) шикарно отработало:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ЭтотОбъект.Ссылка.ОсобоВажный=истина тогда Если НЕ РольДоступна("Перепроведение") тогда //НЕ РольДоступна("ПолныеПрава") и Отказ=истина; Сообщить("Заказ является 'Особо важным'. Изменить его можно только под полными правами"); КонецЕсли; КонецЕсли; КонецПроцедуры Что-то я про ссылку и не подумал! Спасибо |
|||
20
pumbaEO
19.06.12
✎
15:49
|
(19) ай, ай ну нельзя же так "Сообщить()" использовать в модуле объекта, а на клиенте кто будет проверять, а внешнее соединение...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |