Создание запроса - "поступления/продажи в разрезе топа"

1. Jovi 21.04.20 14:10 Сейчас в теме
Добрый день. Начинающий программист. Хочу решить задачу и хотелось бы у грамотных людей уточнить ход выполнения задачи:

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

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

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

Я, так понимаю, должен работать с документами "поступление товаров и услуг" и "реализация товаров и услуг", но в пределах регистра. Подходит ли регистр накопления "ТоварыОрганизаций" для решения задачи?

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

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

СГРУППИРОВАТЬ ПО
	ТоварыОрганизаций.Номенклатура.Бренд,
	ТоварыОрганизаций.Номенклатура.Код,
	ТоварыОрганизаций.Номенклатура,
	ТОП.Свойство

УПОРЯДОЧИТЬ ПО
	Бренд
Показать


Ещё вопрос по этому условию : "и если кол-во документов "поступлений товара" больше 1, за указанный период времени.". Как задать его?
И с этим тоже не могу понять :" (продажа-возврат, не равно продажа) "?
По теме из базы знаний
Найденные решения
24. Jovi 08.05.20 15:20 Сейчас в теме
(23) нашёл ошибку. Нужно
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1
заменить на
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1
, так как если будет Поступление товаров и услуг, от которого пойдет более одного движения в Регистр.Закупки с TOPGP, то каждое из этих движений увеличит результат функции КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг). То есть, документ будет один, а движений несколько. А в задаче условие "и если кол-во документов "поступлений товара" больше 1", нужно считать именно документы Поступления, а не сами поступления.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. VictorRGB2 14 21.04.20 15:47 Сейчас в теме
(1) лучше для поступлений использовать регистр Закупки, а для продаж Продажи, как они именно обзываются у вас в конфигурации уточняйте
сделать пакетный запрос отдельными частями по разным регистрам с последующим соединением по номенклатуре или два запроса с объединением
6. Jovi 21.04.20 16:01 Сейчас в теме
(3) Хорошо. Сейчас попробую. А что касается:
Ещё вопрос по этому условию : "и если кол-во документов "поступлений товара" больше 1, за указанный период времени.". Как задать его?
И с этим тоже не могу понять :" (продажа-возврат, не равно продажа) "?
7. Jovi 21.04.20 16:20 Сейчас в теме
(3) Если я Вас правильно понял, то получается так:
ВЫБРАТЬ
	ЗначенияСвойствОбъектов.Объект КАК Объект,
	ЗначенияСвойствОбъектов.Свойство КАК Свойство
ПОМЕСТИТЬ ТОП
ИЗ
	РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
	ЗначенияСвойствОбъектов.Значение ССЫЛКА Справочник.ЗначенияСвойствОбъектов
	И ЗначенияСвойствОбъектов.Свойство = &ТОП
;

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

СГРУППИРОВАТЬ ПО
	Закупки.Номенклатура.Бренд,
	Закупки.Номенклатура.Код,
	Закупки.Номенклатура,
	ТОП.Свойство
;

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

СГРУППИРОВАТЬ ПО
	ТОП.Свойство,
	Продажи.Номенклатура,
	Продажи.Номенклатура.Код,
	Продажи.Номенклатура.Бренд
;

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

УПОРЯДОЧИТЬ ПО
	Бренд
Показать
8. VictorRGB2 14 21.04.20 16:28 Сейчас в теме
(7)
ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект КАК Объект,
ЗначенияСвойствОбъектов.Свойство КАК Свойство
ПОМЕСТИТЬ ТОП
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
ЗначенияСвойствОбъектов.Значение ССЫЛКА Справочник.ЗначенияСвойствОбъектов
И ЗначенияСвойствОбъектов.Свойство = &ТОП
;


единственно,я бы вот это убрал совсем

а внутреннее соединение по ТОП заменил бы на левое из РегистрСведений.ЗначенияСвойствОбъектов ПО ЗначенияСвойствОбъектов.Объект
а ЗначенияСвойствОбъектов.Свойство = &ТОП вынес в условвие
9. Jovi 21.04.20 16:44 Сейчас в теме
(8) Такой вариант выполняется в 100 раз (это не образное выражение) дольше:
ВЫБРАТЬ
	Закупки.Номенклатура.Бренд КАК Бренд,
	Закупки.Номенклатура.Код КАК Код,
	Закупки.Номенклатура КАК Номенклатура,
	СУММА(Закупки.Количество) КАК КоличествоЗакупаемогоТовара,
	ЗначенияСвойствОбъектов.Свойство КАК TOPGP
ПОМЕСТИТЬ Закупки
ИЗ
	РегистрНакопления.Закупки КАК Закупки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		ПО Закупки.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
	Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
	И Закупки.Период МЕЖДУ &ПериодНачало И &ПериодОкончание

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

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

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

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

УПОРЯДОЧИТЬ ПО
	Бренд
Показать


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

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

СГРУППИРОВАТЬ ПО
    Закупки.Номенклатура.Бренд,
    Закупки.Номенклатура.Код,
    Закупки.Номенклатура,
    ТОП.Свойство
;

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

СГРУППИРОВАТЬ ПО
    ТОП.Свойство,
    Продажи.Номенклатура,
    Продажи.Номенклатура.Код,
    Продажи.Номенклатура.Бренд
;

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

УПОРЯДОЧИТЬ ПО
    Бренд
Показать
10. VictorRGB2 14 21.04.20 16:52 Сейчас в теме
(9) если с внутренним соединением результаты верные, то используйте его
11. Jovi 21.04.20 16:55 Сейчас в теме
(10) Результаты совпадают в двух запросах, но первый выполняется очень долго.
Подскажите ещё с :
"и если кол-во документов "поступлений товара" больше 1, за указанный период времени.". Как задать его? За период я задаю, а вот как проверить на количество документов?
И с этим тоже не могу понять :" (продажа-возврат, не равно продажа) "?
12. VictorRGB2 14 21.04.20 17:21 Сейчас в теме
(11) больше 1 - это, например, КОЛИЧЕСТВО(Закупки.Регистратор.Ссылка)
продажа-возврат <> продажа - тут надо данные возврата получить и просто вычислить арифметически через ВЫБОР КОГДА
13. Jovi 21.04.20 17:24 Сейчас в теме
(12) Спасибо. Буду пробовать.
14. Jovi 21.04.20 18:07 Сейчас в теме
(12)
продажа-возврат <> продажа - тут надо данные возврата получить и просто вычислить арифметически через ВЫБОР КОГДА


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

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

СГРУППИРОВАТЬ ПО
	ТОП.Свойство,
	Продажи.Номенклатура,
	Продажи.Номенклатура.Код,
	Продажи.Номенклатура.Бренд
Показать


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

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

СГРУППИРОВАТЬ ПО
	ТОП.Свойство,
	Продажи.Номенклатура,
	Продажи.Номенклатура.Код,
	Продажи.Номенклатура.Бренд
Показать


Дальше я где должен выбор сделать? В условии основного запроса:
ВЫБРАТЬ
    Закупки.Бренд КАК Бренд,
    Закупки.Код КАК Код,
    Закупки.Номенклатура КАК Номенклатура,
    Закупки.КоличествоЗакупаемогоТовара КАК КоличествоЗакупаемогоТовара,
    Продажи.КоличествоПроданногоТовара КАК КоличествоПроданногоТовара,
    Закупки.Топ КАК Топ
ИЗ
    Закупки КАК Закупки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Продажи КАК Продажи
        ПО Закупки.Номенклатура = Продажи.Номенклатура

УПОРЯДОЧИТЬ ПО
    Бренд
Показать


Или в поле
Продажи.КоличествоПроданногоТовара КАК КоличествоПроданногоТовара
основного запроса?
15. VictorRGB2 14 21.04.20 18:18 Сейчас в теме
(14) как-то так

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

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
    Продажи.Номенклатура.Бренд КАК Бренд,
    Продажи.Номенклатура.Код КАК Код,
    Продажи.Номенклатура КАК Номенклатура,
    СУММА(Продажи.Количество) КАК КоличествоПроданногоТовара,
    ТОП.Свойство КАК Топ
ПОМЕСТИТЬ тзПродажи
ИЗ
    ТОП КАК ТОП
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
        ПО ТОП.Объект = Продажи.Номенклатура
ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
;
/////////////////////////////////////////
ВЫБРАТЬ
    Закупки.Бренд КАК Бренд,
    Закупки.Код КАК Код,
    Закупки.Номенклатура КАК Номенклатура,
    Закупки.КоличествоЗакупаемогоТовара КАК КоличествоЗакупаемогоТовара,
    Продажи.КоличествоПроданногоТовара КАК КоличествоПроданногоТовара,
    Возвраты.КоличествоВозвращённогоТовара КАК КоличествоВозвращённогоТовара,
    ВЫБОР 
       КОГДА Продажи.КоличествоПроданногоТовара - Возвраты.КоличествоВозвращённогоТовара <> Продажи.КоличествоПроданногоТовара
          ТОГДА "продажи больше, чем вернули"
       ИНАЧЕ "продали меньше, чем вернули"
    КОНЕЦ
    Закупки.Топ КАК Топ
ИЗ
    Закупки КАК Закупки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ тзПродажи КАК Продажи
        ПО Закупки.Номенклатура = Продажи.Номенклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ тзВозвраты КАК Возвраты
        ПО Закупки.Номенклатура = Возвраты.Номенклатура
Показать


или через ОБЪЕДИНИТЬ выборки по возвратам и продажам
16. Jovi 22.04.20 14:07 Сейчас в теме
(15) Мне кажется, не совсем это подойдёт мне. Так как по количеству мне нужно только две строки:
1. сумма (по кол-ву) закупаемого товара
2. сумма (по кол-ву) проданного товара. (продажа-возврат, не равно продажа) ЕСЛИ ПРОДАЖ НЕ БЫЛО, ТО = ПУСТО.
17. VictorRGB2 14 22.04.20 14:24 Сейчас в теме
(16) значит не так понял или не так объяснили )
покрутите результаты запроса с лишними данными, без лишних данных
вывести в табличный документ только нужные колонки не составит труда
18. Jovi 22.04.20 14:28 Сейчас в теме
(17) За колонки я не переживаю, но вот никак не могу разобраться с добавлением этого условия
2. сумма (по кол-ву) проданного товара. (продажа-возврат, не равно продажа) ЕСЛИ ПРОДАЖ НЕ БЫЛО, ТО = ПУСТО.
в мой запрос, так как он меня устраивает.

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

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

СГРУППИРОВАТЬ ПО
	Закупки.Номенклатура.Бренд,
	Закупки.Номенклатура.Код,
	Закупки.Номенклатура,
	ТОП.TOPGP
;

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

СГРУППИРОВАТЬ ПО
	Продажи.Номенклатура,
	Продажи.Номенклатура.Код,
	Продажи.Номенклатура.Бренд,
	ТОП.TOPGP
;

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

УПОРЯДОЧИТЬ ПО
	Бренд
Показать
19. VictorRGB2 14 22.04.20 14:33 Сейчас в теме
(18) я в таких случаях беру карандаши и начинаю рисовать... схему условия, граничные условия, входящие данные, что получается в результате если подать в условие то, а если это...
и становится понятно, что не хватает
20. Jovi 08.05.20 11:57 Сейчас в теме
(19) Добрый день. Извините что ещё раз вас беспокою, получилось сделать всё и добиться нужно результат (как я считал), но вот руководитель говорит, что есть ошибка, а я уже голову сломал в попытках найти её. Не могли бы Вы подсказать, где (возможно) вы считаете, что есть ошибка?
ВЫБРАТЬ
	Закупки.Номенклатура КАК Номенклатура,
	СУММА(Закупки.Количество) КАК КоличествоЗакупаемогоТовара,
	ЗначенияСвойствОбъектов.Свойство КАК TOPGP
ПОМЕСТИТЬ Закупки
ИЗ
	РегистрНакопления.Закупки КАК Закупки
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		ПО Закупки.Номенклатура = ЗначенияСвойствОбъектов.Объект
ГДЕ
	Закупки.Период МЕЖДУ &ПериодНачало И &ПериодОкончание
	И ЗначенияСвойствОбъектов.Значение = &TOPGP
	И Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

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

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

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

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

УПОРЯДОЧИТЬ ПО
	Бренд
Показать
21. VictorRGB2 14 08.05.20 12:18 Сейчас в теме
(20) добрый
разве что закупки номенклатуры, кроме периода еще и по бренду (свойству отбираются), а продажи номенклатуры только по периоду
получается несоответствие по товарам закупленным и проданным
возможно в этом ошибка?
22. Jovi 08.05.20 12:27 Сейчас в теме
(21) А разве при
 Закупки КАК Закупки
        ЛЕВОЕ СОЕДИНЕНИЕ Продажи КАК Продажи
        ПО Закупки.Номенклатура = Продажи.Номенклатура

к закупкам не подберутся продажи с одинаковым свойством ?

Плюс я пробовал в 3м пакете соединить (внутренним) закупки с значениями характеристик одновременно с продажи (внутреннее) и значения характеристик, то выдавало ошибку, что связь
продажи (внутреннее) и значения характеристик
противоречит связи
(внутренним) закупки с значениями характеристик
. А если сделать разными пакетами (то есть в одном закупки + характеристики, в другом продажи + характеристики, и всё это соединить в 3м пакете), то выходит тот же результат, но конструкция получается не оптимальной.
23. VictorRGB2 14 08.05.20 13:33 Сейчас в теме
(22) тогда не вижу ошибок, вроде все верно
спросите руководителя, что ему не нравится
24. Jovi 08.05.20 15:20 Сейчас в теме
(23) нашёл ошибку. Нужно
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) > 1
заменить на
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Закупки.Регистратор) > 1
, так как если будет Поступление товаров и услуг, от которого пойдет более одного движения в Регистр.Закупки с TOPGP, то каждое из этих движений увеличит результат функции КОЛИЧЕСТВО(Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг). То есть, документ будет один, а движений несколько. А в задаче условие "и если кол-во документов "поступлений товара" больше 1", нужно считать именно документы Поступления, а не сами поступления.
2. ab_initio 95 21.04.20 15:47 Сейчас в теме
Что за конфигурация? Как она называется?
4. Jovi 21.04.20 15:48 Сейчас в теме
5. ab_initio 95 21.04.20 15:48 Сейчас в теме
(4)
Trade (10.3.29.1)

Тогда смотри 3-й пост.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот