Вход | Регистрация
 

как поймать момент записи данных в регистр

как поймать момент записи данных в регистр
Я
   evorle145
 
27.08.21 - 12:50
Есть регистр сведений CRM_НепрочитанныеЭлектронныеПисьма

Запись в него осуществляется в двух местах в конфигурации 1С КА 2.4 CRM
"РегистрыСведений.CRM_НепрочитанныеЭлектронныеПисьма.СоздатьНаборЗаписей()"

Так вот прикол в том что для 1 из 10 почтовых учетных записей в этот регистр каждый раз при запуске задания отправить/получить почту записываются все письма, как будто они непрочитанные.  Я включил отладку этого фонового задания. Но поймать момент записи в упор не могу...
Искал по всей конфигурации "CRM_НепрочитанныеЭлектронныеПисьма" и там всего пару мест где есть РегистрыСведений.CRM_НепрочитанныеЭлектронныеПисьма.СоздатьНаборЗаписей() и отладчик в них не заходит (точнее заходит , но только чтоб записать реально не прочитанные...

Расширения есть, но в них ничего такого... что за мистика? как еще можно отловить момент записи?
   mistеr
 
1 - 27.08.21 - 12:52
Повесить на него подписку в расширении, например.
   ДенисЧ
 
2 - 27.08.21 - 12:52
В модуле набора записей события ПередЗаписью и ПриЗаписи
   evorle145
 
3 - 27.08.21 - 12:54
(1) исключено ... там пару расширений и то я сам их делал. там этого нет
(2) смотрел, но  там только это:
Процедура ПередЗаписью(Отказ, Замещение)
    
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
КонецПроцедуры

Процедура ПриЗаписи(Отказ, Замещение)
    
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
    Если Отбор.Письмо.Значение.УчетнаяЗапись.CRM_СинхронизироватьПапкиСПочтовымСервером Тогда
        Прочитано = (Количество() = 0);
        ЗаписьДействия = РегистрыСведений.CRM_ОтложенныеОперацииПоIMAP.СоздатьМенеджерЗаписи();
        ЗаписьДействия.Объект = Отбор.Письмо.Значение;
        ЗаписьДействия.УчетнаяЗапись = Отбор.Письмо.Значение.УчетнаяЗапись;
        ЗаписьДействия.Действие = ?(НЕ Прочитано, Перечисления.CRM_ДействияПоIMAP.УстановитьФлагПрочтения, Перечисления.CRM_ДействияПоIMAP.СнятьФлагПрочтения);
        ЗаписьДействия.Прочитать();
        Если ЗаписьДействия.Выбран() Тогда
            ЗаписьДействия.Удалить();
        КонецЕсли;
        ЗаписьДействия = РегистрыСведений.CRM_ОтложенныеОперацииПоIMAP.СоздатьМенеджерЗаписи();
        ЗаписьДействия.Объект = Отбор.Письмо.Значение;
        ЗаписьДействия.УчетнаяЗапись = Отбор.Письмо.Значение.УчетнаяЗапись;
        ЗаписьДействия.Действие = ?(Прочитано, Перечисления.CRM_ДействияПоIMAP.УстановитьФлагПрочтения, Перечисления.CRM_ДействияПоIMAP.СнятьФлагПрочтения);
        ЗаписьДействия.ИмяПапкиНаСервере = "";
        ЗаписьДействия.Записать();
    КонецЕсли;

КонецПроцедуры

то есть запись идет, но совершенно в другой регистр
   ДенисЧ
 
4 - 27.08.21 - 12:57
Ты не то смотришь. Ты смотри на данные и стек вызовов.
   evorle145
 
5 - 27.08.21 - 13:03
(4) ну вот какое дело, открываю стек вызовов, запускаю фоновое задание, вижу что в этот регистр идет 2-3 записи (2-3 письма новых получено). Далее все заканчивается в отладчике. А потом каким-то другим заданием в этом регистре появляется 1500 записей (типа все письма непрочитаны по этой учетке).. Как надо смотреть на данные? не пойму про что речь
   mistеr
 
6 - 27.08.21 - 13:05
(3) Ты спросил "как еще можно поймать", я ответил.
   evorle145
 
7 - 27.08.21 - 13:06
(6) ааа, сори, я не понял просто...
   hhhh
 
8 - 27.08.21 - 13:08
(5) открываете список фоновых заданий и смотрите по времени, какое задание выполнялось, вы же время примерно знаете, когда произошла запись в регистр.

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