Некорректное обновление агрегатов регистра накопления #797417


#0 by nifendervan
Здравствуйте. Добавил в конфигурацию регистр накопления и включил у него агрегаты. Создал 2 агрегата с периодичностью День. Движения в регистр пишутся как обычно при проведении документов. Проблема: провожу документы за 1 день, обновляю агрегаты. После этого если сравнить обороты, полученные с помощью виртуальной таблицы, и обороты, полученные по самим движениям, то они отличаются. Профайлером посмотрел, что виртуальная таблица обращается к таблицам агрегатов. Оказалось, что в агрегаты попадают не все движения. Чтобы привести таблицы агрегатов к правильному состоянию необходимо очистить их и обновить заново. Кто-нибудь встречался с подобной проблемой? Платформа 1С:Предприятие 8.3 (8.3.8.2167), самописная конфигурация.
#1 by sFAQer
#2 by nifendervan
Да, это я все читал перед началом использования агрегатов: 1.В режиме 1С:Предприятие получить список оптимальных агрегатов. 2.В конфигураторе создать оптимальные агрегаты. 3.В режиме 1С:Предприятие включить режим агрегатов для регистра. 4.Выполнить перестроение сети агрегатов. 5.Выполнить обновление агрегатов. Вот как раз на пятом шаге ошибка - в агрегаты попадают не все движения.
#3 by sFAQer
А какие отличия между таблицей агрегатов и таблицей движений? Может у тебя там новые документы уже в пуле на обновление?
#4 by nifendervan
Некоторые записи не попадают в агрегаты. Виртуальная таблица оборотов возвращает некорректные обороты. Новые документы пишутся в промежуточную таблицу новых движений (так она называется, если посмотреть методом ПолучитьСтруктуруХраненияБазыДанных), потом есть еще некая буферная таблица для расчета оборотов, и только потом данные попадают в таблицы агрегатов. Но ведь запрос должен возвращать корректные данные, независимо от стадии обновления агрегатов. А выходит нифига не так, строки где-то теряются. Запрос к виртуальной таблице 1С должен разворачивать в SQL-запрос ко всем трем таблицам механизма агрегатов. По факту этот запрос не всегда используется буферную таблицу. Возможно, дело в релизе платформы. Может быть, и я что-то не так делаю, но пока не понимаю что :)
#5 by nifendervan
У нас большие надежды были на механизм агрегатов. Сильно бы ускорило наши отчеты, потому что считать обороты по таблице движений при ~150 млн. записей в месяц тяжеловато. Может быть, есть другие методы ускорения расчета оборотов при таких объемах?
#6 by nifendervan
Переход на платформу 8.3.10.2252 не помог - все та же ошибка обновления. Сделали запрос в 1С.
#7 by sFAQer
Отпишь что 1С скажет, интерсно таки...
#8 by h-sp
чтобы ускорить отчеты, надо нанять нормального программиста. Агрегаты здесь не помогут.
#9 by sFAQer
"~150 млн. записей в месяц" тут никакой рукастый программист не поможет, при таких обортах таки нужны агрегаты...
#10 by h-sp
150 млн - это средненько. Допустим один документ - это где-то 10000 записей обычно. ну то есть 15000 документов в месяц. База ниже среднего.
#11 by sFAQer
И какой документ у тебя генерит 10 тысяч записей в таблицу оборотов, ну допустим "Продажи". 1 документ в 10 тысяч строк? Какие то не средние значения...
#12 by mehfk
Не ведись на троллинг.
#13 by sFAQer
и действительно... чё это я....
#14 by h-sp
там 20 регистров, не забывай. И допустим регистр Партии, по каждой строчке несколько записей генерит.
#15 by h-sp
приводят обычно как пример. Документ табель в зуп 3.0. Если 100 сотрудников в табеле. То получается там по одному регистру 100Х30дней Х 5 видов времени. Где-то 15000 записей по только одному регистру одного документа. А есть ведь там и другие регистры в этом документе.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С