Имя: Пароль:
1C
1С v8
Ошибка в запросе к табличной части документа ЧекККМ
0 VBMADD
 
30.05.18
05:47
Привет братьям по разуму.
Пож-ста помогите исправить текст запроса.
Я пока ещё не разбрался с программированием запросов.

Запрос = Новый Запрос;

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


//Ошибка при вызове метода контекста (Выполнить)
//    РезультатЗапроса = Запрос.Выполнить();
//по причине:
//{(8, 2)}: Ожидается имя таблицы
//<<?>>ГДЕ
1 Metman
 
30.05.18
05:58
ИЗ Документ.ЧекККМ.Товары КАК Товары  запятую убери

| ГДЕ
        |     Товары.Ссылка
        |      И Дата Между &ДатаНач и &ДатаКон
2 Metman
 
30.05.18
06:01
|ВЫБРАТЬ
|    Товары.Ссылка.Ответственный,
|    Товары.Ссылка,
|    Товары.Номенклатура,
|    СУММА(Товары.Сумма) КАК Сумма
|ИЗ
|    Документ.ЧекККМ.Товары КАК Товары
|ГДЕ
|    Товары.Ссылка = &Ссылка
|    И Товары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
|    Товары.Ссылка,
|    Товары.Ссылка.Ответственный,
|    Товары.Номенклатура"
3 VBMADD
 
30.05.18
06:01
Спасибо за помощь.
4 VBMADD
 
30.05.18
06:10
Сделал как написано, но Теперь ругается по другому
Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
по причине:
{(9, 21)}: Не задано значение параметра "Ссылка"
Товары.Ссылка = <<?>>&Ссылка
5 Metman
 
30.05.18
06:33
тогда

|ВЫБРАТЬ
|    Товары.Ссылка.Ответственный,
|    Товары.Ссылка,
|    Товары.Номенклатура,
|    СУММА(Товары.Сумма) КАК Сумма
|ИЗ
|    Документ.ЧекККМ.Товары КАК Товары
|ГДЕ

|    Товары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
|    Товары.Ссылка,
|    Товары.Ссылка.Ответственный,
|    Товары.Номенклатура"
6 VBMADD
 
30.05.18
06:35
Теперь сделал вот так, но ничего из табличной части ЧекККМ не выводится.

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Товары.Ссылка.Ответственный,
        |    Товары.Ссылка,
        |    Товары.Номенклатура,
        |    СУММА(Товары.Сумма) КАК Сумма
        |ИЗ
        |    Документ.ЧекККМ.Товары КАК Товары
        |ГДЕ
        |    Товары.Ссылка = &Ссылка
        |    И Товары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
        |
        |СГРУППИРОВАТЬ ПО
        |    Товары.Ссылка,
        |    Товары.Ссылка.Ответственный,
        |    Товары.Номенклатура";    
    
    Запрос.УстановитьПараметр("Ссылка", Документы.ЧекККМ.ПолучитьСсылку());
    Запрос.УстановитьПараметр("ДатаНач", '20180101');
    Запрос.УстановитьПараметр("ДатаКон", ТекущаяДата());
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

        Сообщить("Выбираем товары!");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        Сообщить(
            ВыборкаДетальныеЗаписи.Товары.Номенклатура + " " +
            ВыборкаДетальныеЗаписи.Сумма + " руб."
        );

    КонецЦикла;
        
        
    КонецЦикла;
7 Metman
 
30.05.18
06:41
Зачем в запросе ссылка, если выбираются данные за период?
8 Metman
 
30.05.18
06:43
какая задача стоит?
9 Metman
 
30.05.18
06:47
+(7) *в условии запроса*
10 Metman
 
30.05.18
06:51
Документы.ЧекККМ.ПолучитьСсылку() Какую ссылку хотите указать?
11 VBMADD
 
30.05.18
06:52
Задача нужно вывести на экран все ЧекККМ пробитые за сегодня со строчками проданных товаров, что то типа

Чек № 25 от 30.05.2018 Сумма 150руб.
Джинсы Артикул 12345 125руб
Майка  Артикул 432   25руб.
Чек № 26 от 30.05.2018 Сумма 250руб.
Тапки  Артикул 145 225руб
Швабра  Артикул 32   25руб.
12 catena
 
30.05.18
07:17
(11)Зачем тогда вообще в запросе условие на ссылку?
13 VBMADD
 
30.05.18
07:21
Написал вот такой код

Процедура Выбрать_Чеки()
//===========================================    
Сообщить("Выбрать_Чеки()");

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

    Запрос.УстановитьПараметр("НачДата", '20180101');
    Запрос.УстановитьПараметр("КонДата", ТекущаяДата());

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДокументов = РезультатЗапроса.Выбрать();

    Пока ВыборкаДокументов.Следующий() Цикл
        Сообщить("Чек " + Строка(ВыборкаДокументов.Ссылка));
    КонецЦикла;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Товары.Ссылка,
        |    Товары.Номенклатура,
        |    СУММА(Товары.Сумма) КАК Сумма
        |ИЗ
        |    Документ.ЧекККМ.Товары КАК Товары
        |ГДЕ
        |    Товары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
        |
        |СГРУППИРОВАТЬ ПО
        |    Товары.Ссылка,
        |    Товары.Номенклатура";    
    
    Запрос.УстановитьПараметр("ДатаНач", '20180101');
    Запрос.УстановитьПараметр("ДатаКон", ТекущаяДата());
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

        Сообщить("Выбираем товары!");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        Сообщить("Номенклатура = " + ВыборкаДетальныеЗаписи.Товары.Номенклатура);
        Сообщить("Сумма = " + ВыборкаДетальныеЗаписи.Сумма + " руб.");

    КонецЦикла;

КонецПроцедуры

===================================================
Теперь ругается так

Форма(223)}: Поле объекта не обнаружено (Товары)
        Сообщить(
14 catena
 
30.05.18
07:24
(13)
1. Зачем два запроса?
2. Потому что нет в запросе поля "Товары".
3. Стаж на форуме 11 лет???
15 Redkiy
 
30.05.18
07:31
(0) >Я пока ещё не разбрался с программированием запросов.

Cтранный подход к задаче.
Ты за руль авто тоже сядешь, не разобравшись с назначением педалей?
И да, стаж смущает...
16 VBMADD
 
30.05.18
07:49
Не ругайтесь, братки.
Просто я   все делал на 1с77, а теперь надо срочно в 1с8.3 розница 2.2 вывести табличные части чеков на экран
Я разберусь потом. Попробовал вот так: но не получается подмогните пож-ста, очень надо.


    Запрос.Текст =
    "ВЫБРАТЬ
    |     ЧекККМТовары.Ссылка.Дата,
    |     ЧекККМТовары.Ссылка.Номер,
    |     ЧекККМТовары.Номенклатура,
    |     ЧекККМТовары.Количество,
    |     ЧекККМТовары.Цена
    |ИЗ
    |     Документ.ЧекККМ.Товары КАК ЧекККМТовары";
    
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

        Сообщить("Выбираем товары!");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        Сообщить("Номенклатура = " + ЧекККМТовары.Номенклатура);
        Сообщить("Цена = " + ЧекККМТовары.Цена + " руб.");

    КонецЦикла;
17 Redkiy
 
30.05.18
07:55
Нет ограничения по выборке.
Сделай хотя бы "ВЫБРАТЬ ПЕРВЫЕ 100... чтоб не грузить систему

В цикле ты у тебя один объект - ВыборкаДетальныеЗаписи.
ЧекККМТовары - что это по твоему?
18 catena
 
30.05.18
08:02
Запрос = Новый Запрос;

    Запрос.Текст =
        "ВЫБРАТЬ
    |    Товары.Ссылка.Ответственный,
    |    Товары.Ссылка КАК Документ,
    |    Товары.Номенклатура,
    |    СУММА(Товары.Сумма) КАК Сумма
    |ИЗ
    |    Документ.ЧекККМ.Товары КАК Товары
    |ГДЕ
    |    Товары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |
    |СГРУППИРОВАТЬ ПО
    |    Товары.Ссылка,
    |    Товары.Ссылка.Ответственный,
    |    Товары.Номенклатура
    |ИТОГИ ПО
    |    Документ";
    
Запрос.УстановитьПараметр("ДатаНач", ТекущаяДата());
Запрос.УстановитьПараметр("ДатаКон", ТекущаяДата());
ПоДокумент = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ПоДокумент.Следующий() Цикл
    Сообщить(ПоДокумент.Документ);
    ПоТовар = ПоДокумент.Выбрать();
    Пока ПоТовар.Следующий() Цикл
        Сообщить(ПоТовар.Номенклатура);
    КонецЦикла;    
КонецЦикла;
19 Redkiy
 
30.05.18
08:11
(18) пустой результат будет
исправить Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ТекущаяДата()))
20 VBMADD
 
30.05.18
08:22
(18)+(19) Вау!!!, Ура
Огромный респект и массу наилучших пожеланий!!!
21 Redkiy
 
30.05.18
08:24
(20) Учи предмет! Разбери этот код построчно.
22 catena
 
30.05.18
08:48
(19)Ну тут даже семерочник должен был уже сам догадаться.
Программист всегда исправляет последнюю ошибку.