Еще раз о Точке Актуальности

  • Автор темы Hryv
  • Дата начала
H

Hryv

Нашел в коде такую строку

РассчитатьРегистрыПо(ПолучитьДокументТА());

Пришел к выводу что она не имеет смысла так как всегда будет вызывать ошибку расчета итогов посте ТА
Но все же сомневаюсь прав ли я

У кого какое мнение?
 
T

TimeDontWait

Когда документ проводится, то ТА устанавливается на дату этого документа. И обращение к итогам
регистра после ТА по-моему невозможно
 
V

vitfil

Оба неправы.
РассчитатьРегистрыНа(ПолучитьДокументТА())
Произведет расчет итогов без учета этого документа.
РассчитатьРегистрыПо(ПолучитьДокументТА()) - это фактически актуальные итоги.
 
H

Hryv

Когда документ проводится, то ТА устанавливается на дату этого документа. И обращение к итогам
регистра после ТА по-моему невозможно
Так и я о том же

vitfil, но по факту ошибка возникает
только я не уверен всегда или не всегда
 
H

Hryv

Немного подкорректирую

код:
РассчитатьРегистрыПо(ПолучитьДокументТА());

не имеет смысла если вызывается в ОбработкаПроведения(), так как всегда будет вызывать ошибку расчета итогов посте ТА
 
V

vitfil

А вот это уже баг 1С, переросший в фичу.
Дело в том, что позиция ТА равна позиции Документа ТА.
...РегистрыНа производит расчет на позицию документа до его проведения, т.е. без учета движений этого документа.
...РегистрыПо производит расчет на позицию документа после его проведения, т.е. с учетом движений этого документа. Фактически - это ТА.

В 1С все очень хитро хранится. Нельзя получить итоги после ТА. ТА = позиции документа ТА. Несмотря на то, что итоги учитывают движения документа ТА получаем такую хрень:
Итоги ТА учитывают движения документа.
РегистрыНа - не учитывают движения документа.
РегистрыПо - должны учитывать движения документа и фактически должны быть равны итогам ТА для документа ТА, но обратиться к ним невозможно, т.к. позиция документа НЕ меньше позиции ТА.

Умом нам это не понять, нам надо просто в это верить.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!