Имя: Пароль:
1C
1С v8
Контроль ссылок при удалении объектов. Как показать отчёт со ссылками в подписке ПередУдалением?
0 Starsailor
 
22.03.21
11:55
Есть подписка на событие перед удалением, в которой я делаю свой контроль ссылочной целостности и если найдены препятствующие к удалению объекты, то хочу их вывести в табличном документе. Проблема в том что метод показать() табличного документа клиентский, а подписка - серверная. Есть идеи как все же это сделать?
1 Kassern
 
22.03.21
11:58
ТабДок на форму запихни
2 acht
 
22.03.21
11:59
(0) >  то хочу
Присылай по почте
3 Светлый путь
 
22.03.21
12:09
(0) Писать всю информацию в регистр сведений, и потом выбирать оттуда запросом в отчёте.
Если удаление выполнено успешно, чистить все "старые" записи в регистре сведений, касающиеся этого объекта.
4 Starsailor
 
22.03.21
12:16
(1) на какую форму? В подписке на событие передудалением формы нет
5 Starsailor
 
22.03.21
12:18
(2) не очень удобно, письмо придет с запазданием, да и не открыть из письма препятствующий объект
6 acht
 
22.03.21
12:18
(3) При отказе от удаления откатится вся транзакция записи. Догадайся, что будет с твоими записями в регистре сведений. 1Сник он, ага.
7 hhhh
 
22.03.21
12:24
(5) выкинь подписку, делай в расширении
8 Галахад
 
гуру
22.03.21
12:27
А чего текстом не вывести, по старинке, в Сообщить().
9 Волшебник
 
22.03.21
12:28
(0) контроль ссылочной целостности надо проводить в момент пометки удаления
10 Светлый путь
 
22.03.21
12:40
(6) Да, логично... Если транзакция откатится, записи регистра в базу не попадут. Для этого случая не подходит.
11 Starsailor
 
22.03.21
12:59
(9) тогда после пометки на удаление появятся новые ссылки, да и задача стоит не пометить, а удалить
12 Starsailor
 
22.03.21
13:01
(8) из сообщения препятствующий объект не открыть
13 Starsailor
 
22.03.21
13:02
(7) не совсем понятно как это мне поможет... И о каком расширении идёт речь
14 Волшебник
 
22.03.21
13:05
(11) Удалять надо специальной обработкой, которая сначала ищет ссылки, а потом удаляет.
15 zladenuw
 
22.03.21
13:06
(0) новое событие клиента, которое вызывает фоновое задание и возвращает результат в родительский сеанс. но при этом ты выводишь информацию. что идет проверка. в конечном итоге открываешь свой таб док или не открываешь его
16 mistеr
 
22.03.21
13:10
(9) Что за бред? Смысл пометки именно в том, чтобы ее можно было сделать без контроля.

(14) А с этим согласен.
17 Kassern
 
22.03.21
13:12
(0) что мешает это делать не в подписке, а перед удалением? тогда без проблем вернешь отказ и выведешь на форму связанные объекты.
18 mistеr
 
22.03.21
13:12
(12) Ты уже сам понял, что для решения задачи нужен UI, а формы у тебя нет. Сделай следующий шаг и создай форму.
19 Kassern
 
22.03.21
13:13
(18) можно конечно сервер взаимодействия присобачить, но это такое себе решение для данной задачи...
20 arsik
 
гуру
22.03.21
13:19
(19) Он для этого и нужен.
21 mistеr
 
22.03.21
13:25
(20) Для показа табдоков?
22 arsik
 
гуру
22.03.21
13:45
(21) Для вызова клиента с сервера
23 Kassern
 
22.03.21
13:47
(22) это понятно, но просто не всегда целесообразно покупать сервер взаимодействия, когда можно решить задачу куда проще. Это как покупать истребитель, чтобы на нем гонять в магазин за хлебом.
24 Starsailor
 
22.03.21
14:08
(17) подписка хороша тем м что к ней удобно новые объекты подключать. Речь о событии передудалением таблицы формы? А если удаление из формы самого объекта?
25 Starsailor
 
22.03.21
14:11
(18) создать форму не проблема, проблема ее показать пользователю
26 mistеr
 
22.03.21
14:17
(25) Не вижу проблемы. В подписке делаешь отказ, через Сообщить() сообщаешь "Для удаления используйте обработку ХХХ".
27 hhhh
 
22.03.21
14:24
(25) так есть же форма. Откуда это удалить вызывается?
28 Kassern
 
22.03.21
14:24
(24) Если событие из формы объекта, то это событие ты же с клиента запускаешь, обрабатываешь на сервере. Возвращай в результате структуру в которой будет твой табдок и далее выводи его пользователю. Если табдока нет в результате, значит все хорошо и отрабатываешь дальше.
29 Starsailor
 
22.03.21
15:03
(27) (28) я так понимаю, предложение уйти от подписки на событие и сделать общую команду, в результате появится клиентская часть, где можно будет показать этот табдок, раскидать команду на формы откуда это удаление возможно. Подключение новых объектов усложнится, но задачу решает
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший