Сижу значит кодю...
Не не так...
Пришел на работу на следующий день после предзащиты открываю Мегаплан, а там задача "Разобраться с расхождением сальдо в карточке клиента" (список отгрузок, оплат, и пр что связано с клиентом) начал смотреть, формирую по ТА (Точка Актуальности кто не в курсе есть такое понятие в оперативном учете), все нормально, начинаю играться периодами. О ужас сальдо начальное и конечное застыло на одних и тех же цифрах, лезу в отладчик в запросе у меня так:
"Период с ДатаНачала по ДатаКонца;//указываются в форме
***
|Группировка Клиент Без групп Все;
|Группировка Докум;
|Функция НачДолг = НачОст(Долг);
|Функция КонДолг = КонОст(Долг);
***
т.е. когда обрабатываем запрос в цикле, есть строка с итогами по клиенту в нем не выбран документ, я ловлю его так:
Если ПустоеЗначение(Запрос.Докум.ТекущийДокумент()) = 1 Тогда
и заношу долг клиента
//Это пойдет в сальдо
НачДолг = НачДолг + Запрос.НачДолг;
КонДолг = КонДолг + Запрос.КонДолг;
смотрю в запросе вроде и начальная дата верна, и конечная, а НачДолг берется начало года, а КонДолг ДатаТА.
Думал проблема в релизе (7.7.025) выпросил у поддержки обновления, обновился до 27, результат тот же.
Самое интересное, я давно уже в регистры не лазил, значит проблема в чем-то другом, сегодня буду писать в Т.П. чтобы посмотрели проблему.
А пока только:
Рег = СоздатьОбъект("Регистр.ЗАМАЗАНО");
Рег.ВременныйРасчет(1);
РассчитатьРегистрыНа(ДатаНачала);
НачДолг = НачДолг + Рег.Итог(Запрос.Клиент,"Долг");
РассчитатьРегистрыПо(ДатаКонца);
КонДолг = КонДолг + Рег.Итог(Запрос.Клиент,"Долг");
снова столкнулся с этой же проблемой, гугль не помог :( даже не знаю куда копать, последнее что делал это изменен типы реквизитов в справочнике контрагентов... Если это как-то связано, то я в шоке. Логике не поддается, как итог может зависеть от реквизитов справочника на который ссылается регистр. При этом Регистр.ХХХ.Итог(Измерение,ресурс) работает стабильно (тфу-тфу-тфу)
ОтветитьУдалить