|
запрос выдает произвольный результат | ☑ | ||
---|---|---|---|---|
0
vvp117
23.01.13
✎
13:48
|
Подскажите, плиз, каковы могут быть причины такого поведения таблицы остатков: один и тот же запрос по остаткам на старую дату (01.09.2012) выдает разные результаты.
Причем вплоть до случайных комбинаций! Текущая дата - 23.01.2013. Достоверно известно, что никто не правит никакие документы ранее 01.09.2012. Есть всего одна закономерность: в сумме не меняются копейки. Вот текст запроса: ВЫБРАТЬ РАЗРЕШЕННЫЕ Взаиморасчеты.Организация, СУММА(Взаиморасчеты.СуммаДолгаОстаток) КАК СуммаНач ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.Взаиморасчеты.Остатки(&НачалоПериода, ) КАК Взаиморасчеты СГРУППИРОВАТЬ ПО Взаиморасчеты.Организация ; ВЫБРАТЬ СУММА(ВТ.СуммаНач) КАК СуммаНач ИЗ ВТ_Остатки КАК ВТ ; &НачалоПериода = 01.09.2012 00:00:00. Кто-нить видел такое поведение регистра остатков раньше? |
|||
1
Nagaru
23.01.13
✎
13:51
|
(0) Выгнать всех из базы и попробовать снова.
Если не сработает - тестирование и исправление базы с пересчетом итогов. |
|||
2
Defender aka LINN
23.01.13
✎
13:51
|
(0) Я видел. Но потом протрезвел.
|
|||
3
Fragster
гуру
23.01.13
✎
13:53
|
надо выключить текущие итоги или рассчитать итоги до даты после 1 сентября.
|
|||
4
samozvanec
23.01.13
✎
13:54
|
в транзакции с исключительной блокировкой регистра попробуй дважды выполнить запрос и сравнить результат
|
|||
5
samozvanec
23.01.13
✎
13:55
|
+ чего сразу сумму не берешь, зачем организация в первой таблице?
|
|||
6
vvp117
23.01.13
✎
13:57
|
(1) Выгнать сейчас всех проблематично, учитывая, что тестирование и исправление будет выполняться чудовищно долго...
(3) Можно по-подробнее про "выключить текущие итоги"? (5) Пробовал и просто сумму взять, проблема не меняется. Да и почему-бы не взять по организации? Мне, скажем, в отчете так нужно. |
|||
7
Живой Ископаемый
23.01.13
✎
13:59
|
2(6) Не выгоняй, просто сделай и разверни бэкап. в бэкапе сделай все монопольно
|
|||
8
samozvanec
23.01.13
✎
13:59
|
(6) тогда тебе в (4)
|
|||
9
vvp117
23.01.13
✎
14:08
|
(7) На тестовой базе результат стабильный.
Очевидно, что оперативно проводимые документы, двигающие регистр, влияют на результат. Но как??? Я ведь беру остатки на старую дату! |
|||
10
Fragster
гуру
23.01.13
✎
14:08
|
(6).2
РегистрНакопленияМенеджер.<Имя регистра накопления> (AccumulationRegisterManager.<Имя регистра накопления>) УстановитьИспользованиеТекущихИтогов (SetPresentTotalsUsing) Синтаксис: УстановитьИспользованиеТекущихИтогов(<Флаг>) Параметры: <Флаг> (обязательный) Тип: Булево. Значение флага использования актуальных итогов. Возвращаемое значение: Тип: Булево. Описание: Устанавливает флаг использования текущих итогов. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Используется только для регистра остатков. Влияет на наличие актуальных итогов. Если использование актуальных итогов выключено, то расчет актуальных остатков будет производиться следующим образом: сначала будут получены остатки на самые поздние хранимые итоги, а потом по движениям за оставшийся период будут получены актуальные остатки. Позволяет увеличить параллельность при записи наборов записей данного регистра, так как не требуется обновления актуальных итогов. РегистрНакопленияМенеджер.<Имя регистра накопления> (AccumulationRegisterManager.<Имя регистра накопления>) УстановитьПериодРассчитанныхИтогов (SetTotalsPeriod) Синтаксис: УстановитьПериодРассчитанныхИтогов(<Период>) Параметры: <Период> (обязательный) Тип: Дата. Период, на который необходимо рассчитать итоги. Описание: Устанавливает период, на который рассчитаны итоги. Влияет только на производительность получения остатков по данному регистру. Периодичность расчета - месяц. Период устанавливается на начало месяца. В параметре указывается конец периода по который должны быть рассчитаны итоги. Если указана дата 31.01.2000 то это значит что будут рассчитаны итоги на 01.02.2000. Для получения итогов после этой даты будут использоваться актуальные итоги. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Имеет смысл только для регистров остатков. Период, на который рассчитаны итоги, влияет только на производительность получения остатков по данному регистру. Для получения итогов регистра после установленного периода расчета будут использоваться полученные в результате использования метода результаты. Пример: Регистры.Остатки.УстановитьПериодРассчитанныхИтогов(ВыбДата); |
|||
11
Fragster
гуру
23.01.13
✎
14:11
|
Внимательно:
"Для получения итогов после этой даты (Период Рассчитанных Итогов) будут использоваться актуальные итоги." |
|||
12
Живой Ископаемый
23.01.13
✎
14:12
|
2(9) Документы могут делать движения датой, отличной от своей даты... И они еще могут делать движения разными датами.
|
|||
13
vvp117
23.01.13
✎
14:34
|
(10) Оказалось в рабочей базе данных итоги были рассчитаны по 30.06.2011.
Судя по всему дело, как раз в этом. Тему можно считать условно закрытой. Всем спасибо :) |
|||
14
Fragster
гуру
23.01.13
✎
14:50
|
(13) т.е. после расчета итогов отпустило?
|
|||
15
КонецЕсли
23.01.13
✎
15:18
|
(14) он их без монопля не пересчитает.
|
|||
16
Fragster
гуру
23.01.13
✎
15:29
|
(15) да ты что? для (10) не нужен монопольный режим
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |