Имя: Пароль:
1C
1С v8
Запрос к регистру накопления
0 tlaloc
 
02.08.18
16:46
Всем здравстуйте!
Есть такая проблема:
Запрос вида:
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(
            &ДатаНач,
            &ДатаКон,
            ,
            ,
            Номенклатура = &Номенклатура
                
                И Склад = &Склад
                ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты

При значении параметра "ДатаНач" 01.02.2018 00:00:00, "ДатаКон" 02.02.2018 23:59:59 в результате КоличествоКонечныйОстаток = 98.
При значении параметра "ДатаНач" 02.02.2018 00:00:00, "ДатаКон" 02.02.2018 23:59:59 в результате КоличествоКонечныйОстаток = 106.

Как такое может быть? Я всю жизнь думал, что конечный остаток не меняется, если не меняется дата окончания.
Пересчет итогов не помог.
Заранее спасибо!
1 Михаил Козлов
 
02.08.18
17:00
Попробуйте в параметрах регистра (кажется, 4) указать метод дополнения.
2 tlaloc
 
02.08.18
17:07
(1) Нет. К сожалению, не помогает.
Более того, тогда бы пришлось менять все стандартные отчеты конфигурации, а для меня это не вариант. Запрос я привел потому, что все стандартные отчеты работают по остаткам и оборотам в основном.
3 Ненавижу 1С
 
гуру
02.08.18
17:09
скорее всего криво расчитаны итоги, требуется их пересчитать
4 Быдло замкадное
 
02.08.18
17:09
не может такого быть при прочих равных. Не в запросе дело.
5 s03
 
02.08.18
17:13
ставлю на очепятку при вводе значения параметра или путаницу между параметрами
6 tlaloc
 
02.08.18
17:16
(3) Я ж писал, что пересчет итогов не помог. Пересчитывал так: РегистрыНакопления.[ИмяРегистра].ПересчитатьТекущиеИтоги()
(5) Скрупулезно выверял каждую букву. Впятером сидим, и ничего не понимаем.
7 unregistered
 
02.08.18
17:22
(6) > РегистрыНакопления.[ИмяРегистра].ПересчитатьТекущиеИтоги()

А почему пересчитывал только текущие итоги?
В режиме предприятия открой диалог управления итогами в режиме "Полные возможности" и выполни для своего регистра пересчитай все итоги - итоги, текущие, за период.
8 ptiz
 
02.08.18
17:22
(6) Сделайте ПересчитатьИтоги()
9 unregistered
 
02.08.18
17:23
С вероятностью 99.9% вы в том месте где устанавливаете параметры путаете ДатаНач и ДатаКон. Либо в коде, либо на самой форме.
10 unregistered
 
02.08.18
17:23
(5) +100500
11 tlaloc
 
02.08.18
17:25
(9) А ведомость по партиям товаров на складе тоже их путает? И универсальный отчет "Остатки и обороты" тоже их путает? Я специально с трех сторон заходил, чтобы исключить вероятность собственных кривых рук.
12 s03
 
02.08.18
17:26
(11) тогда для начала пересчитать не только текущие, а все итоги, как немногим выше предлагают
13 tlaloc
 
02.08.18
17:27
Еще раз. Вероятность опечатки/перепутывания параметров и прочего полностью исключена. Тут нас пять человек, бьемся уже день, уж наверное мы все перепроверили до буквы
14 hhhh
 
02.08.18
17:27
(11) "Пересчитывал так: РегистрыНакопления.[ИмяРегистра].ПересчитатьТекущиеИтоги()" - все поржали. Где февраль и где текущие итоги.

Пересчитай итоги в конфигураторе Тестирование и исправление.
15 tlaloc
 
02.08.18
17:28
(7) Запустил. Но это, как вы понимаете, не быстро. Отписаться раньше чем через час не смогу.
16 Быдло замкадное
 
02.08.18
17:35
РегистрыНакопления.[ИмяРегистра].ПересчитатьИтоги()
ИмяРегистра какое?
17 s03
 
02.08.18
17:38
(16) судя по запросу из (0) - ПартииТоваровНаСкладахБухгалтерскийУчет
18 Быдло замкадное
 
02.08.18
17:43
(17) а по факту может быть ПартииТоваровНаСкладахНалоговыйУчет например) тут все нужно бдить
19 Buster007
 
02.08.18
17:57
ДатаКон" 02.02.2018 23:59:59
а если поставить 03.02.2018 0000000? в первом и втором случае
20 Rico_1C
 
02.08.18
18:06
По некоторым позициям не было оборотов, вот и не попали в Итог !..
Посмотри по каким позициям 01.02 - не было оборотов и какой их остаток на конец 02.02!..
21 tesseract
 
02.08.18
18:30
(13) Жесть. Уже бы давно переписали на таблицы  остатков и оборотов перевели и проверили.
22 tlaloc
 
02.08.18
20:40
(20) Секунду. Мало ли что там не попало в оборот, какая разница? Остаток же на конкретную дату не зависит от оборотов, он зафиксирован.
23 tlaloc
 
02.08.18
20:40
Пересчет итогов еще идет. База очень здоровая.
24 tlaloc
 
02.08.18
20:42
(18) Ненене. Именно БУ. Кстати, надо УУ посмотреть потом будет.
25 hhhh
 
02.08.18
23:52
(22) остатки зафиксированы только на 1е число каждого месяца. На 2е считается из оборотов.
26 Cyberhawk
 
03.08.18
00:15
Иногда помогает только полный пересчет итогов из конфигуратора (ТиИ).
Программным кодом - не помогает.
28 tlaloc
 
03.08.18
10:15
(25) По твоей логике остатки вообще лучше брать только на первое число месяца, на остальные числа остатки не зафиксированы, нестабильны, и могут разъехаться
29 Cyberhawk
 
03.08.18
10:16
Чем дело кончилось? Из-за разных оборотов все-таки разные остатки получаются?
30 hhhh
 
03.08.18
10:19
(28) ну итоги хранятся в базе в разрезе месяцев, вы конечно не знали. Если нужно подситать остаток например на 02.02, берется остаток на 01.03 и вычитаются обороты за нужные дни февраля.
31 hhhh
 
03.08.18
10:20
(28) у вас как раз наоборот ситуация: остатки неправильно зафиксированы. Поэтому разъехалось. А обороты вообще не причем, зря вы на них бочку катите.
32 Cyberhawk
 
03.08.18
10:20
(30) Вроде же берет на дату, откуда ближе посчитать?
33 tlaloc
 
03.08.18
10:23
Короче, пересчет итогов работал всю ночь, только что вылетел с конфликтом блокировок транзакций. Запрос по-прежнему показывает ту же лажу.
34 Cyberhawk
 
03.08.18
10:32
Смысл будет дальше обсуждать, когда сказанное в (26) будет сделано. Какие проблемы сделать копию и в ней это выполнить и проверить после?
35 s03
 
03.08.18
10:33
(33) Всю ночь, наверное запускал пересчет из конфигуратора по всем-всем регистрам. Запусти пересчет итогов только по этому регистру, но не только текущий, а всех.
36 Cyberhawk
 
03.08.18
10:34
(35) При пересчете из конфигуратора, увы, нельзя указать, по какому регистру пересчитать. А все остальные "выборочные" пересчеты (из режима предприятия программно или во встроенных в платформу обработках) бывает, что не помогает. И это иногда печально (что приходится в конфигураторе дрочить все-все регистры).
37 trooba
 
03.08.18
10:35
(0) СКД ?
38 s03
 
03.08.18
10:42
(36) Да, бывает. Но проверить полный пересчет по данному регистру для начала тоже можно и вот если и это не поможет (это ведь достаточно быстро будет и результат будет проверен уже очень скоро), то уже дорога в ТИИ
39 trooba
 
03.08.18
10:42
(0) Почитай и ты поймешь: http://life1c.ru/post/323
40 unregistered
 
03.08.18
11:03
(39) Что он должен понять?...
41 Cyberhawk
 
03.08.18
11:15
(39) Там на последней картинке перепутаны местами остатки и обороты
42 ptiz
 
03.08.18
12:38
(33) Через "Управление итогами" сдвинь итоги по этому регистру на начало года, а потом верни на текущий месяц. Так быстрее будет.
43 hhhh
 
03.08.18
12:49
(32) не
44 tlaloc
 
03.08.18
13:01
В общем, если ДатаНач = 01.02.2018 00:00:00, то 98, если больше на секунду, то 106.
45 hhhh
 
03.08.18
13:17
(44) значит рассогласованы остатки на 01.02 и на 01.03. Ну чего вы как фома неверующий. Этой ошибке уже 20 лет. Лечится элементарно, пересчетом итогов в конфигураторе. Вы будете еще неделю на форуме спрашивать, чего-то ждать?
46 Cyberhawk
 
03.08.18
13:20
(45) Самое западло в том, что это особо никак не диагностируется - пользователь обычно замечает.
Особенно в инфобазах, где идет интенсивная запись наборов записей в режиме загрузки (в ЦБ из сети филиалов, например), особенно на регистре бухгалтерии. Такое ощущение, что платформа где-то лажает.
47 rudnitskij
 
03.08.18
13:23
А зачем получать остатки из регистра ОстаткиИОбороты? Из Оборотов их разве нельзя получить?
48 rudnitskij
 
03.08.18
13:23
(47) из Остатков, конечно же...
49 s03
 
03.08.18
13:31
(48) там ещё Приход и Расход получают
50 Cyberhawk
 
04.08.18
23:44
(48) Во всяких отчетах типа ОСВ так и делают - получают остатки из остатков, обороты - из оборотов. Потому что, видимо, из остатков и оборотов когда все получено, то гемора больше в СКД это все слепить.
Но в этих СКДшных ОСВ гемора и так хватает.
51 tesseract
 
05.08.18
08:24
(50) Это из-за того, что в ОСВ у счетов параметры счета оборотный/не обороты  в режиме предприятия настраивается. Тут не угадаешь есть остатки по счету или нет.
Ошибка? Это не ошибка, это системная функция.