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