Имя: Пароль:
1C
1С v8
Комментарий при удалении документа. Как реализовать?
0 Smit1C
 
17.01.21
18:49
Задача: при установке пометки удаления документа (в СПИСКЕ документов) необходимо выводить окно пользователя , где он должен указать причину удаления.
Если причину не указал, то пометка удаления не устанавливается.
Как это лучше реализовать на управляемых формах?..
1 Cyberhawk
 
17.01.21
18:50
Все списки, где можно устанавливать пометку, вряд ли отловишь
2 Smit1C
 
17.01.21
18:52
(1) Хотя бы основную ФормуСписка
3 Cthulhu
 
17.01.21
20:52
подписка?
4 RomanYS
 
17.01.21
21:01
(3) и как с сервера окно пользователю открыть?
5 Shadawn
 
17.01.21
21:22
Правильный ответ - в событии "ПередЗаписью" блокируешь установку пометки удаления, если "НЕ ЭтотОбъект.ДополнительныеСвойства.Свойство("КорректноеУдаление")". В форме списка убираешь стандартную команду "Пометить на удаление" и делаешь свою, которая асинхронно показывает диалоговое окно, которое при успешном вводе делает
Объект.ДополнительныеСвойства.Вставить("КорректноеУдаление", Истина);
Ну и само удаление.
6 Толич
 
17.01.21
21:28
Подписка передЗаписью +
ПодключитьОбработчикОжидания в списке и форме объекта +
танцы с бубнами с отложенным выполнением подписки +
Регистр состояний объектов
7 Cthulhu
 
17.01.21
21:33
(6)
ну или тупо в рс запись с действием "далить" по документу добавлять и по обработке ожидания запускать процедуру, актуализирующую этот рс, вызывать... чтобы не мурыжиться с подписками и фоновыми...
8 Cthulhu
 
17.01.21
21:33
(и чтобы под тем же юзером отрабатывать все действия)
9 Толич
 
17.01.21
21:36
(7) Без обработчика ожидания не представляю как это сделать
10 Толич
 
17.01.21
21:38
(9) + Сорри. Без подписки не представляю как это красиво сделать.
11 PR
 
17.01.21
21:51
Задача не такая маленькая, как кажется, нужно учесть несколько моментов
Но как решать, в принципе понятно, общая идея похожа на (5)
Нужно:
— Запретить запись, если помечено на удаление и в документе (или отдельном регистре сведений) не заполнена причина
— В форме списка стандартную кнопку скрыть, свою добавить
— По своей кнопке, если не помечено на удаление, то запрашивается причина в диалоге, после ввода вызывается пометка на удаление, если помечено, то просто вызывается снятие пометки на удаление
12 PR
 
17.01.21
21:57
+(11) Тю, в динамическом списке же вообще есть событие на клиенте ПередУдалением
В итоге в нем устанавливаем отказ, показываем асинхронное окно с запросом причины и, если все хоккей, то после ввода причины помечаем на удаление
Если же пометка снимается, то просто ничего из этого не делаем
Все это, ессно, без своей кнопки пометки на удаление
13 Smit1C
 
17.01.21
22:06
(12) ПередУдалением - Вызывается перед удалением строки или группы строк. Фактически кол-во строк не меняется при ПОМЕТКЕ на удаление.
14 PR
 
17.01.21
22:25
(13) И?
15 RomanYS
 
17.01.21
22:31
(14) И (12) не работает
16 PR
 
17.01.21
22:38
(15) Что именно не работает?
Мозг?
В чем конкретно засада-то?
17 RomanYS
 
17.01.21
22:51
(16) Событие ПередУдалением не вызывается, очевидно же
18 Smit1C
 
17.01.21
22:53
(16)

&НаКлиенте
Процедура СписокПередУдалением(Элемент, Отказ)
    Сообщить("1");
КонецПроцедуры

не выводится и отладчик туда не заходит
19 PR
 
17.01.21
22:53
(17) А, понял
Ну да, это же не про пометку удаления
Тогда (11)
20 Ненавижу 1С
 
гуру
17.01.21
23:13
и потом тоже самое делаешь и в других списках:
например форме выбора, но самое интересное это журналы (на самом деле формы обработок, которые на регистрах сведений)
21 Cthulhu
 
17.01.21
23:26
AdBlock убивает бесплатный контент. 1Сергей