Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УПП. Где происходит запись движений в регистр накопления "Расчеты с контрагентами".

УПП. Где происходит запись движений в регистр накопления "Расчеты с контрагентами".
Я
   ass_kak_dollar
 
12.02.21 - 11:09
В процедуре "обработка проведения" документа "Приходный кассовый ордер" формируется таблица для движений. После срабатывает подписка "ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования". Она ссылается на функцию общего модуля НастройкаПравДоступа.ПередЗаписьюРегистраНакопленийПроверкаДоступностиПериода. В ней запись движения не происходит (проверено и перепроверено). Но сразу после неё отладчик вываливается в функцию "ПослеЗаписи" формы приходника и запись уже существует. Подскажите куда искать =(
   DrShad
 
1 - 12.02.21 - 11:13
ДвиженияПоРегистрамОперативныхВзаиморасчетов
   ass_kak_dollar
 
2 - 13.02.21 - 14:07
(1) движения помещаются в таблицу, но еще не записываются
   acht
 
3 - 13.02.21 - 14:44
(0) Включи замер производительности, отключи замер производительности
   ass_kak_dollar
 
4 - 13.02.21 - 16:36
(3) пытался, не помогло
   Cthulhu
 
5 - 13.02.21 - 16:44
УправлениеВзаиморасчетами.ОтражениеОплатыВРегистреОперативныхРасчетовПоДокументам ?.......
   ass_kak_dollar
 
6 - 13.02.21 - 17:10
(5) нет
Что удалось выяснить: после выполнения обработки проведения и соответственно загрузки таблицы движений, срабатывает подписка на события "ПередЗаписьюРегистраНакопленияДатаЗапретаРедактирования"

вот обработчик этой подписки:

Процедура ПередЗаписьюРегистраНакопленийПроверкаДоступностиПериода(Источник, Отказ, Замещение) Экспорт
    
    Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    
    ПроверкаПериодаЗаписейРегистров(Источник, Отказ, "РегистрНакопления");    
    #Если НЕ ВнешнееСоединение Тогда

        Если Отказ Тогда
            Сообщить("Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", СтатусСообщения.Важное);
        КонецЕсли;
    #КонецЕсли

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

На последней строке кода данные ещё не записаны, но когда перехожу на следующую итерацию (проверяется следующий регистр) данные уже есть. Больше никуда отладчик не ходит. Вываливается в ПослеЗаписи документа по окончанию процедуры
   ass_kak_dollar
 
7 - 13.02.21 - 17:11
база серверная, -debug прописан
   hhhh
 
8 - 13.02.21 - 17:38
(6) ну так и должно быть. После обработки ПередЗаписью происходит сама запись. Потом запускаются ПриЗаписи и ПослеЗаписи? в чем вопрос?
   d4rkmesa
 
9 - 13.02.21 - 18:09
(6) В  8. правильно сказали, в документе ПриходныйКассовыйОрдер в св-вах установлено "Записывать модифицированные", это значит запись по-умолчанию происходит неявно, без вызова Движения.РасчетыСКонтрагентами.Записать().
   hhhh
 
10 - 13.02.21 - 18:18
(6) да, запись происходит на последней строчке кода, строка КонецПроцедуры.
   Фрэнки
 
11 - 13.02.21 - 20:15
Ну для полной и окончательной уверенности можно непосредственно в модуле набора записей регистра посмотреть. Если процедуры там нет, то вставить ее туда и воткнуть точку останова.

Таким образом, при большом желании можно попробовать декодировать поведение в обратном порядке, по стеку вызова функций.
   ass_kak_dollar
 
12 - 14.02.21 - 00:40
(8) (9) Понял, спасибо, буду знать!
   Фрэнки
 
13 - 14.02.21 - 00:48
(12) знать заранее прикольно :-)
Но через отладку из модуля набора записей надежней :-)
   Фрэнки
 
14 - 14.02.21 - 00:49
К тому же, УПП сейчас у всех в наличии только перепаханные и перепиленные и вкривь и вкось... могут быть серьезные сюрпризы.

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