Имя: Пароль:
1C
1С v8
Как запретить удалить документ?
0 Zend
 
10.01.13
20:15
Требуется запретить удалить документ, в котором скажем заполнен определённый реквизит.
Как это можно сделать, куда копать? Какое ни будь событие типа ПриУдалениеДокуента()
1 Fragster
 
гуру
10.01.13
20:17
ДокументОбъект.<Имя документа>.ПередУдалением (DocumentObject.<Имя документа>.BeforeDelete)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ПередУдалением (BeforeDelete)
Синтаксис:

ПередУдалением(<Отказ>)
Параметры:

<Отказ>

Тип: Булево.
Признак удаления документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то удаление документа выполнено не будет.
Значение по умолчанию: Ложь
Описание:

Возникает в транзакции удаления перед непосредственным удалением объекта из базы данных.
2 Zend
 
10.01.13
20:33
(1) Спасибо!
3 Zend
 
10.01.13
21:39
Проблема вот какая возникла.
Если поставить пометку удаления, и потом удалять обработкой, то обработка отказывается удалять остальные докумунты если помечен документ который не нужно удалять
4 Живой Ископаемый
 
10.01.13
21:43
а проблема какая возникла?
5 Zend
 
10.01.13
21:45
(4) ))) Ну так это и есть проблема, как решить?
Нужно что бы когда обработка удаляла то, что сможет удалить, а то что не сможет удалить - выводила бы ошибку.
6 Живой Ископаемый
 
10.01.13
22:26
ну раз нужно, то нужно это сделать. когда начнешь делать, и не получится, мы подскажем в какой строчке кода ты налажал.
7 Займись делом
 
10.01.13
22:45
(0) В чём смысл именно запрета удаления? Может быть стоит запретить пометку удаления?
8 Zend
 
10.01.13
22:52
(7) Можно и так, как это сделать?
9 Живой Ископаемый
 
10.01.13
22:54
так ведь в (1) написано!
10 Zend
 
10.01.13
23:02
(9) Что написано?
В модуле документа создаю процедуру

Процедура ПередУдалением(Отказ)
Если Реквизит <> "блабла" Тогда
       Отказ = Истина;
   КонецЕсли;
КонецПроцедуры

Пометку удаления поставить можно. Но удалить документ нельзя. Но когда запускаю обработку по удалению помеченных документов, то она не удаляет документы, которые помечены и которые можно удалить.
11 Займись делом
 
10.01.13
23:03
(8) В модуле объекта процедуры ПередЗаписью и ПриЗаписи. Запоминать значение пометки удаления в базе перед записью, смотреть значение пометки удаления после записи. Если сменилось с Ложь на Истина и установлен реквизит - устанавливать Отказ в Истина.
12 Zend
 
10.01.13
23:18
(11) Спасибо, работает.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший