СКД: Как заставить СКД правильно считать итоги при исп. конструкции "Выбор когда тогда"? #428992


#0 by DSem
Всем доброго дня! УТ 10.3.7.8, 8.1.14.72 Пишу простенький отчет по остаткам и оборотам товаров. Выводимые поля: Номенклатура, склад, Регистратор. Показатели начальный и конечный остаток нужно взять из регистра. Приход нужно разделить на 2 части - Приход от поставщиков и прочий приход. Расход нужно разделить на 2 части - продажа покупателям и прочий расход. Вот текст запроса:    ВЫБОР        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг    ВЫБОР        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЧекККМ    ВЫБОР        КОГДА (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг)    ВЫБОР        КОГДА (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг)                И (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)                И (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЧекККМ) Все просто. Однако при выводе отчета без детальных записей итоги по полям Остаток начальный и остаток конечный считаются неправильно! Пример отчета с использованием детальных записей. (правильно) Н.о. прих(пост). Прих(Проч). Расх(Покуп). Расх(проч). К.О. 10   30          20          15           5           40 40   30          50          20           20          80 80   50          120         50           10          190 _________________________________________________________ 10   110         190         85           35          190 Пример отчета без использования детальных записей. (неправильно!) Н.о. прих(пост). Прих(Проч). Расх(Покуп). Расх(проч). К.О. _________________________________________________________ 130  110         190         85           35          310 Ошибка появляется при вводе в текст запроса конструкции типа "Выбор когда тогда", без этой конструкции все работает нормально. Подскажите, кто в курсе, как побороть проблему? Спасибо.
#1 by Абырвалг
#2 by IronDemon
Отдельно считать остатки и обороты. Обороты считать примерно так. ВЫБРАТЬ    ВложенныйЗапрос.Номенклатура,    ВложенныйЗапрос.Склад,        ТоварыОбороты.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары            NULL        (ТоварыОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг                ИЛИ ТоварыОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)            NULL        ТоварыОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя            NULL        ТоварыОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг        NULL        ТоварыОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровПоставщику            NULL        ТоварыОбороты.Регистратор ССЫЛКА Документ.ПриходныйОрдерНаТовары            NULL        ТоварыНаОХ.Регистратор ССЫЛКА Документ.ПриходныйОрдерНаТовары            NULL        ТоварыНаОХ.Регистратор ССЫЛКА Документ.РасходныйОрдерНаТовары            ТоварыНаОХ.КоличествоРасход
#3 by DSem
, Спасибо. в QLgKR(Пост 9) Предложил, что можно через вычисляемые поля. Подскажите, если в курсе, кой текст написать в вычисляемых полях? СКД не понимает слова "Ссылка". Просто мне кажется, что это самы простой вариант...
#4 by IronDemon
Остатки связать левым с оборотами.
#5 by DSem
, Спасибо, разобрался. Сделал через левое соединение. Все работает.
#6 by DSem
Доброго дня! А как сделать так, чтобы правильно считал по периодам - например перод месяц?
#7 by DSem
При выводе только номенклатуры или номенклатуры с детальными записями, все работает правильно. А если развернуть отчет по месяцам - то все Нач. и кон. остатки, как на уровне номенклатуры, так и на уровне итогов считаются неправильно.
#8 by DSem
Fg
#9 by IronDemon
Запрос для остатков:    ТоварыОстаткиИОбороты.КоличествоКонечныйОстаток * ТоварыОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Вес КАК КоличествоКонечныйОстатокВес
#10 by IronDemon
Естественно для полей установлена роль "КонОст, Количество", "НачОст, Количество", "Период, 1, Доп" и т.д.
#11 by DSem
Вот 2 моих запроса: Запрос для получ. оборотов:    ВЫБОР        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг            ТОГДА ВЫБОР                    КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор.Контрагент В (&МассивНедопустимыхКонтрагентов)                КОНЕЦ        КОГДА (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг)    ВЫБОР        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЧекККМ            ТОГДА ВЫБОР                    КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор.Контрагент В (&МассивНедопустимыхКонтрагентов)                КОНЕЦ        КОГДА (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг)    ВЫБОР        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ЧекККМ            ТОГДА ВЫБОР                    КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор.Контрагент В (&МассивНедопустимыхКонтрагентов)    ВЫБОР        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг            ТОГДА ВЫБОР                    КОГДА (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор.Контрагент В (&МассивНедопустимыхКонтрагентов))        ИЗ Запрос для получения остатков: ВЫБРАТЬ    ТоварыНаСкладахОстаткиИОбороты.Регистратор,    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
#12 by DSem
+ как их связать, чтобы считались правильные итоги по периоду?
#14 by IronDemon
Сделай два набора данных. Остатки и движения. Их соединишь по Номенклатура,ПериодДень,ПериодНеделя,ПериодМесяц
#15 by DSem
Сделал - Результат тот же..
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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