Имя: Пароль:
1C
 
Как перехватить удаление элемента справочника
Ø
0 BombJack1
 
16.12.04
14:22
Уважаемые гуру!
1С7.7 -- Возникла необходимость перехватить пометку на удаление элемента справочника(либо снятие пометки на удаление). Но в 1С нет предопределенной процедуры для этого.
Следовательно вопрос: можно ли обойти это ограничение, если можно то как?
1 ValeraVV
 
16.12.04
14:24
Процедура ПриУдаленииЭлемента(<?>,)
КонецПроцедуры
Синтаксис:
ПриУдаленииЭлемента(<УдалЭлем>,<Режим>)
Назначение:
Предопределенная процедура при интерактивном удалении элемента справочника.
Параметры:
<УдалЭлем> - удаляемый элемент;
<Режим> - режим удаления: 1 - непосредственное удаление, 0 - пометка на удаление.
Замечание:
Данная процедура может располагаться только в глобальном программном модуле.
Подробнее см. в документации, глава 'Системные предопределенные процедуры'
2 Добрый
 
16.12.04
14:24
ПриУдаленииЭлемента
Предопределенная процедура при удалении элемента справочника и при отмене пометки на удаление.
Синтаксис:
ПриУдаленииЭлемента(<УдалЭлем>, <Режим>)
Англоязычный синоним:
OnDeleteItem
Параметры:
<УдалЭлем>
 Значение удаляемого элемента справочни­ка.
 
<Режим>
 Значение флага непосредственного удале­ния: 1 — непосредственное удаление; 0 — пометка на удаление.
 
Описание:
Вызов предопределенной процедуры ПриУдаленииЭлемента производится системой 1С:Предприятие неявно при интерактивном удалении элемента спра­вочника и в случае отмены пометки на удаление. В этом случае, условия вызо­ва можно узнать методом ПометкаУдаления элемента справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (напри­мер, если нарушается ссылочная целостность системы), то удаление элемента справочника не будет выполнено.
Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.
Пример:
Процедура ПриУдаленииЭлемента(Элем, Реж)
   Если НазваниеНабораПрав() = "Продавец" Тогда
      Если (Элем.Вид() = "Товар") И (Реж = 1) Тогда
         Предупреждение("У вас нет права удалять Товар!", 2);
         СтатусВозврата(0);
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры
3 ValeraVV
 
16.12.04
14:26
(2) А я раньше))))))
4 BombJack1
 
16.12.04
14:27
Огромное спасибо!
5 Добрый
 
16.12.04
14:29
(3) Да... Теперь ужо реакция не та, что раньше...;)
6 2Green
 
16.12.04
14:47
 (5) так ValeraVV небось <Ctrl+C>,<Ctrl+V>. А ты пока набил... ))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн