Имя: Пароль:
1C
1С v8
Объединение запросов (Получить количество чеков)
0 povar
 
18.03.17
07:34
Приветствую господа.
Помогите в такой проблеме. УТ 11.2
Программа максимум - получить отчет по продавцам за период, вывести количество чеков и чеков возврата. Такого плана:

Продавец Чек Возврат
Иванов 10 0
Петров 4 1
Сидоров 0 1

Написал два запроса, один получает кол-во чеков, второй кол-во чеков на возврат. Объединить, чтобы получить требуемое, не получается

Запрос 1

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

Запрос 2

ВЫБРАТЬ
    ЧекВозврат.Продавец КАК Продавец,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекВозврат.Ссылка) КАК КоличествоЧековВозврат
ИЗ
    Документ.ЧекККМВозврат.Товары КАК ЧекВозврат
ГДЕ
    ЧекВозврат.Ссылка.Архивный = &Архивный
    И ЧекВозврат.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
    ЧекВозврат.Продавец
1 мистер игрек
 
18.03.17
07:39
ВЫБРАТЬ
    Чек.Продавец КАК Продавец,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Чек.Ссылка) КАК КоличествоЧеков,
    0 КАК КоличествоЧековВозврат,
ИЗ
    Документ.ЧекККМ.Товары КАК Чек
ГДЕ
    Чек.Ссылка.Архивный = &Архивный
    И Чек.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
    Чек.Продавец

Объединить

ВЫБРАТЬ
    ЧекВозврат.Продавец КАК Продавец,
    0,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекВозврат.Ссылка)
ИЗ
    Документ.ЧекККМВозврат.Товары КАК ЧекВозврат
ГДЕ
    ЧекВозврат.Ссылка.Архивный = &Архивный
    И ЧекВозврат.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
    ЧекВозврат.Продавец
2 povar
 
18.03.17
07:43
(1) крутяк, а как теперь результаты свернуть по Продавцу ?
А то получается

Продавец Чек Возврат
Иванов 0 5
Иванов 10 0
Петров 5 0

Надо

Продавец Чек Возврат
Иванов 10 5
Петров 5 0
3 Рэйв
 
18.03.17
07:44
(1)+
Выбрать ВнЗап.Продавец,
        Сумма(ВнЗап.КоличествоЧеков) Как КолЧек,
        Сумма(ВнЗап.КоличествоЧековВозврат) Как КолЧекВозврат
ИЗ
(....тут(1)) Как ВнЗап
Сгруппировать По ВнЗап.Продавец
4 Рэйв
 
18.03.17
07:45
(2)->(3)
5 мистер игрек
 
18.03.17
07:45
(2) Ты случайно не троллишь? Вроде со стажем 13 лет? :)
6 povar
 
18.03.17
07:46
(5) да нет, начал восьмерку изучать буквально неделю назад )
7 Рэйв
 
18.03.17
07:46
(5)У меня тоже была такая мысль:-). или похмелье с утра  ураганное
8 мистер игрек
 
18.03.17
07:48
(6) Мистодант походу :)
9 povar
 
18.03.17
07:49
(8) нужда заставила, перейти с православной семерки
10 povar
 
18.03.17
07:51
Всем, спасибо, помогли заработать на банку кофе ;)
11 povar
 
18.03.17
08:38
Еще небольшой нюанс
Условие на дату документов
МЕЖДУ &НачалоПериода И &КонецПериода
Не срабатывает, если Начало и КонецПериода - одной даты.
Прописывать конструкциями >= <= ?
12 povar
 
18.03.17
08:43
+(11) вернее срабатывает, но в периоде на форме приходится в Конце периода ставить время 23:59:59
13 povar
 
18.03.17
08:45
т.е. как по умолчанию сделать, что НАчалоПериода - это начало даты
КонецПериода - конец дня
14 мистер игрек
 
18.03.17
08:54
Ты не поверишь, чтоб получить конец дня нужна функция КонецДня(КонецПериода)
15 bodri
 
18.03.17
09:02
в запросе:  КонецПериода(&КонецПериода,День)
16 povar
 
18.03.17
09:40
(14,15) +100
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.