Имя: Пароль:
1C
 
Некорректные общие итоги СКД
0 Momus
 
06.05.21
09:00
Отчет на СКД, состоящий из двух наборов данных типа запрос: основной к виртуальной таблице остатки и обороты, дополнительный к виртуальной таблице оборотов (другого регистра). Связь осуществляется по регистратору. Проблема заключается в том, что в общих итогах конечный остаток (по всем складам) не равен сумме остаткам по каждому отдельному складу. Для поля "КонечныйОстаток", который берется из основного набора, задана роль "остатки"; для регистратора из двух наборов задана роль "Период, 1", при этом дополнительно выведены поля "ПериодСекунда". Если же убрать дополнительный набор данных, который нужен для вывода одного ресурса, то итоги формируются корректно. Что можно еще проверить? Возможные ошибки сверял с https://its.1c.ru/db/metod8dev/content/3093/hdoc
1 acanta
 
06.05.21
09:04
Остатки на каждый регистратор рассчитываются, а затем суммируются?
2 Momus
 
06.05.21
09:05
(1) нет. Остатки только по первому набору
3 Momus
 
06.05.21
09:13
Ресурс из второго набора (КоличествоОборот) используется для расчета итогов по определенным группировкам для поля КоличествоПриход (для конечного остатка остается Сумма(КоличествоКонечныйОстаток)). Т.е. напрямую в отчет я его не вывожу. Если вообще не использовать этот ресурс, оставив лишь два набора данных, то итоги также некорректны
4 toypaul
 
гуру
06.05.21
09:27
Иногда помогает добавить в оба набора "виртуальный" разделитель и назначить ему роль "Измерение". Что-то вроде - Выбрать "Набор1" КАК Разделитель.
Но это работает в случае объединения. Не известно сработает ли это при связи наборов.

Вообще я предпочитаю делать такое в одном запросе
5 Momus
 
06.05.21
09:32
(4) старый отчет, сделанный до меня. Хотел разобраться, что пошло не так, но увы. В итоге забил и перенес в один запрос и ... то же самое!)
6 Momus
 
06.05.21
09:45
хз что за шляпа была. Я думал проблема в наборе данных, а оказалось в запросе. Переделал непонятный мне запрос, надеюсь это не костыль был.
Запрос был следующего вида:
Выбрать
    ...
Поместить ВТ
    ...;
Выбрать
    ВТ...
    ВТ.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ВТ.КоличествоПриход КАК КоличествоПриход,
    ВТ.КоличествоРасход КАК КоличествоРасход,
    ВТ.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    "" как ДопПоле
ИЗ
    ВТ
Объединить
    ВТ...
    0,
    0,
    0,
    0,
    Документ.ДопПоле
ИЗ
    ВТ
    Левое Соединение Документ
    по регистратор = Документ
7 DrZombi
 
гуру
06.05.21
09:47
(0) Отбор. Смотрите в отборы.
у СКД жутко отвратительно работает оптимизация, вернее она отлично работает, но жуть в том, что бывает, что не надо оптимизировать.

Если вы в СКД используете АВТОзаполнение, то при выставлении какого либо отбора, у вас будет при совпадении в наименовании будут обираться и в других таблицах, где возможно вы бы хотели иметь полный набор данных.  :)
8 Momus
 
06.05.21
09:49
(7) отбор только по периоду (в качестве параметра к виртуальным таблицам)
9 DrZombi
 
гуру
06.05.21
09:51
(8) Весь запрос покажи. Для начала.
10 Momus
 
06.05.21
10:05
(9) он огромный. По этой причине я изначально не хотел его менять, видимо и по этой причине до меня добавили новый набор данных. Сейчас уже вопрос неактуален. Сама схема запроса выше