|
двойное срабатывание события при записи | ☑ | ||
---|---|---|---|---|
0
бегинер
31.05.18
✎
12:20
|
обычные формы, толстый клиент
есть справочник, в форме элемента в событии "передзаписью" пишу программно новую запись в другой справочник. если глф_новые_сообщения=истина и отказ=Ложь тогда; //сообщить("запись"); уведомление=справочники.УведомленияПользователей.СоздатьЭлемент(); уведомление.Дата=текущаядата(); уведомление.Получатель=глф_получатель_уведомления; уведомление.ВидИнициатора=перечисления.ВидыИнициаторовУведомлений.органайзер; уведомление.Событие="от ("+глф_отправитель_уведомления+":) новое сообщение в задаче : "+элементыформы.Наименование.Значение; уведомление.КодИнициатора=элементыформы.Код.Значение; уведомление.Записать(); конецесли; |
|||
1
бегинер
31.05.18
✎
12:22
|
так вот там два раза новый элемент создается, если в событии разкомментирую строку вывод сообщения "сообщить", либо точку останова сделаю внутри события - то записывается ОДИН элемент.
почему два раза получается событие срабатывает? с сообщ, с точкой остановки - один |
|||
2
бегинер
31.05.18
✎
12:24
|
пробовал передзаписью, призаписи, послезаписи - все равно два раза пишет в другой справочник
|
|||
3
бегинер
31.05.18
✎
12:25
|
как побороть? нужно чтобы один элемент создавался (записывался) в другой справочник а не два
|
|||
4
sergey198
31.05.18
✎
12:27
|
может подписки установлены?
|
|||
5
Cool_Profi
31.05.18
✎
12:27
|
Проверяй наличие записи и всё
|
|||
6
DrShad
31.05.18
✎
12:27
|
может из уведомления идет такой же говнокод и запись твоего справочника?
|
|||
7
DrShad
31.05.18
✎
12:28
|
стек вызовов что показывает? откуда вторая запись?
|
|||
8
бегинер
31.05.18
✎
12:33
|
(4) подписок нет
(6) а в чем говнокод просвяти? я не программист 1с - сам себе конфу пишу под работу |
|||
9
Ёпрст
31.05.18
✎
12:34
|
(8) говнокод - создание новых элементов при каждой записи
|
|||
10
Ёпрст
31.05.18
✎
12:34
|
заместо проверки, что такой элемент уже есть
|
|||
11
DrShad
31.05.18
✎
12:35
|
+(9) и делать это все в событии перед записью
|
|||
12
Ёпрст
31.05.18
✎
12:35
|
ну и в значения объекта пихать что-то с ЭлементыФормы.. ну ты понял
|
|||
13
catena
31.05.18
✎
12:36
|
+(11)в модуле формы
|
|||
14
Tateossian
31.05.18
✎
12:40
|
У тебя событие очевидно два раза отрабатывает
|
|||
15
Tateossian
31.05.18
✎
12:44
|
(13) А что не так-то с модулем формы? Может такое и нужно поведение.
|
|||
16
DrShad
31.05.18
✎
12:45
|
(15) как минимум модуль объекта с обязательной проверка уже существования такового ну и не перед записью
|
|||
17
бегинер
31.05.18
✎
12:50
|
1справочник: задачи
на форме справочника1 "задачи" есть ТЧ "переписка" постановщика задачи с исполнителем. так вот "передзаписью" элемента справочника1 - по "глф_новые_сообщения" если есть новая переписка - то программно пишу в ДРУГОЙ справочник2 "уведомленияпользователей" (9) т.е. мне при каждой записи "задачи" если появилось новая переписка в ней в ТЧ - я уведомляю (создаю новый элемент уведомление) в справочнике2 в чем здесь говно? :)) |
|||
18
бегинер
31.05.18
✎
12:51
|
есть новая переписка (строка в ТЧ) - уведомляю постановщика/исполнителя
|
|||
19
бегинер
31.05.18
✎
12:52
|
уведомление.КодИнициатора=элементыформы.Код.Значение
уведомление - это справочник2 элементыформы.Код.Значение - это элементформы справочника1 (справочник задач) |
|||
20
Ёпрст
31.05.18
✎
13:01
|
(17) я от нечего делать нажимаю на кнопку записать 20 раз, создалось 20 элементов, если для вас это нормально, продолжайте в том же духе
|
|||
21
Tateossian
31.05.18
✎
13:11
|
(20) Я обычно в дополнительных свойствах при работе с формой фиксирую необходимость сделать какую-то работу, а при записи в объекте эту работу делаю, чтоб как раз не создавалось 20 объектов от нажатий от нечего делать))
|
|||
22
бегинер
31.05.18
✎
13:12
|
(20) :) нет конечно
я флаг очищаю: глф_новые_сообщения=ложь соотв. последующие нажатия кнопки не приведут к записи уведомлений |
|||
23
DrShad
31.05.18
✎
13:16
|
(21) повторно открываю форму и как говорится "Никогда такого не было и вот опять!"
|
|||
24
DrShad
31.05.18
✎
13:16
|
(22) у тебя запись элемента не пройдет по какой-либо причине и что тогда?
|
|||
25
бегинер
31.05.18
✎
13:19
|
(24) что имеешь ввиду?
если задача не записалась - то и не уведомит |
|||
26
бегинер
31.05.18
✎
13:26
|
сейчас все робит как надо, всем спасибо!
|
|||
27
бегинер
31.05.18
✎
13:26
|
всем добра!
|
|||
28
catena
31.05.18
✎
13:36
|
(15)Ну хотя бы то, что форменные процедуры выполняются вне транзакции.
|
|||
29
Tateossian
31.05.18
✎
14:41
|
(24) Все одна транзакция - откатится до записи и не будет создана задача.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |