Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Комментарий при удалении документа. Как реализовать?

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.