Неправильные остатки таблицы ОстаткиИОбороты в СКД #811033


#0 by Dwarrior
Здравствуйте! Имеем простой вроде бы отчет СКД с запросом: ВЫБРАТЬ РАЗЛИЧНЫЕ     ДолгТараОстаткиИОбороты.Контрагент,     ДолгТараОстаткиИОбороты.КоличествоПриход,     ДолгТараОстаткиИОбороты.КоличествоНачальныйОстаток,     ДолгТараОстаткиИОбороты.КоличествоКонечныйОстаток,     ДолгТараОстаткиИОбороты.Регистратор.Сделка КАК ЗаказПокупателя Проблема - неправильно рассчитываются остатки на начало и конец при определенных группировках. А точнее - они складываются в разрезе регистраторов, например. Прочитал связанную статью ИТС "Типичные проблемы при расчете остатков". Не помогло. Что интересно - если убираем из запроса условие "И ДолгТараОстаткиИОбороты.Регистратор.Сделка <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)" - остатки считаются правильно.
#1 by mistеr
Как ты хочешь получить правильные остатки, выкинув часть данных? Перенеси условие в отбор СКД в группировке по регистратору.
#2 by Dwarrior
Да не, понятно, что изменение запроса это эксперименты с целью понять. А если группировки по регистратору не будет? Отбор в таком случае сработает?
#3 by Мандалай
Ищи на ИТС статью про получение остатков на начало и конец периода.
#4 by Dwarrior
Нашел и прочитал. Все рекомендации сделал
#5 by Dwarrior
апну в надежде на новогоднее чудо:)
#6 by piter3
Не сделал судя пл
#7 by piter3
Что в консоли?
#8 by piter3
И какой смысл остатку по доку?
#9 by perester
Прикрути костыли - сделай запрос сначала по наименованию потом по его в Вт, а с Вт отбор по регистратору, ну или через вложенный запрос не сказать что верно, да и вообще не есть хорошо, но результат должен получиться
#10 by mehfk
Не вижу в запросе того, что ты должен был сделать, прочитав указанную тобой статью.
#12 by kuzyara
нужно добавить поле ПериодСекунда А вот ещё запрос непонятный из ут10: Зачем здесь используется ЕстьNull?
#13 by Dwarrior
Так есть же ПериодСекунда в запросе, 3 поле снизу
#14 by Dwarrior
а как лучше можно? Посоветуйте пожалуйста
#15 by Dwarrior
Как вариант, попробую, спасибо
#16 by nordbox
Убери отбор ГДЕ читай винимательно:
#17 by RainWoman
В СКД проблема при работе с виртуальной таблицей ОстаткиИОбороты также может быть связана с настройкой свойства МетодДополнения.
#18 by Dwarrior
Я бы с удовольствием указал отбор внутрь виртуальной таблицы, но там только измерения. Регистратора там нет, а мне нужен отбор по полю Сделка регистратора.
#19 by mehfk
Нет ножек - нет мультиков. Хуёвый код - хуёвый результат.
#20 by mistеr
Для поля Сделка роль настроена по ?
#21 by Dwarrior
Не Сделка, а ЗаказПокупателя. Да, Измерение
#22 by mistеr
Не просто измерение, а с родителем Регистратор.
#23 by Dwarrior
Сделал, не помогло. Вот что еще заметил - если в отчете хоть где есть группировка по Регистратору (на любом уровне) - то остатки считаются верно. Например 1.Контрагент, 2.Регистратор. Или 1. Регистратор 2.Контрагент. Однако если Регистратора нет в группировках - остаток неправильный. Например 1.Контрагент, 2.Маршрут
#24 by Dwarrior
Да, сделал еще через временную таблицу, т.е. ОстаткиИОбороты детализируются до Регистратора, выгружаются в ВТ, а потом из ВТ выбираются - тоже не помогло особо. Даже с правильной ролью поля ЗаказПокупателя.
#25 by mistеr
Ты плохо читал . Регистратор должен быть.
#26 by Dwarrior
Извините за тупость:) Не совсем понятно, где должен быть Регистратор? В полях выборки есть. Роль у него - "Период,1".
#27 by mistеr
В группировках. Но у тебя еще концептуальная проблема с отбором по заказам. Чтобы иметь возможность получать правильные остатки в разрезе заказов (а отбор это частный случай), нужно иметь заказ в измерениях регистра.
#28 by Dwarrior
Т.е. как я понял, запросом не обойтись, надо менять структуру регистра? А почему не работает через временную таблицу? Т.е. вытащить линейные записи (по регистратору) в ВТ, отобрав по непустому Заказу, а потом выбрать уже из ВТ. Там-то уже отборов накладывать не надо, просто полная выборка всех записей. А получается, поведение отчета такое же, как если бы я выбирал из ОстаткиИОбороты напрямую (С регистратором правильно, без регистратора - неправильно)
#29 by mehfk
А теперь вычеркни несколько регистраторов, что будет с НачОст и КонОст ?
#30 by mistеr
Если выбрать из регистра остатки в разрезе регистраторов, то они будут верными, даже если часть регистраторов выкинуть. А если свернуть остатки по чему-либо еще (контрагенту, например), то верных остатков, не учитывающих регистраторы без заказов, нет НИГДЕ. В регистре есть только остатки, учитывающие все движения. И СКД тебе эти несуществующие остатки из воздуха не выдумает. Поэтому добавляй заказ в регистр. Или не пиши в регистр движения без заказов.
#31 by Dwarrior
Спасибо, так и поступим. Ограничу запись в регистр реализаций без заказов
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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