Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка в запросе к табличной части документа ЧекККМ

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

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

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


//Ошибка при вызове метода контекста (Выполнить)

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

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

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

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

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

    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Товары.Ссылка.Ответственный,
        |    Товары.Ссылка,
        |    Товары.Номенклатура,
        |    СУММА(Товары.Сумма) КАК Сумма
        |ИЗ
        |    Документ.ЧекККМ.Товары КАК Товары
        |ГДЕ
        |    Товары.Ссылка = &Ссылка
        |    И Товары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
        |
        |СГРУППИРОВАТЬ ПО
        |    Товары.Ссылка,
        |    Товары.Ссылка.Ответственный,
        |    Товары.Номенклатура";    
    
    Запрос.УстановитьПараметр("Ссылка", Документы.ЧекККМ.ПолучитьСсылку());
    Запрос.УстановитьПараметр("ДатаНач", '20180101');
    Запрос.УстановитьПараметр("ДатаКон", ТекущаяДата());
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
        Сообщить("Выбираем товары!");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
 
        Сообщить(
            ВыборкаДетальныеЗаписи.Товары.Номенклатура + " " +
            ВыборкаДетальныеЗаписи.Сумма + " руб."
        );
 
    КонецЦикла;
        
        
    КонецЦикла;
   Metman
 
7 - 30.05.18 - 06:41
Зачем в запросе ссылка, если выбираются данные за период?
   Metman
 
8 - 30.05.18 - 06:43
какая задача стоит?
   Metman
 
9 - 30.05.18 - 06:47
+(7) *в условии запроса*
   Metman
 
10 - 30.05.18 - 06:51
Документы.ЧекККМ.ПолучитьСсылку() Какую ссылку хотите указать?
 
 Рекламное место пустует
   VBMADD
 
11 - 30.05.18 - 06:52
Задача нужно вывести на экран все ЧекККМ пробитые за сегодня со строчками проданных товаров, что то типа

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

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

Сообщить("Выбрать_Чеки()");

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

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

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

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

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

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


    Запрос.Текст = 
    "ВЫБРАТЬ
    |     ЧекККМТовары.Ссылка.Дата,
    |     ЧекККМТовары.Ссылка.Номер,
    |     ЧекККМТовары.Номенклатура,
    |     ЧекККМТовары.Количество,
    |     ЧекККМТовары.Цена
    |ИЗ
    |     Документ.ЧекККМ.Товары КАК ЧекККМТовары";
    
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
        Сообщить("Выбираем товары!");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
 
        Сообщить("Номенклатура = " + ЧекККМТовары.Номенклатура);
        Сообщить("Цена = " + ЧекККМТовары.Цена + " руб.");
 
    КонецЦикла;
   Redkiy
 
17 - 30.05.18 - 07:55
Нет ограничения по выборке.
Сделай хотя бы "ВЫБРАТЬ ПЕРВЫЕ 100... чтоб не грузить систему

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует