Имя: Пароль:
1C
1С v8
Запрос - "поступления/продажи в разрезе топа"
0 Bon Jovi
 
08.05.20
11:45
Добрый день. Начинающий программист. Попробовал решить задачу и вроде бы всё верно, но руководитель говорит, что есть ошибка. Я уже голову сломал, но не могу её найти. Вроде результат верный получается. Хотелось бы услышать мнения грамотных людей, может быть Вы сможете мне помочь?:

на входе задаем параметры:
период - начало ___ дата
период - окончание ___ дата
ТОР GP - ___ EX

Система анализирует кол-во поступлений товара с привязкой по заданному ТОПУ, и если кол-во документов "поступлений товара" больше 1, за указанный период времени. На выходе получаем КОЛОНКИ:

1. бренд (сортировка от А до Я)
2. код
3. номенклатура
4. сумма (по кол-ву) закупаемого товара
5. сумма (по кол-ву) проданного товара. (продажа-возврат, не равно продажа) ЕСЛИ ПРОДАЖ НЕ БЫЛО, ТО = ПУСТО.
6. TOP GP

Вот мой код:
ВЫБРАТЬ
    Закупки.Номенклатура КАК Номенклатура,
    СУММА(Закупки.Количество) КАК КоличествоЗакупаемогоТовара,
    ЗначенияСвойствОбъектов.Свойство КАК TOPGP
ПОМЕСТИТЬ Закупки
ИЗ
    РегистрНакопления.Закупки КАК Закупки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО Закупки.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
    Закупки.Период МЕЖДУ &ПериодНачало И &ПериодОкончание
    И ЗначенияСвойствОбъектов.Значение = &TOPGP
    И Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
    Закупки.Номенклатура,
    ЗначенияСвойствОбъектов.Свойство

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    ПродажиОбороты.КоличествоОборот КАК КоличествоПроданногоТовара
ПОМЕСТИТЬ Продажи
ИЗ
    РегистрНакопления.Продажи.Обороты(&ПериодНачало, &ПериодОкончание, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    Закупки.Номенклатура.Бренд КАК Бренд,
    Закупки.Номенклатура.Код КАК Код,
    Закупки.Номенклатура КАК Номенклатура,
    Закупки.КоличествоЗакупаемогоТовара КАК КоличествоЗакупаемогоТовара,
    Продажи.КоличествоПроданногоТовара КАК КоличествоПроданногоТовара,
    Закупки.TOPGP КАК TOPGP
ИЗ
    Закупки КАК Закупки
        ЛЕВОЕ СОЕДИНЕНИЕ Продажи КАК Продажи
        ПО Закупки.Номенклатура = Продажи.Номенклатура

УПОРЯДОЧИТЬ ПО
    НоменклатураБренд
1 Bon Jovi
 
08.05.20
13:02
УПОРЯДОЧИТЬ ПО
    НоменклатураБренд
не ошибка, криво вставил, правильно
УПОРЯДОЧИТЬ ПО
    Бренд
2 Ненавижу 1С
 
гуру
08.05.20
13:08
>>Попробовал решить задачу и вроде бы всё верно, но руководитель говорит, что есть ошибка

это курсовая работа?
3 Bon Jovi
 
08.05.20
13:10
[quote]это курсовая работа?[/quote]
нет. а это что то меняет?
4 Bon Jovi
 
08.05.20
13:11
(2) нет. а это что то меняет?
5 Bon Jovi
 
08.05.20
15:16
Решение:
Нужно всего лишь
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1
, заменить на
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1