Имя: Пароль:
1C
1С v8
Запрос по чекам ККМ по видам оплат
0 Shade84
 
25.01.16
03:03
Здравствуйте, пытаюсь сделать запрос по видам оплат по чекам ККМ:
    "ВЫБРАТЬ
    |    ЧекККМОплата.Ссылка.КассаККМ КАК КассаККМ,
    |    ПРЕДСТАВЛЕНИЕ(ЧекККМОплата.Ссылка.КассаККМ),
    |    ЧекККМОплата.ВидОплаты КАК ВидОплаты,
    |    ПРЕДСТАВЛЕНИЕ(ЧекККМОплата.ВидОплаты),
    |    ЧекККМОплата.Ссылка.Ссылка КАК Ссылка,
    |    ЧекККМОплата.Ссылка.Представление,
    
    |    СУММА(
    |        ВЫБОР
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииПродажа ТОГДА
    |                (1)
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииВозврат ТОГДА
    |                (-1)
    |            ИНАЧЕ
    |                (0)
    |        КОНЕЦ * ЧекККМОплата.Ссылка.СуммаДокумента) КАК СуммаДокумента

    
        
    

    |ИЗ
    |    Документ.ЧекККМ.Оплата КАК ЧекККМОплата
    |ГДЕ
    |    ЧекККМОплата.Ссылка.Дата >= &НачДата
    |    И ЧекККМОплата.Ссылка.Дата <= &КонДата
    |    И ЧекККМОплата.Ссылка.Проведен = &Пров
    |
    |СГРУППИРОВАТЬ ПО
    |    ЧекККМОплата.Ссылка.КассаККМ,
    |    ЧекККМОплата.ВидОплаты,
    |    ЧекККМОплата.Ссылка.Ссылка,
    |    ЧекККМОплата.Ссылка.Представление
    |
    |УПОРЯДОЧИТЬ ПО
    |    КассаККМ
    |ИТОГИ
    |    СУММА(СуммаДокумента)
    |ПО
    |    ОБЩИЕ,
    |    КассаККМ,
    |    ВидОплаты,
    |    Ссылка";

Когда оплата сложная и пластиком и наличными, то данная сумма чека попадает и в группу Наличные и в Пластиковая карта.
Подскажите как сделать, чтобы в список попадали раздельно в наличку сумма наличными по данному чеку, в Пластиковая карта сумма по пластику
Если меняю строку на
    |        КОНЕЦ * ЧекККМОплата.Сумма) КАК СуммаДокумента
то с поставленной задачей запрос справляется, но тогда плывут суммы чеков ккм с простой оплатой (Наличные или пластик)
Посдкажите пожалуйста
1 Shade84
 
25.01.16
03:13
Скореее всего нужно еще одно условие если оплата простая то сроку использовать СуммаДокумента, а если нет то использовать Оплата.Сумма как СуммаДокумента, но как условие включить в запрос?
Или может что-то поизящнее есть?
2 Shade84
 
25.01.16
03:20
помогите пожалуйста
3 Shade84
 
25.01.16
09:48
Может попробовать через Выбор КОГДА ТОГДА? Но выбор в выборе не проходит, ругается, что нет КОНЦА.
Может друг за другом как-то?
Может как-то можно сравнить Сумму документа с чем-нибудь? С оплатой, например, подскажите, кто-нибудь, плиз
4 FIXXXL
 
25.01.16
10:51
тащи суммы сразу из ТЧ Оплаты и группируй по полю ВидОплаты или как оно там называется
5 Shade84
 
25.01.16
10:59
Сразу тащить пробовал, когда тащишь из документа где разбитая оплата по типам, то все идеально. В Наличные идет сумма наличными, а в Пластиковая карта сумма в чеке которая пластиком прошла.
Но в чеке где оплата просто Наличными в сумму попадает Сумма отданная человеком, а не сумма документа ЧекККМ. То есть попадает сумма например 1000 рублей. В чеке ему будет сдача 512 рублей, а сумма документа Чек ККМ равна 488 и ее как раз нужно подтянуть в отчет. Но подтягивается именно 1000.
6 Cyberhawk
 
25.01.16
11:00
Покажи на картинке что на входе и что должно быть на выходе
7 Shade84
 
25.01.16
11:01
сейчас скрин сделаю
8 Cyberhawk
 
25.01.16
11:12
Скрин не надо, надо внятную картинку
9 Shade84
 
25.01.16
11:12
http://nekludovo.ru/tmp/chekkkm.jpg

В отчете сумма 406,56 и в наличке и в пластике, а должно быть 106,56 в наличке и 300 в пластике
http://nekludovo.ru/tmp/otchet.jpg


Если делаем по ТЧ Оплата то в данном случае все посчитается правильно, ьно в случае простой оплаты Сумма - это сумма, которую человек дал наличными, но она не всегда равна сумме документа чек ККМ, потому что иногда ему сдачу сдают с нее
10 Shade84
 
25.01.16
11:13
(8) по картинкам не понятно?
11 mexanik_96
 
25.01.16
11:17
|        КОНЕЦ * ЧекККМОплата.Ссылка.СуммаДокумента) КАК СуммаДокумента
13 lera01
 
25.01.16
11:18
(0) А что, у тебя в ТЧ Оплата нет суммы что ли, что ты берешь всю сумму чека?
14 Shade84
 
25.01.16
11:19
(12)  :-) Сумма уножается на -1 при возврате. Но в данном случае будет как на картинке http://nekludovo.ru/tmp/otchet.jpg, то есть сумма вся полностью запишется и в Наличку и в пластик
15 mexanik_96
 
25.01.16
11:20
сумма не ДОКУМЕНТА
16 mexanik_96
 
25.01.16
11:21
СУММА СТРОКИ ТЧ ОПЛАТЫ!!!!!!!!!!!!!!!!!!!!
17 mexanik_96
 
25.01.16
11:21
ТЧ ОПЛАТА
18 mexanik_96
 
25.01.16
11:21
ТЧ ОПЛА
19 Shade84
 
25.01.16
11:21
(13) есть, но если я беру сумму из ТЧ Оплата в случае с разделенными видами оплаты, все происходит как нужно, а если вид оплаты только один, например наличка, то заносится в отчет сумма оплаты от покупателя, но она не всегда равна сумме документа
20 Shade84
 
25.01.16
11:22
(18) см (19)
21 Shade84
 
25.01.16
11:22
(18) |        КОНЕЦ * ЧекККМОплата.Сумма) КАК СуммаДокумента
22 mexanik_96
 
25.01.16
11:22
да
с наличкой нужно сначала собирать, так как сдача там есть
23 Shade84
 
25.01.16
11:23
(22) вот :(
а как собрать?
24 mexanik_96
 
25.01.16
11:23
скину щас
25 Shade84
 
25.01.16
11:23
(24) Большое спасибо, пол ночи вчера бился :)
26 Shade84
 
25.01.16
11:24
(24) Если можно, то весь запрос
27 mexanik_96
 
25.01.16
11:27
мало бился
https://cloud.mail.ru/public/9eKR/FHABKU94b
для 2ой, допилишь там сам под 1ую
28 Shade84
 
25.01.16
11:31
(27) Ошибка в схеме компоновки данных
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(60, 60)}: Неверные параметры "Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента"
И ПриходныйКассовыйОрдер.ХозяйственнаяОперация = ЗНАЧЕНИЕ(<<?>>Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента)
Он на управляемых формах?
29 НаборДанных
 
25.01.16
11:34
(28)Ппц, ты или тупой или ленивый.
Расшифровка "для 2ой, допилишь там сам под 1ую" - Для Розницы 2.0 допилишь, обработка для Розница 1.0
30 Shade84
 
25.01.16
11:35
(27) А может есть возможность мой запрос изменить?
Там бы условие какое на предмет простой оплаты если простая то берем сумму документа а если сложная то берем сумму ТЧ Оплата
31 Shade84
 
25.01.16
11:35
у меня УТ 10.3, извини, не сказал сразу
32 Shade84
 
25.01.16
11:36
(29) УТ 10.3 у меня
33 Shade84
 
25.01.16
11:42
(27) В схеме компоновки данных я вижу что отдельно собирается Наличные и потом вычитаются и общей суммы.
Как бы все это дело перенести в мой запрос?
34 Shade84
 
25.01.16
11:44
Там левое соединение, а я его боюсь (не знаю)
35 Shade84
 
25.01.16
11:45
(27), большое спасибо, оттуда, думаю смогу адаптировать под себя
36 Shade84
 
25.01.16
11:48
Просто может кто-нибудь в УТ такое делал видел :(
37 Shade84
 
25.01.16
11:53
(29) не знаете как?
38 braynt
 
25.01.16
11:55
(36) для УТ

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

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

СГРУППИРОВАТЬ ПО
    ЧекККМ.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Документ,
    ВЫБОР
        КОГДА ТзЧеки.СуммаДокумента = ВложенныйЗапрос.Сумма
            ТОГДА 0
        ИНАЧЕ ВложенныйЗапрос.Сумма - ТзЧеки.СуммаДокумента
    КОНЕЦ КАК Сдача
ПОМЕСТИТЬ ТЗСдача
ИЗ
    (ВЫБРАТЬ
        ТЗПоОплатам.Документ КАК Документ,
        СУММА(ТЗПоОплатам.Сумма) КАК Сумма
    ИЗ
        ТЗПоОплатам КАК ТЗПоОплатам
    
    СГРУППИРОВАТЬ ПО
        ТЗПоОплатам.Документ) КАК ВложенныйЗапрос
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТзЧеки КАК ТзЧеки
        ПО ВложенныйЗапрос.Документ = ТзЧеки.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТЗПоОплатам.Сумма - ЕСТЬNULL(ТЗСдача.Сдача, 0) КАК Сумма,
    ТЗПоОплатам.ВидОплаты,
    ТЗПоОплатам.Документ,
    ТЗПоОплатам.Документ.КассаККМ.Владелец КАК Организация
ИЗ
    ТЗПоОплатам КАК ТЗПоОплатам
        ЛЕВОЕ СОЕДИНЕНИЕ ТЗСдача КАК ТЗСдача
        ПО ТЗПоОплатам.Документ = ТЗСдача.Документ
39 Shade84
 
25.01.16
11:56
(38) Большое спасибо :))))
Сейчас проверю :)
40 Shade84
 
25.01.16
12:08
(38) Не получается сделать из него запрос.
Представленный код для СхемыКомпоновкиДанных, ведь?
А как бы этот код в мой запрос поместить?

|ВЫБРАТЬ
|    ВложенныйЗапрос.Документ,
|    ВЫБОР
|        КОГДА ТзЧеки.СуммаДокумента = ВложенныйЗапрос.Сумма
|            ТОГДА 0
|        ИНАЧЕ ВложенныйЗапрос.Сумма - ТзЧеки.СуммаДокумента
|    КОНЕЦ КАК Сдача
|ПОМЕСТИТЬ ТЗСдача
|ИЗ
|    (ВЫБРАТЬ
|        ТЗПоОплатам.Документ КАК Документ,
|        СУММА(ТЗПоОплатам.Сумма) КАК Сумма
|    ИЗ
|       ТЗПоОплатам КАК ТЗПоОплатам
  |  
|   СГРУППИРОВАТЬ ПО
|        ТЗПоОплатам.Документ) КАК ВложенныйЗапрос
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТзЧеки КАК ТзЧеки
|        ПО ВложенныйЗапрос.Документ = ТзЧеки.Ссылка
|;

////////////////////////////////////////////////////////////////////////////////

| ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ТЗПоОплатам.Сумма - ЕСТЬNULL(ТЗСдача.Сдача, 0) КАК Сумма,
|    ТЗПоОплатам.ВидОплаты,
|    ТЗПоОплатам.Документ,
|    ТЗПоОплатам.Документ.КассаККМ.Владелец КАК Организация
|ИЗ
|    ТЗПоОплатам КАК ТЗПоОплатам
|        ЛЕВОЕ СОЕДИНЕНИЕ ТЗСдача КАК ТЗСдача
|        ПО ТЗПоОплатам.Документ = ТЗСдача.Документ";
41 Shade84
 
25.01.16
18:06
Так не работает :)
Запрос.Текст =
    "ВЫБРАТЬ
    |    ЧекККМОплата.Ссылка.КассаККМ КАК КассаККМ,
    |    ПРЕДСТАВЛЕНИЕ(ЧекККМОплата.Ссылка.КассаККМ),
    |    ЧекККМОплата.ВидОплаты КАК ВидОплаты,
    |    ПРЕДСТАВЛЕНИЕ(ЧекККМОплата.ВидОплаты),
    |    ЧекККМОплата.Ссылка.Ссылка КАК Ссылка,
    |    ЧекККМОплата.Ссылка.Представление,
    
    |    СУММА(
    |        ВЫБОР
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииПродажа ТОГДА
    |                (1)
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииВозврат ТОГДА
    |                (-1)
    |            ИНАЧЕ
    |                (0)
    |        КОНЕЦ * ЧекККМОплата.Ссылка.СуммаДокумента) КАК СуммаДокумента,
    
|    СУММА(
    |        ВЫБОР
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииПродажа ТОГДА
    |                (1)
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииВозврат ТОГДА
    |                (-1)
    |            ИНАЧЕ
    |                (0)
    |        КОНЕЦ * ЧекККМОплата.Сумма) КАК СуммаОплат,    
    
    |    ВЫБОР
|        КОГДА ЧекККМОплата.Ссылка.СуммаДокумента = ЧекККМОплата.Сумма
|            ТОГДА 0
|        ИНАЧЕ ЧекККМОплата.Сумма - ЧекККМОплата.Ссылка.СуммаДокумента
|    КОНЕЦ КАК Сдача,
|    СУММА(
    |        ВЫБОР
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииПродажа ТОГДА
    |                (1)
    |            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииВозврат ТОГДА
    |                (-1)
    |            ИНАЧЕ
    |                (0)
    |        КОНЕЦ * (ЧекККМОплата.Сумма -  ЧекККМОплата.Ссылка.СуммаДокумента)) КАК СуммаДокументаПрав    
//    |    ВЫБОР
//|        КОГДА ТзЧеки.СуммаДокумента = ВложенныйЗапрос.Сумма
//|            ТОГДА 0
//|        ИНАЧЕ ВложенныйЗапрос.Сумма - ТзЧеки.СуммаДокумента
//|    КОНЕЦ КАК Сдача
//|ПОМЕСТИТЬ ТЗСдача
        
    //    |            ИНАЧЕ
    //    |    СУММА(
    //|        ВЫБОР
    //|            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииПродажа ТОГДА
    //|                (1)
    //|            КОГДА ЧекККМОплата.Ссылка.ВидОперации = &ВидОперацииВозврат ТОГДА
    //|                (-1)
    //|            ИНАЧЕ
    //|                (0)
    //|        КОНЕЦ * ЧекККМОплата.Сумма) КАК СуммаДокумента
    

    |ИЗ
    |    Документ.ЧекККМ.Оплата КАК ЧекККМОплата
    |ГДЕ
    |    ЧекККМОплата.Ссылка.Дата >= &НачДата
    |    И ЧекККМОплата.Ссылка.Дата <= &КонДата
    |    И ЧекККМОплата.Ссылка.Проведен = &Пров
    |
    |СГРУППИРОВАТЬ ПО
    |    ЧекККМОплата.Ссылка.КассаККМ,
    |    ЧекККМОплата.ВидОплаты,
    |    ЧекККМОплата.Ссылка.Ссылка,
    |    ЧекККМОплата.Ссылка.Представление
    |
    |УПОРЯДОЧИТЬ ПО
    |    КассаККМ
    |ИТОГИ
    //|    СУММА(СуммаДокумента),
    |    СУММА(СуммаДокументаПрав)
    |ПО
    |    ОБЩИЕ,
    |    КассаККМ,
    |    ВидОплаты,
    |    Ссылка";
42 Shade84
 
25.01.16
18:06
А как работает? :)
43 Shade84
 
25.01.16
18:07
Помогите помогите помогите