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


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 или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует