|
как поймать момент записи данных в регистр | ☑ | ||
---|---|---|---|---|
0
evorle145
27.08.21
✎
12:50
|
Есть регистр сведений CRM_НепрочитанныеЭлектронныеПисьма
Запись в него осуществляется в двух местах в конфигурации 1С КА 2.4 CRM "РегистрыСведений.CRM_НепрочитанныеЭлектронныеПисьма.СоздатьНаборЗаписей()" Так вот прикол в том что для 1 из 10 почтовых учетных записей в этот регистр каждый раз при запуске задания отправить/получить почту записываются все письма, как будто они непрочитанные. Я включил отладку этого фонового задания. Но поймать момент записи в упор не могу... Искал по всей конфигурации "CRM_НепрочитанныеЭлектронныеПисьма" и там всего пару мест где есть РегистрыСведений.CRM_НепрочитанныеЭлектронныеПисьма.СоздатьНаборЗаписей() и отладчик в них не заходит (точнее заходит , но только чтоб записать реально не прочитанные... Расширения есть, но в них ничего такого... что за мистика? как еще можно отловить момент записи? |
|||
1
mistеr
27.08.21
✎
12:52
|
Повесить на него подписку в расширении, например.
|
3 |
||
2
ДенисЧ
27.08.21
✎
12:52
|
В модуле набора записей события ПередЗаписью и ПриЗаписи
|
3 |
||
3
evorle145
27.08.21
✎
12:54
|
(1) исключено ... там пару расширений и то я сам их делал. там этого нет
(2) смотрел, но там только это: Процедура ПередЗаписью(Отказ, Замещение) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; КонецПроцедуры Процедура ПриЗаписи(Отказ, Замещение) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Если Отбор.Письмо.Значение.УчетнаяЗапись.CRM_СинхронизироватьПапкиСПочтовымСервером Тогда Прочитано = (Количество() = 0); ЗаписьДействия = РегистрыСведений.CRM_ОтложенныеОперацииПоIMAP.СоздатьМенеджерЗаписи(); ЗаписьДействия.Объект = Отбор.Письмо.Значение; ЗаписьДействия.УчетнаяЗапись = Отбор.Письмо.Значение.УчетнаяЗапись; ЗаписьДействия.Действие = ?(НЕ Прочитано, Перечисления.CRM_ДействияПоIMAP.УстановитьФлагПрочтения, Перечисления.CRM_ДействияПоIMAP.СнятьФлагПрочтения); ЗаписьДействия.Прочитать(); Если ЗаписьДействия.Выбран() Тогда ЗаписьДействия.Удалить(); КонецЕсли; ЗаписьДействия = РегистрыСведений.CRM_ОтложенныеОперацииПоIMAP.СоздатьМенеджерЗаписи(); ЗаписьДействия.Объект = Отбор.Письмо.Значение; ЗаписьДействия.УчетнаяЗапись = Отбор.Письмо.Значение.УчетнаяЗапись; ЗаписьДействия.Действие = ?(Прочитано, Перечисления.CRM_ДействияПоIMAP.УстановитьФлагПрочтения, Перечисления.CRM_ДействияПоIMAP.СнятьФлагПрочтения); ЗаписьДействия.ИмяПапкиНаСервере = ""; ЗаписьДействия.Записать(); КонецЕсли; КонецПроцедуры то есть запись идет, но совершенно в другой регистр |
6 |
||
4
ДенисЧ
27.08.21
✎
12:57
|
Ты не то смотришь. Ты смотри на данные и стек вызовов.
|
5 |
||
5
evorle145
27.08.21
✎
13:03
|
(4) ну вот какое дело, открываю стек вызовов, запускаю фоновое задание, вижу что в этот регистр идет 2-3 записи (2-3 письма новых получено). Далее все заканчивается в отладчике. А потом каким-то другим заданием в этом регистре появляется 1500 записей (типа все письма непрочитаны по этой учетке).. Как надо смотреть на данные? не пойму про что речь
|
8 |
||
6
mistеr
27.08.21
✎
13:05
|
(3) Ты спросил "как еще можно поймать", я ответил.
|
7 |
||
7
evorle145
27.08.21
✎
13:06
|
(6) ааа, сори, я не понял просто...
|
|||
8
hhhh
27.08.21
✎
13:08
|
(5) открываете список фоновых заданий и смотрите по времени, какое задание выполнялось, вы же время примерно знаете, когда произошла запись в регистр.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |