Имя: Пароль:
1C
1С v8
СКД подсчет количества чеков без частичного возврата
0 Pchelinka
 
10.12.20
20:51
Здравствуйте, форумчане, нужна помощь коллективного разума:)

Задача: в отчете скд посчитать количество чеков без учета чеков с частичным возвратом. Т.е.если по чеку продажи не вся продукция вернулась его не учитываем, причем, если второй чек возврата пройдет по данной продаже тем самым обеспечив полный возврат, то этот чек учитываем.
Документ, который проводит продадажу и возврат -ЧекККМ, по ВидуОперации определяем продажа или возврат. В случае возврата, в документе есть ссылочное поле на продажу ЧекККМПродажа.
Для решения данной задачи я думаю определить все возвраты в которых ссумировать количество товара и сгруппировать по ссылке дока продажи. Далее сравнить продажу и возврат чтобы понять что является полным возвратом, для этого сопоставить док продажи и из возврата по ссылке на док продажу(те соединение по доку продажи) сравнить количество общее по доку равно или нет.
Отчет у меня уже работал, там было просто количество различных чеков продажи минус количество различных чеков возврата. Теперь нужно надстроить в этот отчет механизм определения что чек возврата надо исключить или нет из количества продаж.У меня там пакет запросов в раздел где определяется количество чеков возврата, я добавляю Вложенный запрос:

ВЫБРАТЬ
    ЧекККМТоварыПродИВозврат.Ссылка КАК Ссылка,
    СУММА(ЧекККМТоварыПродИВозврат.Количество) КАК КоличествоПродаж,
    NULL КАК КоличествоВозврат
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТоварыПродИВозврат
ГДЕ
    ЧекККМТоварыПродИВозврат.Ссылка.Дата МЕЖДУ &Дата1ПП И &Дата2
    И ЧекККМТоварыПродИВозврат.Ссылка.Проведен
    И ЧекККМТоварыПродИВозврат.Ссылка.ВидОперации = &ВидПродажа//Продажа
{ГДЕ
    ЧекККМТоварыПродИВозврат.Номенклатура.*,
    ЧекККМТоварыПродИВозврат.Ссылка.Склад.*,
    ЧекККМТоварыПродИВозврат.Номенклатура.ТорговыйБренд.* КАК ТорговыйБренд}

СГРУППИРОВАТЬ ПО
    ЧекККМТоварыПродИВозврат.Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЧекККМТоварыПродИВозврат.Ссылка.ЧекККМПродажа.Ссылка,
    NULL,
    СУММА(ЧекККМТоварыПродИВозврат.Количество)
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТоварыПродИВозврат
ГДЕ
    ЧекККМТоварыПродИВозврат.Ссылка.Дата МЕЖДУ &Дата1ПП И &Дата2
    И ЧекККМТоварыПродИВозврат.Ссылка.Проведен
    И ЧекККМТоварыПродИВозврат.Ссылка.ВидОперации <> &ВидПродажа//Возврат
{ГДЕ
    ЧекККМТоварыПродИВозврат.Номенклатура.*,
    ЧекККМТоварыПродИВозврат.Номенклатура.ТорговыйБренд.* КАК ТорговыйБренд,
    ЧекККМТоварыПродИВозврат.Ссылка.Склад.*}

СГРУППИРОВАТЬ ПО
    ЧекККМТоварыПродИВозврат.Ссылка.ЧекККМПродажа.Ссылка /////ПродажаПоКоторойПолныйВозврат

Соединяю запрос(чек возврата за период) с вложенным запросом по ссылке на чек продажи.
Пытаюсь определить какой чек нужно брать для посчета количества разных чеков возврата:
ВЫБОР
    КОГДА ЧекККМТовары.Ссылка.ЧекККМПродажа = ПродажаПоКоторойПолныйВозврат.Ссылка
            И ПродажаПоКоторойПолныйВозврат.КоличествоПродаж = ПродажаПоКоторойПолныйВозврат.КоличествоВозврат
        ТОГДА ЧекККМТовары.Ссылка
    ИНАЧЕ ""
КОНЕЦ

В итоге показывает всегда один чек возврата как полный, а я знаю что у меня 4 полный возврат и 1 частичный((
1 Pchelinka
 
10.12.20
21:17
может через вложенный запрос это гиблое дело... какой вариант подскажите в данной ситуации?