Имя: Пароль:
1C
1С v8
Событие ПередУдалением в УФ
,
0 SergeyGr
 
20.03.14
12:32
На УФ есть динамический список, сформированный запросом.

Событие "ПередУдаление" у него почему-то "не отлавливается".

Подскажите решение, плз !
1 banco
 
20.03.14
12:52
а что ты делаешь чтоб Событие "ПередУдаление" возникало?
2 SergeyGr
 
20.03.14
12:56
Del нажимаю.

Тут возникает вопрос "Пометить на удаление ?"
3 Rounder
 
20.03.14
13:12
(0) Опиши задачу
4 SergeyGr
 
20.03.14
13:23
У справочника есть форма элемента.
На этой УФ есть таблица, представляющая из себя динам.список, сформированный произвольным запросом. Этот запрос выбираем данные, не являющиеся реквизитами объекта (это список присоединенных файлов).

Если нажать DEL, то строка изчезает. Но некоторые файлы удалять не надо - вот и хотел в событии "ПередУдаление" делать проверку.

Но..неотрабатывает
5 Rounder
 
20.03.14
13:46
В модуле объекта справочника определяй. В процедуре ПередЗаписью().

Если Не ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда
        мТипИзменения = "Создание";
ИначеЕсли (ЭтотОбъект.Ссылка.ПометкаУдаления И Не ЭтотОбъект.ПометкаУдаления) Тогда
        мТипИзменения = "ОтменаУдаления";
ИначеЕсли Не ЭтотОбъект.Ссылка.ПометкаУдаления И ЭтотОбъект.ПометкаУдаления Тогда
        мТипИзменения = "Удаление";
ИначеЕсли ЭтотОбъект.Ссылка.ПометкаУдаления И ЭтотОбъект.ПометкаУдаления Тогда
        мТипИзменения = "ИзменениеПриПометке";
Иначе
        мТипИзменения = "Изменение";
КонецЕсли;

Мне нужно было знать тип изменения перед записью - получал его как выше описано. Выбери то что тебе нужно.
А дальше анализируй и если нельзя ставить пометку, то

Отказ = Истина;
Возврат;

Как-то так.
6 Rounder
 
20.03.14
13:47
Стоп - я не так понял задачу видимо.
7 SergeyGr
 
20.03.14
13:49
Не, мне нужно контролировать не сам объект, а "таблицу" на УФ
8 fvadim
 
20.03.14
13:50
(6) чорд! я уже написал тебе матюкательный ответ!
9 Rounder
 
20.03.14
13:50
(8) :)
10 Rounder
 
20.03.14
13:51
(7) Тогда может попробовать сделать свою кнопку для удаления. Но если ты говоришь, что не всегда срабатывает стандартное событие, то там не скинешь в Ложь стандартную обработку.
Хотя попробовать может стоит?
11 olegves
 
20.03.14
13:54
(2) лови событие объекта ПриЗаписи и там проверяй ПометкаУдаления
12 SergeyGr
 
20.03.14
13:55
Интересно, что "ПриИзменении", "Выбор", "ПриАктивизацииСтроки", "ПередНачаломДобавления"


(11) Пробовал. Нет обращения к этому событию.
13 Rounder
 
20.03.14
14:01
(12) ПередУдалением вообще не срабатывает? Или иногда да - иногда нет?
14 Ns33
 
20.03.14
14:06
(7) Как именно контролировать?
15 SergeyGr
 
20.03.14
14:07
(13) ПередУдаление - вообще не срабатывает

(14) Точка останова
16 Rounder
 
20.03.14
14:09
(15) Тогда удали обработчик события - и еще раз создай его. У меня несколько раз были подобные глюки.
17 Ns33
 
20.03.14
14:12
После установки/снятия удаления срабатывает обработчик ПриИзменении()
18 SergeyGr
 
20.03.14
14:12
(16) не сработало
19 SergeyGr
 
20.03.14
14:12
(17) Срабатывает
20 Ns33
 
20.03.14
14:15
(19) Этого недостаточно? Или надо ловить другой момент?
21 Rounder
 
20.03.14
14:16
(20) как я понял задачу - то некоторые строки после доп. анализа не нужно удалять, а при изменения разве не постфактум сработает?
22 SergeyGr
 
20.03.14
14:20
(21) точно, нужна проверка "А МОЖНО ЛИ УДАЛЯТЬ" и, в некоторых случая, не РАЗРЕШИТЬ
23 Fram
 
20.03.14
14:25
Запрети интерактивную пометку на удаление и повесь "свою кнопку" с проверками.
24 Rounder
 
20.03.14
14:25
(22) Пробуй делать свою кнопку/команду
25 SergeyGr
 
20.03.14
14:28
(23) Подскажи как, плз !

(24) Согласен
26 Fram
 
20.03.14
14:29
(25) что как? запретить?.. роли
или кнопку повесить?.. долго рассказывать
27 SergeyGr
 
20.03.14
14:31
Мне показалось, что на УФ это как-то без ролей можно  :-)
28 Fram
 
20.03.14
14:34
(27) Сам недавно столкнулся. Пришлось выкручиваться.
29 Fram
 
20.03.14
14:36
+(27) К сожалению, как должно быть по логике, отключение галочек в "Составе комманд" не все возможности пользователю убирает.
30 Rounder
 
20.03.14
14:39
(29) такое решается строкой в обработчике соотв. события
СтандартнаяОбработка = Ложь;

Но тут ситуация странная, действие срабатывает, а событие - нет.
31 Fram
 
20.03.14
14:40
(30) Какое такое?.. Не срабатывают события ПередУдалением и многие другие в динам списке.
32 Rounder
 
20.03.14
14:43
(31) с ТЧ перепутал.
33 Rounder
 
20.03.14
14:46
(31) в обычном динамическом списке (построенном на объекте) ПередЗаписью можно отловить действия как я в (5) писал.
А тут хез.
34 Fram
 
20.03.14
14:48
(33) ПередЗаписью это событие объекта. Дин. список тут не причем
35 Rounder
 
20.03.14
14:49
(34) я об этом и писал. О дин.списке построенном на основе объекта.
36 SergeyGr
 
20.03.14
14:49
(34) Может новые релизы платформы подработают.
37 Ns33
 
20.03.14
14:59
Тогда получается, что можно открыть объект не из динамического списка и пометить на удаление без всяких проверок?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан