|
УПП. Где происходит запись движений в регистр накопления "Расчеты с контрагентами". | ☑ | ||
---|---|---|---|---|
0
ass_kak_dollar
12.02.21
✎
11:09
|
В процедуре "обработка проведения" документа "Приходный кассовый ордер" формируется таблица для движений. После срабатывает подписка "ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования". Она ссылается на функцию общего модуля НастройкаПравДоступа.ПередЗаписьюРегистраНакопленийПроверкаДоступностиПериода. В ней запись движения не происходит (проверено и перепроверено). Но сразу после неё отладчик вываливается в функцию "ПослеЗаписи" формы приходника и запись уже существует. Подскажите куда искать =(
|
|||
1
DrShad
12.02.21
✎
11:13
|
ДвиженияПоРегистрамОперативныхВзаиморасчетов
|
|||
2
ass_kak_dollar
13.02.21
✎
14:07
|
(1) движения помещаются в таблицу, но еще не записываются
|
|||
3
acht
13.02.21
✎
14:44
|
(0) Включи замер производительности, отключи замер производительности
|
|||
4
ass_kak_dollar
13.02.21
✎
16:36
|
(3) пытался, не помогло
|
|||
5
Cthulhu
13.02.21
✎
16:44
|
УправлениеВзаиморасчетами.ОтражениеОплатыВРегистреОперативныхРасчетовПоДокументам ?.......
|
|||
6
ass_kak_dollar
13.02.21
✎
17:10
|
(5) нет
Что удалось выяснить: после выполнения обработки проведения и соответственно загрузки таблицы движений, срабатывает подписка на события "ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования" вот обработчик этой подписки: Процедура ПередЗаписьюРегистраНакопленийПроверкаДоступностиПериода(Источник, Отказ, Замещение) Экспорт Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; ПроверкаПериодаЗаписейРегистров(Источник, Отказ, "РегистрНакопления"); #Если НЕ ВнешнееСоединение Тогда Если Отказ Тогда Сообщить("Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", СтатусСообщения.Важное); КонецЕсли; #КонецЕсли КонецПроцедуры На последней строке кода данные ещё не записаны, но когда перехожу на следующую итерацию (проверяется следующий регистр) данные уже есть. Больше никуда отладчик не ходит. Вываливается в ПослеЗаписи документа по окончанию процедуры |
|||
7
ass_kak_dollar
13.02.21
✎
17:11
|
база серверная, -debug прописан
|
|||
8
hhhh
13.02.21
✎
17:38
|
(6) ну так и должно быть. После обработки ПередЗаписью происходит сама запись. Потом запускаются ПриЗаписи и ПослеЗаписи? в чем вопрос?
|
|||
9
d4rkmesa
13.02.21
✎
18:09
|
(6) В 8. правильно сказали, в документе ПриходныйКассовыйОрдер в св-вах установлено "Записывать модифицированные", это значит запись по-умолчанию происходит неявно, без вызова Движения.РасчетыСКонтрагентами.Записать().
|
|||
10
hhhh
13.02.21
✎
18:18
|
(6) да, запись происходит на последней строчке кода, строка КонецПроцедуры.
|
|||
11
Фрэнки
13.02.21
✎
20:15
|
Ну для полной и окончательной уверенности можно непосредственно в модуле набора записей регистра посмотреть. Если процедуры там нет, то вставить ее туда и воткнуть точку останова.
Таким образом, при большом желании можно попробовать декодировать поведение в обратном порядке, по стеку вызова функций. |
|||
12
ass_kak_dollar
14.02.21
✎
00:40
|
(8) (9) Понял, спасибо, буду знать!
|
|||
13
Фрэнки
14.02.21
✎
00:48
|
(12) знать заранее прикольно :-)
Но через отладку из модуля набора записей надежней :-) |
|||
14
Фрэнки
14.02.21
✎
00:49
|
К тому же, УПП сейчас у всех в наличии только перепаханные и перепиленные и вкривь и вкось... могут быть серьезные сюрпризы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |