|
v7: Как отследить отмену проведения документа в 1С 7.7 ? | ☑ | ||
---|---|---|---|---|
0
JustBeFree
04.10.12
✎
00:52
|
Чот я подзабыл уже 7.7 и не могу решить такой вопрос.
Пользователь с определённым набором прав должен иметь возможность пометить документ на удаление с последующим запретом снять пометку, но не должен иметь возможность сделать его непроведённым. В модуле документа доступно событие ОбработкаУдаленияПроведения(). Но как в нем отследить по какой причине отменяется проведение: при пометке на удаление, или же при отмене проведения ? Исходный код что-то типа: Права = НазваниеНабораПрав(); Если Права="п12345" Тогда //здесь нужно учесть док распроводится или уст-ся пометка удаления. Предупреждение("У Вас отсутствуют права на отмену проведения документа !", 5); СтатусВозврата(0); Возврат; КонецЕсли; Заранее спасибо за идеи. |
|||
1
NS
04.10.12
✎
00:58
|
кнопку на форму журнала.
|
|||
2
NS
04.10.12
✎
00:58
|
Либо в меню "действия" добавить.
|
|||
3
zladenuw
04.10.12
✎
01:00
|
(1,2) только так ?
|
|||
4
JustBeFree
04.10.12
✎
01:09
|
(1,2) Да, но распровести или пометить на удаление можно и стандартными средствами - из контекстного меню в журнале документов эти пункты не удалишь и обработку кнопки Del тоже не запретишь.
|
|||
5
NS
04.10.12
✎
01:12
|
А в каком порядкее при пометке вызываются предопределенные процедуры?
|
|||
6
viktor_vv
04.10.12
✎
01:13
|
В глобальном модуле есть еще предопределенная ПриУдаленииДокумента(<УдалДокум>,<Режим>)
. |
|||
7
viktor_vv
04.10.12
✎
01:13
|
Только она пожалуй вызывается после ОбработкиУдаления().
|
|||
8
NS
04.10.12
✎
01:13
|
(6) В каком порядке они вызываются?
|
|||
9
NS
04.10.12
✎
01:14
|
Есть подозрение что до. Тогда просто если док проведен, то выставляешь глобальный флаг разрешающий отмену проведения. И делаешь сделатьнепроведенным()
|
|||
10
NS
04.10.12
✎
01:16
|
Процедура ПриУдаленииДокумента(док,Реж)
Если док.проведен()=1 тогда глРазрешитьделатьнепроведенным=1; док.сделатьнепроведенным(); глРазрешитьделатьнепроведенным=1; КонецЕсли; Конецпроцедуры ... это в глобальнике, |
|||
11
NS
04.10.12
✎
01:16
|
Процедура ПриУдаленииДокумента(док,Реж)
Если док.проведен()=1 тогда глРазрешитьделатьнепроведенным=1; док.сделатьнепроведенным(); глРазрешитьделатьнепроведенным=0; КонецЕсли; Конецпроцедуры |
|||
12
JustBeFree
04.10.12
✎
01:17
|
(10) Я все понял ! Спасибо !
|
|||
13
viktor_vv
04.10.12
✎
01:19
|
(10) Может быть, не проверял. В принципе может в таком варианте хватит и
СтатусВозврата(0); Возврат ; |
|||
14
JustBeFree
04.10.12
✎
01:22
|
(10,11) Все норм - работает.
Порядок следования событий верный: сперва ПриУдаленииДокумента(), потом ОбработкаУдаленияПроведения() Данке шён. |
|||
15
varelchik
04.10.12
✎
09:19
|
Мда народ....
А про процедуру ПриОтменеПроведенияДокумента() забыли? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |