8.х маленький вопрос о запросе.

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем CSCO12103692, 3 июл 2012.

  1. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Добрый день всем.

    Колупаюсь сейчас с запросами, и вроде азы понятны, но на практике выходит туго. Помогите пожалуйста разобраться с конкретной проблемой.

    Есть некий примитивнейший запрос:

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

    {Форма.Форма.Форма(15)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить();
    по причине:
    {(7, 41)}: Не задано значение параметра "Розничная"
    ЦеныНоменклатуры.ТипЦен.Наименование = <<?>>&Розничная

    Вопрос такой: почему он ругается?? Как верно поставить условие??
    Я уже перестал корчить умного, и все делаю только конструктором. Но вот он уперся тут и все!!

    1с 8.2
    Конфигурация : Бухгалтерия для Казахстана 2.0
  2. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Параметр у запроса нужно объявлять:
    Код:
    Запрос.УстановитьПараметр("Розничная", НаименованиеРозничнойЦены);
    Только я вам не советую делать по наименованию, лучше оставить по типу цен, который имеет ссылочный тип на справочник Типы цен (достаточно одного пробела в вашем наименовании, и запрос у вас работать не будет)
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Смотрите в СП УстановитьПараметр
  4. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    хм...
    По предущим советам интуитивно передал на вот так:

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

    Но я пытался уже ссылаться в самом запросе на справочник с типами цен. 1С меня усердно посылал.


    Я понимаю, что я пока еще нихрена не понимаю......................

    Ушел дальше ковырять SQL :angry2:

    Откликнувшимся Merci
  5. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.756
    Симпатии:
    509
    Баллы:
    204
    Вопрос закрыт ?
  6. TopicStarter Overlay
    CSCO12103692
    Offline

    CSCO12103692 Опытный в 1С

    Регистрация:
    19 июн 2012
    Сообщения:
    190
    Симпатии:
    0
    Баллы:
    26
    Да

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