|   |   | 
| 
 | двойное срабатывание события при записи | ☑ | ||
|---|---|---|---|---|
| 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) Все одна транзакция - откатится до записи и не будет создана задача.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |