8.х Помогите разобраться с запросом

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Колесо, 16 мар 2012.

  1. TopicStarter Overlay
    Колесо
    Offline

    Колесо Опытный в 1С

    Регистрация:
    7 янв 2012
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    Имеется вот такой код.
    Код:
    ТаблицаРаспродажа=ЗапросРаспродажа.Выполнить().Выгрузить();
    НоменклатураРаспродажа = ТаблицаРаспродажа.ВыгрузитьКолонку("Номенклатура");
    Запрос1= Новый Запрос;
    
    
    Запрос1.Текст= "Выбрать Номенклатура,Сумма(КоличествоОстаток)  КАК Количество
    |ИЗ
    |РегистрНакопления.ТоварыНаСкладах.Остатки  
    |ГДЕ   Номенклатура В(&Номенклатура)
    |СГРУППИРОВАТЬ ПО Номенклатура ";
    
    Запрос1.УстановитьПараметр("Номенклатура",НоменклатураРаспродажа);
    РезультатЗапроса1Распродажа=Запрос.Выполнить();
    ТаблицаОстатковРаспродажа=РезультатЗапроса1Распродажа.Выгрузить();
    
    Получается, что в качестве параметра передается массив. Можно так делать? Не могу понять почему не работает запрос. Когда делаю в консоли запросов, все работает как надо.
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Можно (часто даже нужно). Запрос вручную создавали или через конструктор.
    Попробуйте так:
    [CODE1C]"Выбрать
    |ТоварыНаСкладахОстатки.Номенклатура,
    |Сумма(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Количество
    |ИЗ
    |РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
    |ГДЕ ТоварыНаСкладахОстатки.Номенклатура В(&Номенклатура)
    |СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Номенклатура ";[/CODE1C]

    P.S. А ещё лучше условие в параметры виртуальной таблицы вставить, а не через конструкцию ГДЕ.
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а какую ошибку выдает?
  4. TopicStarter Overlay
    Колесо
    Offline

    Колесо Опытный в 1С

    Регистрация:
    7 янв 2012
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    Наверно час исклал ошибку. А она скрывалась здесь
    Код:
    РезультатЗапроса1Распродажа=[b]Запрос1.Выполнить()[/b];
    Через виртуальную таблицу быстрее будет работать?
  5. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    чет ничего не понятно, что за ошибка была....
  6. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Вообще-то да, должно:

    Код:
    |РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В(&Номенклатура)) КАК ТоварыНаСкладахОстатки
    Судя по всему, не тот запрос вызывался.
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ага уже заметила..
  8. TopicStarter Overlay
    Колесо
    Offline

    Колесо Опытный в 1С

    Регистрация:
    7 янв 2012
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    Requin, то есть вот такой запрос получается?

    Код:
    "Выбрать
    |ТоварыНаСкладахОстатки.Номенклатура,
    |Сумма(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК Количество
    |ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В(&Номенклатура)) КАК ТоварыНаСкладахОстатки
    |СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Номенклатура ";
    
  9. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Ну да.

    P.S. Период не указан - это так надо?
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    такой существенно быстрее должен работать

Поделиться этой страницей