![]() |
|
v7: ВыгрузитьИтоги() не видит движения документов одного вида. | ☑ | ||
---|---|---|---|---|
0
serg_m_v
14.09.11
✎
18:16
|
Доброго времени суток.
Есть два участка кода: Код №1: ВремРег = СоздатьОбъект("Регистры"); Рег = ВремРег.ВзаиморасчетыПокупателей; Если Выбран() = 1 Тогда Рег.ВременныйРасчет(1); ВремРег.РассчитатьРегистрыНа(СформироватьПозициюДокумента(ТекущийДокумент())); КонецЕсли; Рег.УстановитьЗначениеФильтра("Фирма",спФирмы,2); Рег.УстановитьЗначениеФильтра("Контрагент",Контрагент,2); Рег.УстановитьЗначениеФильтра("Договор",спДоговора,2); тбДолги = 0; Рег.ВыгрузитьИтоги(тбДолги,1,1); И код №2: Рег = СоздатьОбъект("Регистр.ВзаиморасчетыПокупателей"); тбДолги = 0; Рег.УстановитьЗначениеФильтра("Фирма",спФирмы,2); Рег.УстановитьЗначениеФильтра("Контрагент",Контрагент,2); Рег.УстановитьЗначениеФильтра("КредДокумент", Значение, 1); Рег.УстановитьЗначениеФильтра("Договор",спДоговора,2); Рег.ВыгрузитьИтоги(тбДолги,1,1); Если документ находится в самом конце временной оси, то данные в тбДолги, по идее, должны быть одинаковые. Но в первом случае выгружаются данные без учета движений одного вида документа. Если же данные вытаскивать запросом, то все нормально... Да и в отчетах движения документа видно, соответственно ошибка в коде :-(. |
|||
1
vip03
15.09.11
✎
11:25
|
РасчитатьРегистрыНа() - расчитывает НА документ, т.е. на момент времени ДО проведения документа.
Отсюда движения этого документа учитываться не будут. Если использовать РасчитатьРегистрыПО() - движения документа будут учтены |
|||
2
serg_m_v
15.09.11
✎
11:42
|
Это я прекрасно понимаю. Но документы, движения которых не учитываются, проведены много раньше. Мне эти движения нужно увидеть из другого документа.
К примеру: Есть документ "Перезачет", который делает движение по регистру взаиморасчетов и закрывает долг клиента по счету. И есть ПКО, которое проводится на следующий день и в котором формируется таблица долгов по документам и в этой таблице (тбДолги, которая) и указано, что долг по счету никуда не делся, хотя он был закрыт перезачетом. |
|||
3
Джинн
15.09.11
✎
11:46
|
Не совсем понятно о чем речь. Можно в нормальных терминах сформулировать?
В итогах нет никаких движений. Они сводные. На то они и итоги. Итоги считаются неверно или что? И в коде 2 на один фильтр больше. |
|||
4
serg_m_v
15.09.11
✎
11:50
|
(3) Во втором коде получаем итоги с фильтром по определенному документу, а в первом - все итоги по контрагенту.
А по поводу итогов... Был долг по документу 1000 тугриков, сделали ПКО на 300 тугриков, сделали Перезачет на 700 тугриков итого в сводном остатке по документу долг должен быть 0, а он видит долг в 700, будто и не было перезачета. |
|||
5
Джинн
15.09.11
✎
11:54
|
(4) В движениях регистра это можно описать?
Для примера: Начальный остаток Фирма - Рога и копыта Контрагент - Вася Пупкин Договор - Договор на поставку какой-то хрени КредДокумент - Накладная 1 Долг - -1000 тугриков Оплата: Фирма - Рога и копыта Контрагент - Вася Пупкин Договор - Договор на поставку какой-то хрени КредДокумент - Накладная 1 Долг - +300 тугриков "Перезачет": ? |
|||
6
serg_m_v
15.09.11
✎
12:00
|
Перезачет делает два движения:
1: Фирма - Рога и копыта Контрагент - Вася Пупкин Договор - Договор на поставку какой-то хрени КредДокумент - Накладная 1 Долг - +700 тугриков 2: Фирма - Рога и копыта Контрагент - Вася Пупкин Договор - Договор на поставку какой-то хрени КредДокумент - Накладная 2 Долг - -700 тугриков То есть аналогично ПКО плюс закидывает этот долг на другой документ. А в результате в таблице итогов получаем Фирма - Рога и копыта Контрагент - Вася Пупкин Договор - Договор на поставку какой-то хрени КредДокумент - Накладная 1 Долг - -700 (а вот тут должно быть 0). |
|||
7
Джинн
15.09.11
✎
12:24
|
(6) Тогда смотри внимательнее, где промахнулся в движениях.
Кстати у тебя в 0 еще и на разные моменты времени итоги. В первом случае на документ, во втором на ТА. |
|||
8
serg_m_v
15.09.11
✎
12:31
|
(7) Правильно. Во втором случае получается итог для одного документа при указании этого документа в строке в новом ПКО. А там, где на документ - это заполнение/перезаполнение табличной части по кнопке "Заполнить". Во втором случае все правильно. Интересно, что если вытаскивать данные запросом, то все правильно получается, но, в таком случае, итоги на дату, а не на документ. И в отчетах все нормально, все движения видно. Хрень какая-то :-(. Тестирование базы не помогает, перепроведение не помогает...
Я вот думаю уже пересоздать документ в целях перезаписи таблиц в SQL. Вряд ли поможет, но... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |