|
Перед изменением на форме: Данные были изменены | ☑ | ||
---|---|---|---|---|
0
depthzer0
29.12.14
✎
11:57
|
Всем привет!
Открыта форма объекта. При этом на сервере объект изменяется. Соответственно при попытке внесения изменения на форме появляется предупреждение: "Данные были изменены или удалены.... бла-бла-бла". Хочется это предупреждение обработать и выводить пользователю сообщение, ну и вообще отловить это событие. Теоретически можно повесить ПодключитьОбработчикОжидания и проверять не изменился ли объект, но хотелось бы как-то без этого обойтись. |
|||
1
ssh2QQ6
29.12.14
✎
12:06
|
(0) А почему не передавать изменения данных на клиента при завершении обработки на сервере?
|
|||
2
ssh2QQ6
29.12.14
✎
12:08
|
Вообще на сервере можно проверять, не заблокирован ли объект перед обработкой:
Из СП: Попытка НовДокумент.Заблокировать(); Исключение Предупреждение(НСтр("ru = 'Невозможно заблокировать документ.';" + " en = 'Can't lock the document.'")); КонецПопытки; |
|||
3
depthzer0
29.12.14
✎
12:10
|
(1) как?
|
|||
4
ssh2QQ6
29.12.14
✎
12:12
|
Подозреваю, что ЗначениеВРеквизитФормы
|
|||
5
depthzer0
29.12.14
✎
12:12
|
(2) сервер приоритетнее. он должен внести имзенения
|
|||
6
Бригада бронепоезда
29.12.14
✎
12:13
|
а зачем тереть стандартное предупреждение и заменять его своим сообщением? работа ради работы?
|
|||
7
depthzer0
29.12.14
✎
12:13
|
(4) это фоновое задание производит изменения.
|
|||
8
depthzer0
29.12.14
✎
12:13
|
(6) требование заказчика. ради единообразия.
|
|||
9
ssh2QQ6
29.12.14
✎
12:14
|
(7) тогда (6)
|
|||
10
DmitrO
29.12.14
✎
12:19
|
Когда так бывает, это чаще всего означает, что организация данных (структура ИБ) не соответствует бизнес процессам (правилам/порядку ввода данных пользователем).
|
|||
11
DmitrO
29.12.14
✎
12:23
|
(10)+ но конечно? некоторым заказчикам и исполнителям оно пофиг, что не соответствует, ведь главное "единообразие" какое-то..
|
|||
12
Бригада бронепоезда
29.12.14
✎
12:26
|
(11) единообразие - это стандартное предупреждение о том, что объект изменился.
Зачем изобретать свои стандарты и тратить на это уйму человекоресурсов, не понимаю.. |
|||
13
depthzer0
29.12.14
✎
12:31
|
так а на форме можно поймать попытку изменения значения любого из элементов?
|
|||
14
depthzer0
29.12.14
✎
12:34
|
(10) а как правильно сделать?
|
|||
15
DmitrO
29.12.14
✎
12:40
|
(14)по сути: фоновое задание не должно изменять объекты редактируемые интерактивно пользователями. И особенно с такой частотой, что это становится проблемой для ввода данных пользователями.
Если фоновое задание что-то и должно делать, то объект редактируемый пользователем надо делить; так, чтобы это не мешало вводу данных пользователями. |
|||
16
depthzer0
29.12.14
✎
12:49
|
(15) как делить? это не понятно
|
|||
17
DmitrO
29.12.14
✎
12:52
|
(16)чтобы предложить решение задачи надо услышать задачу.
|
|||
18
depthzer0
29.12.14
✎
12:54
|
(17) есть приоритетная база в которую вносятся конкретные изменения и есть второстепенная база, в которой при желании можно кое-что подправить. из приоритетной базы данные попадают во второстепенную и записываются. если записываемый документ был кем-то открыт во второстепенной, то пользователь с этим документом должен получить сообщение, что документ изменён.
|
|||
19
DmitrO
29.12.14
✎
13:23
|
(18)а есть понимание того, что после того как пользователь записал измененный документ, фоновое задание может его перезаписать своими данными?
|
|||
20
depthzer0
29.12.14
✎
13:50
|
(19) да. тогда ему смс придёт :)
|
|||
21
Бригада бронепоезда
29.12.14
✎
13:53
|
(20) типа вводил 25 наименований в табличную часть, а в следующую секунду все это затирается данными из ЦБ и смс такое :"извините, ваши данные были перезаписаны, пожалуйста, введите их заново"
|
|||
22
Бригада бронепоезда
29.12.14
✎
13:56
|
зы. тогда может не стоит перезаписывать док, пока он открыт пользователем?
поставить заглушку на внешнее соединение - если док открыт, то не изменять |
|||
23
depthzer0
29.12.14
✎
13:56
|
(22) хорошо.
а можно как-нибудь поймать для всей формы какое-нибудь событие перед изменением значения одного из элементов? |
|||
24
DmitrO
29.12.14
✎
14:23
|
(23)нет такого события
а вообще задача, конечно, у вас удивительная, кто это придумал? |
|||
25
depthzer0
29.12.14
✎
14:34
|
(24) знаешь всех придумщиков? :)
да понятно, что прям такого нет, может быть есть какой-то хитрый ход. вот я про него и спрашиваю |
|||
26
Serg_1960
29.12.14
✎
14:38
|
(24) типовая конфигурация, план обмена -"Полный"... и ваши пользователи будут иметь возможность наблюдать проблему ТС. РИБ-база - и из под ног пользователя в любой момент может быть выдернут коврик обменом данных.
|
|||
27
DmitrO
29.12.14
✎
14:46
|
(25)мне интересна должность, не конкретный человек
|
|||
28
Бригада бронепоезда
29.12.14
✎
14:50
|
(26) в 90% обмен РИБ выполняется в ночное время.
кроме того, входные и выходные данные распределенных баз не пересекаются, как правило. в точки выгружается приходные документы, доки по установке цен, в центральную загружаются документы продажи. |
|||
29
Serg_1960
29.12.14
✎
15:00
|
Счастливчики, у кого обмен только в ночное время и документы не "пересекаются" :)
Я обмен данными проводил чаще. Значительно чаще. Каждые семь минут :( И документы у меня "пересекаются" - производство в одном обособленном подразделении, а бухгалтерия - в другом. |
|||
30
depthzer0
29.12.14
✎
15:00
|
(27) (28) ребят, ну что вы в самом деле? )) ну тут тоже не весь док перезаписывается. вообще из другой базы другой документ приходит, если уже начинать вдаваться в детали, а в этом документе кое-что невидимое меняется. суть то не в том, а в том, что если чел начинает что то писать в комментарии, например, то у него выскакивает окно и он пугается, скорая-шмора, все дела. хочется сделать мягче реакцию. в сообщение выводить. а обработчик ожидания не хочется подключять. вот я и спрашиваю, может кто альтернативу подскажет.
|
|||
31
Бригада бронепоезда
29.12.14
✎
15:03
|
(30) альтернатив нет. нет обработчика в форме, который один на все изменения реквизитов.
|
|||
32
DmitrO
29.12.14
✎
15:23
|
(30)так я тебе об этом и пытался сказать в начале, если только комментарий пользователь пишет - надо выносить комментарий из объекта в регистр сведений, и редактировать его отдельно. Т.е. по идее данные разделять надо.
|
|||
33
DmitrO
29.12.14
✎
15:26
|
или вынести из объекта какраз вот это: " в этом документе кое-что невидимое меняется"..
|
|||
34
Serg_1960
29.12.14
✎
15:27
|
Если мне память не изменяет, то событие "у него выскакивает окно и он пугается"(тс) только тогда, когда пользователь пытается записать объект. Или я не прав?
|
|||
35
DmitrO
29.12.14
✎
15:29
|
(34)неа, не прав, сообщение будет сразу после редактирования реквизита связанного с данными или реквизита формы у которого стоит "Изменяет данные" либо у команды.
|
|||
36
Бригада бронепоезда
29.12.14
✎
15:32
|
вобщем не выдумывать волшебную таблетку, а взять и не полениться - у каждого элемента формы указать действие перед изменением - проверку изменения объекта на сервер. если изменен - отказ и вежливое предложение попить карвалолчика
|
|||
37
depthzer0
29.12.14
✎
15:34
|
(32) (33) хочется, чтобы в окне пользователя появлялось сообщение.
(34) не, начинает вводить в комментарий и сразу "Данные были изменены... то сё". если бы при записи - так и вопросов не было. (36) в том то и дело, что я не вижу такого события "ПередИзменением" ))) |
|||
38
DmitrO
29.12.14
✎
15:36
|
(34)но может быть и при записи:
- пользователь открыл документ; - вбил данные; - пока тянулся к кнопке Записать, фоновое задание задание изменило документ; - жмет Записать и получает сообщение. а может быть и так: - пользователь открыл документ; - фоновое задание задание изменило документ; - как только начнет вбивать данные получит сообщение. |
|||
39
Serg_1960
29.12.14
✎
15:53
|
Угу, спс, запамятовал уже.
Да, кстати, насчет "нет обработчика в форме, который один на все изменения реквизитов": есть на форме один хитрый обработчик :) "ОбновлениеОтображения" - он на каждый чих пользователя эхом откликается. |
|||
40
depthzer0
29.12.14
✎
15:55
|
8.3
|
|||
41
Serg_1960
29.12.14
✎
15:57
|
(39) Стоп, опять память подвела. Он срабатывает когда перерисовка нужна. Например, по строкам документа двигаешься или вкладки листаешь...
(40) Ууу... совсем грусно :) |
|||
42
Serg_1960
29.12.14
✎
16:18
|
Из области фантастики :(
В типовой форме документа в процедуре ПередОткрытием() поставить "заглушку": если документ не новый (у него есть ссылка), то создавать новый документ, копировать и открыть его форму, а не форму исходного документа. Зачем такие сложности вы спросите? Чтобы разорвать связь между редактируемым документом и его ссылкой. Пользователи не будут получать сообщения,которые их пугают :) Задача прогера - выкрутиться при записи этого документа на "старую" ссылку |
|||
43
depthzer0
29.12.14
✎
16:23
|
(42) ну да, это сложновато ))
|
|||
44
Serg_1960
29.12.14
✎
16:26
|
Угу, я такой, я гений :) Иначе не вижу способа "обойти" типовые механизмы платформы.
|
|||
45
depthzer0
29.12.14
✎
16:28
|
(44) реально классно, конечно, потому что лучше всего вообще через обработки работать. но тут уже так и нужно сразу ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |