Заменить Кассира на Продавца в отчете?

1. ravencrow 5 24.10.18 17:14 Сейчас в теме
Нужно в запросе заменить Кассира на Продавца, вот только проблема в том что Продавец это табличные данные в Чеке.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЧекиИПозицииПродажиВозврата.Чек КАК ЧекККМ,
	ЧекиИПозицииПродажиВозврата.Позиция КАК КоличествоПозиций,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекиИПозицииПродажиВозврата.Чек.Ссылка) = ТИП(Документ.ЧекККМ)
			ТОГДА ЧекиИПозицииПродажиВозврата.Позиция
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоПозицийПродажи,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекиИПозицииПродажиВозврата.Чек.Ссылка) = ТИП(Документ.ЧекККМВозврат)
			ТОГДА ЧекиИПозицииПродажиВозврата.Позиция
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоПозицийВозврата
ПОМЕСТИТЬ ЧекиИКоличествоПозиций
ИЗ
	(ВЫБРАТЬ
		ЧекиИПозиции.Чек КАК Чек,
		СУММА(ЧекиИПозиции.Позиция) КАК Позиция
	ИЗ
		(ВЫБРАТЬ РАЗЛИЧНЫЕ
			ЧекККМТовары.Ссылка КАК Чек,
			ЧекККМТовары.Номенклатура КАК Номенклатура,
			ЧекККМТовары.Характеристика КАК Характеристика,
			1 КАК Позиция
		ИЗ
			Документ.ЧекККМ.Товары КАК ЧекККМТовары
		ГДЕ
			ЧекККМТовары.Ссылка.Архивный
			И ЧекККМТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			ЧекККМВозвратТовары.Ссылка,
			ЧекККМВозвратТовары.Номенклатура,
			ЧекККМВозвратТовары.Характеристика,
			1
		ИЗ
			Документ.ЧекККМВозврат.Товары КАК ЧекККМВозвратТовары
		ГДЕ
			ЧекККМВозвратТовары.Ссылка.Архивный
			И ЧекККМВозвратТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК ЧекиИПозиции
	
	СГРУППИРОВАТЬ ПО
		ЧекиИПозиции.Чек) КАК ЧекиИПозицииПродажиВозврата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЧекККМ.Ссылка КАК ЧекККМ,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМ)
			ТОГДА ЧекККМ.СуммаДокумента
		ИНАЧЕ 0
	КОНЕЦ КАК СуммаПродажи,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМВозврат)
			ТОГДА ЧекККМ.СуммаДокумента
		ИНАЧЕ 0
	КОНЕЦ КАК СуммаВозврата,
	1 КАК КоличчествоЧеков,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМ)
			ТОГДА 1
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоЧековПродажи,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМВозврат)
			ТОГДА 1
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоЧековВозврата
ПОМЕСТИТЬ ЧекиИСумма
ИЗ
	(ВЫБРАТЬ РАЗЛИЧНЫЕ
		ЧекККМПродажи.Ссылка КАК Ссылка,
		ЧекККМПродажи.СуммаДокумента КАК СуммаДокумента
	ИЗ
		Документ.ЧекККМ КАК ЧекККМПродажи
	ГДЕ
		ЧекККМПродажи.Ссылка.Архивный
		И ЧекККМПродажи.Дата >= &НачалоПериода
		И (ЧекККМПродажи.Дата <= &КонецПериода
				ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		ЧекККМВозврат.Ссылка,
		ЧекККМВозврат.СуммаДокумента
	ИЗ
		Документ.ЧекККМВозврат КАК ЧекККМВозврат
	ГДЕ
		ЧекККМВозврат.Ссылка.Архивный
		И ЧекККМВозврат.Дата >= &НачалоПериода
		И (ЧекККМВозврат.Дата <= &КонецПериода
				ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК ЧекККМ
;

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


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

Но в отчете выводит одинаковые суммы для всех продавцов.
Прикрепленные файлы:
ОтчетПоЧекамККМ УТ 11.erf
Вознаграждение за ответ
Показать полностью
Найденные решения
20. traktor 25.10.18 16:46 Сейчас в теме +3 $m
(19) Если твердая уверенность есть, то можно попробовать вот так:
ВЫБРАТЬ
	ЧекККМТовары.Ссылка.Склад КАК Магазин,
	ЧекККМТовары.Ссылка.КассаККМ КАК КассаККМ,
	ЧекККМТовары.Продавец КАК Продавец,
	1 КАК ПозицияЧека,
	1 КАК ПозицияПродажи,
	0 КАК ПозицияВозврата,
	ЧекККМТовары.Сумма КАК СуммаПродажи,
	0 КАК СуммаВозврата,
	ЧекККМТовары.Ссылка КАК ЧекПродажи,
	NULL КАК ЧекВозврата
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
	Документ.ЧекККМ.Товары КАК ЧекККМТовары
ГДЕ
	ЧекККМТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

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

ВЫБРАТЬ
	ЧекККМВозвратТовары.Ссылка.Склад,
	ЧекККМВозвратТовары.Ссылка.КассаККМ,
	ЧекККМВозвратТовары.Продавец,
	1,
	0,
	1,
	0,
	ЧекККМВозвратТовары.Сумма,
	NULL,
	ЧекККМВозвратТовары.Ссылка
ИЗ
	Документ.ЧекККМВозврат.Товары КАК ЧекККМВозвратТовары
ГДЕ
	ЧекККМВозвратТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

ИНДЕКСИРОВАТЬ ПО
	Магазин,
	КассаККМ,
	Продавец,
	ЧекПродажи,
	ЧекВозврата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ИсходныеДанные.ЧекПродажи) КАК ЧекПродажи,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ИсходныеДанные.ЧекВозврата) КАК ЧекВозврата,
	ИсходныеДанные.Продавец КАК Продавец
ПОМЕСТИТЬ КоличествоЧековПродавцов
ИЗ
	ИсходныеДанные КАК ИсходныеДанные

СГРУППИРОВАТЬ ПО
	ИсходныеДанные.Продавец

ИНДЕКСИРОВАТЬ ПО
	Продавец
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.Магазин КАК Магазин,
	ИсходныеДанные.КассаККМ КАК КассаККМ,
	ИсходныеДанные.Продавец КАК Продавец,
	СУММА(ИсходныеДанные.ПозицияЧека) КАК ПозицияЧека,
	СУММА(ИсходныеДанные.ПозицияПродажи) КАК ПозицияПродажи,
	СУММА(ИсходныеДанные.ПозицияВозврата) КАК ПозицияВозврата,
	СУММА(ИсходныеДанные.СуммаПродажи) КАК СуммаПродажи,
	СУММА(ИсходныеДанные.СуммаВозврата) КАК СуммаВозврата
ПОМЕСТИТЬ СводныеДанные
ИЗ
	ИсходныеДанные КАК ИсходныеДанные

СГРУППИРОВАТЬ ПО
	ИсходныеДанные.Магазин,
	ИсходныеДанные.КассаККМ,
	ИсходныеДанные.Продавец

ИНДЕКСИРОВАТЬ ПО
	Магазин,
	КассаККМ,
	Продавец
;

////////////////////////////////////////////////////////////­////////////////////
УНИЧТОЖИТЬ ИсходныеДанные
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СводныеДанные.Магазин КАК Магазин,
	СводныеДанные.КассаККМ КАК КассаККМ,
	СводныеДанные.Продавец КАК Продавец,
	СводныеДанные.ПозицияЧека КАК КоличествоПозицийВЧеке,
	СводныеДанные.ПозицияПродажи КАК КоличествоПозицийВЧекеПродажи,
	СводныеДанные.ПозицияВозврата КАК КоличествоПозицийВЧекеВозврата,
	СводныеДанные.СуммаПродажи КАК СуммаПродажи,
	СводныеДанные.СуммаВозврата КАК СуммаВозврата,
	КоличествоЧековПродавцов.ЧекПродажи + КоличествоЧековПродавцов.ЧекВозврата КАК КоличествоЧеков,
	КоличествоЧековПродавцов.ЧекПродажи КАК КоличествоЧековПродажи,
	КоличествоЧековПродавцов.ЧекВозврата КАК КоличествоЧековВозврата
ИЗ
	СводныеДанные КАК СводныеДанные
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ КоличествоЧековПродавцов КАК КоличествоЧековПродавцов
		ПО СводныеДанные.Продавец = КоличествоЧековПродавцов.Продавец
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. AlexanderP 43 24.10.18 21:38 Сейчас в теме
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЧекККМТовары.Ссылка КАК Чек,
ЧекККМТовары.Номенклатура КАК Номенклатура,
ЧекККМТовары.Характеристика КАК Характеристика,
1 КАК Позиция
ИЗ
Документ.ЧекККМ.Товары КАК ЧекККМТовары
Можно писать просто
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЧекККМТовары.Ссылка КАК Чек,
1 КАК Позиция
ИЗ
Документ.ЧекККМ.Товары КАК ЧекККМТовары
Какой смысл дергать лишние данные?
Одинаковые суммы выводит - это логично. Он же сумму берет из той таблицы, где нет разбиения на продавцов.
Нужно в таблицах ЧекиИКоличествоПозиций, ЧекиИСумма собирать данные в разрезе продавцов.
12. ravencrow 5 25.10.18 12:30 Сейчас в теме
(5) Исправил. А как собирать данные в таблицах ЧекиИКоличествоПозиций и ЧекиИСумма в разрезе продавцов не покажете?
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЧекиИПозицииПродажиВозврата.Чек КАК ЧекККМ,
	ЧекиИПозицииПродажиВозврата.Позиция КАК КоличествоПозиций,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекиИПозицииПродажиВозврата.Чек.Ссылка) = ТИП(Документ.ЧекККМ)
			ТОГДА ЧекиИПозицииПродажиВозврата.Позиция
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоПозицийПродажи,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекиИПозицииПродажиВозврата.Чек.Ссылка) = ТИП(Документ.ЧекККМВозврат)
			ТОГДА ЧекиИПозицииПродажиВозврата.Позиция
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоПозицийВозврата
ПОМЕСТИТЬ ЧекиИКоличествоПозиций
ИЗ
	(ВЫБРАТЬ
		ЧекиИПозиции.Чек КАК Чек,
		СУММА(ЧекиИПозиции.Позиция) КАК Позиция
	ИЗ
		(ВЫБРАТЬ РАЗЛИЧНЫЕ
			ЧекККМТовары.Ссылка КАК Чек,
			1 КАК Позиция
		ИЗ
			Документ.ЧекККМ.Товары КАК ЧекККМТовары
		ГДЕ
			ЧекККМТовары.Ссылка.Архивный
			И ЧекККМТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			ЧекККМВозвратТовары.Ссылка,
			1
		ИЗ
			Документ.ЧекККМВозврат.Товары КАК ЧекККМВозвратТовары
		ГДЕ
			ЧекККМВозвратТовары.Ссылка.Архивный
			И ЧекККМВозвратТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК ЧекиИПозиции
	
	СГРУППИРОВАТЬ ПО
		ЧекиИПозиции.Чек) КАК ЧекиИПозицииПродажиВозврата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЧекККМ.Ссылка КАК ЧекККМ,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМ)
			ТОГДА ЧекККМ.СуммаДокумента
		ИНАЧЕ 0
	КОНЕЦ КАК СуммаПродажи,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМВозврат)
			ТОГДА ЧекККМ.СуммаДокумента
		ИНАЧЕ 0
	КОНЕЦ КАК СуммаВозврата,
	1 КАК КоличчествоЧеков,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМ)
			ТОГДА 1
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоЧековПродажи,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ЧекККМ.Ссылка) = ТИП(Документ.ЧекККМВозврат)
			ТОГДА 1
		ИНАЧЕ 0
	КОНЕЦ КАК КоличествоЧековВозврата
ПОМЕСТИТЬ ЧекиИСумма
ИЗ
	(ВЫБРАТЬ РАЗЛИЧНЫЕ
		ЧекККМПродажи.Ссылка КАК Ссылка,
		ЧекККМПродажи.СуммаДокумента КАК СуммаДокумента
	ИЗ
		Документ.ЧекККМ КАК ЧекККМПродажи
	ГДЕ
		ЧекККМПродажи.Ссылка.Архивный
		И ЧекККМПродажи.Дата >= &НачалоПериода
		И (ЧекККМПродажи.Дата <= &КонецПериода
				ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		ЧекККМВозврат.Ссылка,
		ЧекККМВозврат.СуммаДокумента
	ИЗ
		Документ.ЧекККМВозврат КАК ЧекККМВозврат
	ГДЕ
		ЧекККМВозврат.Ссылка.Архивный
		И ЧекККМВозврат.Дата >= &НачалоПериода
		И (ЧекККМВозврат.Дата <= &КонецПериода
				ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))) КАК ЧекККМ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЧекиИСумма.ЧекККМ.КассаККМ КАК КассаККМ,
	ЧекиИСумма.ЧекККМ.Кассир КАК Кассир,
	ЧекиИСумма.ЧекККМ.Склад КАК Магазин,
	ЧекиИСумма.ЧекККМ,
	ЧекиИСумма.СуммаПродажи,
	ЧекиИСумма.СуммаВозврата,
	ЧекиИСумма.КоличчествоЧеков,
	ЧекиИСумма.КоличествоЧековПродажи,
	ЧекиИСумма.КоличествоЧековВозврата,
	ЧекиИКоличествоПозиций.КоличествоПозиций,
	ЧекиИКоличествоПозиций.КоличествоПозицийПродажи,
	ЧекиИКоличествоПозиций.КоличествоПозицийВозврата
ИЗ
	ЧекиИСумма КАК ЧекиИСумма
		ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИКоличествоПозиций КАК ЧекиИКоличествоПозиций
		ПО ЧекиИСумма.ЧекККМ = ЧекиИКоличествоПозиций.ЧекККМ
Показать
15. AlexanderP 43 25.10.18 14:35 Сейчас в теме
(12) запрос в (7) похож на правду. Вот только зачем из количества чеков единица вычитается - я не понял.
16. traktor 25.10.18 15:24 Сейчас в теме
(12) А там действительно "-1" и "-2" не нужны совсем)))
Но результатом такого запроса, как в (7), будет количество чеков подсчитано для каждого продавца.
Вполне возможно, что по условиям задачи это не правильно.
Если на (14) ответом будет 1, то подсчет количества чеков нужно вынести в отдельный пакет.
2. Timur.V 79 24.10.18 17:38 Сейчас в теме
У вас первая таблица (ниже) как связана с остальными таблицами? Где СОЕДИНЕНИЕ ?
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТовары,
    ЧекиИСумма КАК ЧекиИСумма
        ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИКоличествоПозиций КАК ЧекиИКоличествоПозиций
        ПО ЧекиИСумма.ЧекККМ = ЧекиИКоличествоПозиций.ЧекККМ  
3. ravencrow 5 24.10.18 18:02 Сейчас в теме
(2) Так?
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТовары
    ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИСумма КАК ЧекиИСумма
        ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИКоличествоПозиций КАК ЧекиИКоличествоПозиций
        ПО ЧекиИСумма.ЧекККМ = ЧекиИКоличествоПозиций.ЧекККМ  
    ПО ЧекККМТовары.ЧекККМ = ЧекиИСумма.ЧекККМ  
4. Timur.V 79 24.10.18 18:16 Сейчас в теме
(3)
Не знаю, можно ли писать как вы предложили.
Я обычно пишу примерно так, ниже:
(проверьте правильность указания полей в соединениях ниже)
ИЗ
Документ.ЧекККМ.Товары КАК ЧекККМТовары
ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИСумма КАК ЧекиИСумма
      ПО ЧекККМТовары.ЧекККМ = ЧекиИСумма.ЧекККМ
ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИКоличествоПозиций КАК ЧекиИКоличествоПозиций
      ПО ЧекиИСумма.ЧекККМ = ЧекиИКоличествоПозиций.ЧекККМ 
6. ravencrow 5 25.10.18 10:03 Сейчас в теме
(4) Выдает ошибку:
Прикрепленные файлы:
7. traktor 25.10.18 10:17 Сейчас в теме
Предлагаю сделать примерно так:
ВЫБРАТЬ
	ЧекККМТовары.Ссылка.Склад КАК Магазин,
	ЧекККМТовары.Ссылка.КассаККМ КАК КассаККМ,
	ЧекККМТовары.Продавец КАК Продавец,
	1 КАК ПозицияЧека,
	1 КАК ПозицияПродажи,
	0 КАК ПозицияВозврата,
	ЧекККМТовары.Сумма КАК СуммаПродажи,
	0 КАК СуммаВозврата,
	ЧекККМТовары.Ссылка КАК ЧекПродажи,
	NULL КАК ЧекВозврата
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
	Документ.ЧекККМ.Товары КАК ЧекККМТовары

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

ВЫБРАТЬ
	ЧекККМВозвратТовары.Ссылка.Склад,
	ЧекККМВозвратТовары.Ссылка.КассаККМ,
	ЧекККМВозвратТовары.Продавец,
	1,
	0,
	1,
	0,
	ЧекККМВозвратТовары.Сумма,
	NULL,
	ЧекККМВозвратТовары.Ссылка
ИЗ
	Документ.ЧекККМВозврат.Товары КАК ЧекККМВозвратТовары

ИНДЕКСИРОВАТЬ ПО
	Магазин,
	КассаККМ,
	Продавец
;

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

СГРУППИРОВАТЬ ПО
	ИсходныеДанные.Магазин,
	ИсходныеДанные.КассаККМ,
	ИсходныеДанные.Продавец

ИНДЕКСИРОВАТЬ ПО
	Магазин,
	КассаККМ,
	Продавец
;

////////////////////////////////////////////////////////////­////////////////////
УНИЧТОЖИТЬ ИсходныеДанные
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СводныеДанные.Магазин КАК Магазин,
	СводныеДанные.КассаККМ КАК КассаККМ,
	СводныеДанные.Продавец КАК Продавец,
	СводныеДанные.ПозицияЧека КАК ПозицияЧека,
	СводныеДанные.ПозицияПродажи КАК ПозицияПродажи,
	СводныеДанные.ПозицияВозврата КАК ПозицияВозврата,
	СводныеДанные.СуммаПродажи КАК СуммаПродажи,
	СводныеДанные.СуммаВозврата КАК СуммаВозврата,
	СводныеДанные.КоличествоЧековПродажи - 1 КАК КоличествоЧековПродажи,
	СводныеДанные.КоличествоЧековВозврата - 1 КАК КоличествоЧековВозврата,
	СводныеДанные.КоличествоЧековПродажи + СводныеДанные.КоличествоЧековВозврата - 2 КАК КоличествоЧеков
ИЗ
	СводныеДанные КАК СводныеДанные
Показать
8. ravencrow 5 25.10.18 10:48 Сейчас в теме
(7) Что-то ничего не получается, пробовал ваш код, выводит не верные данные.
Посмотрите пожалуйста исходник отчета.
Прикрепленные файлы:
ОтчетПоЧекамККМ УТ 11.erf
9. traktor 25.10.18 11:00 Сейчас в теме
(8) То есть ошибки нет, но данные неверные?
А в чем неверность? Суммы не те, количества или что-то еще?
Без базы непросто оценить ...
10. ravencrow 5 25.10.18 11:07 Сейчас в теме
(9) см. скриншот в (8). Я на тестовой базе смотрю. Создал два продавца "Администратор" и "Продавец". У Продавца один чек с одной позицией на 295 руб. А в отчете видим что Средние суммы вообще отсутствуют, а Среднее кол-во номенк. позиций в чеке "-1". Так же из отчета исчезли графы Сумма чеков и Количество чеков.
13. traktor 25.10.18 13:05 Сейчас в теме
(10) Это средние показатели, они у вас видимо как вычисляемые поля в СКД добавлены.
А количества и суммы не видны на скриншоте, их почему нет?
11. ravencrow 5 25.10.18 11:15 Сейчас в теме
Вот как должен выглядеть отчет.
Только не в разрезе "Пользователей(Кассиров)", а в разрезе "Продавцов".
Прикрепленные файлы:
14. traktor 25.10.18 13:28 Сейчас в теме
Если в одном чеке указано 5 продавцов, то в отчете количество чеков должно быть 1 или 5?
17. ravencrow 5 25.10.18 15:31 Сейчас в теме
(14) конечно 1 чек. В одном чеке может быть только один продавец, даже если в чеке много товаров. Просто он будет одинаков для всех товаров в этом чеке.
18. traktor 25.10.18 15:35 Сейчас в теме
(17) А есть твердая уверенность, что в одном чеке не будет несколько разных продавцов?
Технически это вполне возможно - табличная часть все-таки)))
19. ravencrow 5 25.10.18 15:38 Сейчас в теме
(18) Абсолютно. Продавцы только нажимают кнопку в РМК "Изменить продавца" и выбирают свою фамилию, и эта фамилия продавца проставляется на все товары в чеке.
Прикрепленные файлы:
20. traktor 25.10.18 16:46 Сейчас в теме +3 $m
(19) Если твердая уверенность есть, то можно попробовать вот так:
ВЫБРАТЬ
	ЧекККМТовары.Ссылка.Склад КАК Магазин,
	ЧекККМТовары.Ссылка.КассаККМ КАК КассаККМ,
	ЧекККМТовары.Продавец КАК Продавец,
	1 КАК ПозицияЧека,
	1 КАК ПозицияПродажи,
	0 КАК ПозицияВозврата,
	ЧекККМТовары.Сумма КАК СуммаПродажи,
	0 КАК СуммаВозврата,
	ЧекККМТовары.Ссылка КАК ЧекПродажи,
	NULL КАК ЧекВозврата
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
	Документ.ЧекККМ.Товары КАК ЧекККМТовары
ГДЕ
	ЧекККМТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

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

ВЫБРАТЬ
	ЧекККМВозвратТовары.Ссылка.Склад,
	ЧекККМВозвратТовары.Ссылка.КассаККМ,
	ЧекККМВозвратТовары.Продавец,
	1,
	0,
	1,
	0,
	ЧекККМВозвратТовары.Сумма,
	NULL,
	ЧекККМВозвратТовары.Ссылка
ИЗ
	Документ.ЧекККМВозврат.Товары КАК ЧекККМВозвратТовары
ГДЕ
	ЧекККМВозвратТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

ИНДЕКСИРОВАТЬ ПО
	Магазин,
	КассаККМ,
	Продавец,
	ЧекПродажи,
	ЧекВозврата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ИсходныеДанные.ЧекПродажи) КАК ЧекПродажи,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ИсходныеДанные.ЧекВозврата) КАК ЧекВозврата,
	ИсходныеДанные.Продавец КАК Продавец
ПОМЕСТИТЬ КоличествоЧековПродавцов
ИЗ
	ИсходныеДанные КАК ИсходныеДанные

СГРУППИРОВАТЬ ПО
	ИсходныеДанные.Продавец

ИНДЕКСИРОВАТЬ ПО
	Продавец
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.Магазин КАК Магазин,
	ИсходныеДанные.КассаККМ КАК КассаККМ,
	ИсходныеДанные.Продавец КАК Продавец,
	СУММА(ИсходныеДанные.ПозицияЧека) КАК ПозицияЧека,
	СУММА(ИсходныеДанные.ПозицияПродажи) КАК ПозицияПродажи,
	СУММА(ИсходныеДанные.ПозицияВозврата) КАК ПозицияВозврата,
	СУММА(ИсходныеДанные.СуммаПродажи) КАК СуммаПродажи,
	СУММА(ИсходныеДанные.СуммаВозврата) КАК СуммаВозврата
ПОМЕСТИТЬ СводныеДанные
ИЗ
	ИсходныеДанные КАК ИсходныеДанные

СГРУППИРОВАТЬ ПО
	ИсходныеДанные.Магазин,
	ИсходныеДанные.КассаККМ,
	ИсходныеДанные.Продавец

ИНДЕКСИРОВАТЬ ПО
	Магазин,
	КассаККМ,
	Продавец
;

////////////////////////////////////////////////////////////­////////////////////
УНИЧТОЖИТЬ ИсходныеДанные
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СводныеДанные.Магазин КАК Магазин,
	СводныеДанные.КассаККМ КАК КассаККМ,
	СводныеДанные.Продавец КАК Продавец,
	СводныеДанные.ПозицияЧека КАК КоличествоПозицийВЧеке,
	СводныеДанные.ПозицияПродажи КАК КоличествоПозицийВЧекеПродажи,
	СводныеДанные.ПозицияВозврата КАК КоличествоПозицийВЧекеВозврата,
	СводныеДанные.СуммаПродажи КАК СуммаПродажи,
	СводныеДанные.СуммаВозврата КАК СуммаВозврата,
	КоличествоЧековПродавцов.ЧекПродажи + КоличествоЧековПродавцов.ЧекВозврата КАК КоличествоЧеков,
	КоличествоЧековПродавцов.ЧекПродажи КАК КоличествоЧековПродажи,
	КоличествоЧековПродавцов.ЧекВозврата КАК КоличествоЧековВозврата
ИЗ
	СводныеДанные КАК СводныеДанные
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ КоличествоЧековПродавцов КАК КоличествоЧековПродавцов
		ПО СводныеДанные.Продавец = КоличествоЧековПродавцов.Продавец
Показать
21. ravencrow 5 25.10.18 17:14 Сейчас в теме
(20) Вроде бы все верно. Только почему поле "Магазин" выпало из отчета, оно даже из выбора доступных полей исчезло, хотя в конфигураторе оно есть и в отборах и в иерархии отчета.
Прикрепленные файлы:
22. traktor 25.10.18 17:23 Сейчас в теме
(21) Сложно сказать не видя того, что в СКД...
Посмотрите файл отчета, на демо-базе он работает и все группировки видны.
Прикрепленные файлы:
ОтчетПоЧекамККМ УТ 11.erf
23. ravencrow 5 25.10.18 17:32 Сейчас в теме
(22) Загрузил ваш отчет, тоже не видно поля "Магазин" и в выборе доступных полей его нет.
Прикрепленные файлы:
24. ravencrow 5 25.10.18 17:57 Сейчас в теме
(22) Сейчас проверил на реальной базе все работает и поле "Магазин" есть. Видимо какой-то глюк демо-базы.
25. ravencrow 5 26.10.18 16:15 Сейчас в теме
(22) Нашлась ошибка, если Продавец продавал в двух магазинах (один день в одном, а другой день в другом), то количество чеков отображается общее и в одном и в другом магазине, это не верно, отсюда и неправильный расчет средних показателей.
Прикрепленные файлы:
26. traktor 26.10.18 17:31 Сейчас в теме
(25) А если попробовать вот так?
Прикрепленные файлы:
ОтчетПоЧекамККМ УТ 11.erf
27. ravencrow 5 29.10.18 11:17 Сейчас в теме
(26) Спасибо, теперь всё правильно.
Оставьте свое сообщение

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