Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 июл 2024, 07:59

Запрос с параметром

Автор Fenlou, 11 окт 2014, 11:06

0 Пользователей и 2 гостей просматривают эту тему.

Fenlou

Цитата: дфтын от 11 окт 2014, 13:41не, не хочу проверять.

Процедура Кнопка1Нажатие(Элемент)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Lenovo.ОперативнаяПамять,
                   |    Lenovo.ОС,
                   |    Lenovo.Камера
                   |ИЗ
                   |    Документ.Lenovo КАК Lenovo,
                   |ГДЕ
                   |    Lenovo.ОперативнаяПамять > &ПолеВвода2
                   |    И Lenovo.ОС = &ПолеВвода3
                   |    И Lenovo.Камера >= &ПолеВвода1
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    Nokia.ОперативнаяПамять,
                   |    Nokia.ОС,
                   |    Nokia.Камера
                   |ИЗ
                   |    Документ.Nokia КАК Nokia
                   |ГДЕ
                   |    Nokia.ОперативнаяПамять = &ПолеВвода2
                   |    И Nokia.ОС = &ПолеВвода3
                   |    И Nokia.Камера = &ПолеВвода1
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   |    Samsung.ОперативнаяПамять,
                   |    Samsung.ОС,
                   |    Samsung.Камера
                   |ИЗ
                   |    Документ.Samsung КАК Samsung
                   |ГДЕ
                   |    Samsung.ОперативнаяПамять = &ПолеВвода2
                   |    И Samsung.ОС = &ПолеВвода3
                   |    И Samsung.Камера = &ПолеВвода1";
               
Запрос.УстановитьПараметр("ПолеВвода2",ПолеВвода2);
Запрос.УстановитьПараметр("ПолеВвода3",ПолеВвода3); 
Запрос.УстановитьПараметр("ПолеВвода1",ПолеВвода1);
Результат = Запрос.Выполнить();
ЭлементыФормы.ТабличноеПоле1.Значение=Результат.Выгрузить();
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
   
КонецПроцедуры

так не правильно!

дфтын

Ну, синтаксических и идеологических ошибок не вижу. следовательно верно.

А что не правильно?вы развернуто пишите, что сообщило, что не отображает. а то много теряем букв на пустые вопросы и перевопрсоы
Засуньте в Консоль Запросов, посмотрите что будет отключив условия, потом вклчюив
Помог? Нажми - Спасибо :)
skype: Soprov1C

Fenlou

Цитата: дфтын от 11 окт 2014, 14:02
Ну, синтаксических и идеологических ошибок не вижу. следовательно верно.

А что не правильно?вы развернуто пишите, что сообщило, что не отображает. а то много теряем букв на пустые вопросы и перевопрсоы
Засуньте в Консоль Запросов, посмотрите что будет отключив условия, потом вклчюив
{ОбщаяФорма.Форма(46)}: Ошибка при вызове метода контекста (Выполнить): {(7, 1)}: Ожидается имя таблицы
<<?>>ГДЕ
Результат = Запрос.Выполнить();
по причине:
{(7, 1)}: Ожидается имя таблицы
<<?>>ГДЕ

дфтын

  Документ.Lenovo КАК Lenovo,

Запятую уберите
Помог? Нажми - Спасибо :)
skype: Soprov1C

Fenlou

Цитата: дфтын от 11 окт 2014, 14:10enovo КАК Lenovo,

Спасибо, а запрос правильный, сам по себе? И как в таблицу значений добавить колонку с наименование и моделью телефона?

дфтын

Запрос то что там написано - правильный,
добавить колонку, не понятно. в запросе выбирайте нужные наименования и модели, т.е. еще два поля добавьте  Samsung.Наименвоаниетелефона,  Samsung.Модельтелефона, ну где они у вас там лежат

Помог? Нажми - Спасибо :)
skype: Soprov1C

Fenlou

Цитата: дфтын от 11 окт 2014, 14:37Запрос то что там написано - правильный,
добавить колонку, не понятно. в запросе выбирайте нужные наименования и модели, т.е. еще два поля добавьте  Samsung.Наименвоаниетелефона,  Samsung.Модельтелефона, ну где они у вас там лежат
Проблема в том, что в реквизитах документа нету наименование телефона, наименование я написал в документе. А модель я добавил в запрос
Процедура Кнопка1Нажатие(Элемент)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   | Lenovo.ОперативнаяПамять,
                   | Lenovo.ОС,
                   | Lenovo.Камера,
                   | Lenovo.Модель
                   |ИЗ
                   | Документ.Lenovo КАК Lenovo
                   |ГДЕ
                   | Lenovo.ОперативнаяПамять > &ПолеВвода2
                   | И Lenovo.ОС = &ПолеВвода3
                   | И Lenovo.Камера >= &ПолеВвода1
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   | Nokia.ОперативнаяПамять,
                   | Nokia.ОС,
                   | Nokia.Камера,
                   | Nokia.Модель
                   |ИЗ
                   | Документ.Nokia КАК Nokia
                   |ГДЕ
                   | Nokia.ОперативнаяПамять = &ПолеВвода2
                   | И Nokia.ОС = &ПолеВвода3
                   | И Nokia.Камера = &ПолеВвода1
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   | Samsung.ОперативнаяПамять,
                   | Samsung.ОС,
                   | Samsung.Камера,
                   | Samsung.Модель
                   |ИЗ
                   | Документ.Samsung КАК Samsung
                   |ГДЕ
                   | Samsung.ОперативнаяПамять = &ПолеВвода2
                   | И Samsung.ОС = &ПолеВвода3
                   | И Samsung.Камера = &ПолеВвода1";
   
   
       

Запрос.УстановитьПараметр("ПолеВвода2",ПолеВвода2);
Запрос.УстановитьПараметр("ПолеВвода3",ПолеВвода3); 
Запрос.УстановитьПараметр("ПолеВвода1",ПолеВвода1);
Результат = Запрос.Выполнить();
ЭлементыФормы.ТабличноеПоле1.Значение=Результат.Выгрузить();
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
   
КонецПроцедуры

дфтын

Ну спроектируйте базу так как нужно вам. Наименование и модель  телефона это все таки, вероятно реквизит самого телефона, выбирая телефон можно получить и модель и телефон. как то так.
Помог? Нажми - Спасибо :)
skype: Soprov1C

Fenlou

Цитата: дфтын от 11 окт 2014, 15:02
Ну спроектируйте базу так как нужно вам. Наименование и модель  телефона это все таки, вероятно реквизит самого телефона, выбирая телефон можно получить и модель и телефон. как то так.
Спасибо, а как сделать если такого телефона нету, то вывести сообщение "Телефон отсутствует"
Вот код:
Процедура Кнопка1Нажатие(Элемент)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   | Lenovo.Бренд,
                   | Lenovo.Модель,
                   | Lenovo.ОперативнаяПамять,
                   | Lenovo.ОС,
                   | Lenovo.Камера
                   |ИЗ
                   | Документ.Lenovo КАК Lenovo
                   |ГДЕ
                   | Lenovo.ОперативнаяПамять > &ПолеВвода2
                   | И Lenovo.ОС = &ПолеВвода3
                   | И Lenovo.Камера >= &ПолеВвода1
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   | Nokia.Бренд,
                   | Nokia.Модель,
                   | Nokia.ОперативнаяПамять,
                   | Nokia.ОС,
                   | Nokia.Камера
                   |ИЗ
                   | Документ.Nokia КАК Nokia
                   |ГДЕ
                   | Nokia.ОперативнаяПамять = &ПолеВвода2
                   | И Nokia.ОС = &ПолеВвода3
                   | И Nokia.Камера = &ПолеВвода1
                   |
                   |ОБЪЕДИНИТЬ ВСЕ
                   |
                   |ВЫБРАТЬ
                   | Samsung.Бренд,
                   | Samsung.Модель,
                   | Samsung.ОперативнаяПамять,
                   | Samsung.ОС,
                   | Samsung.Камера
                   |ИЗ
                   | Документ.Samsung КАК Samsung
                   |ГДЕ
                   | Samsung.ОперативнаяПамять = &ПолеВвода2
                   | И Samsung.ОС = &ПолеВвода3
                   | И Samsung.Камера = &ПолеВвода1";
   
   
       

Запрос.УстановитьПараметр("ПолеВвода2",ПолеВвода2);
Запрос.УстановитьПараметр("ПолеВвода3",ПолеВвода3); 
Запрос.УстановитьПараметр("ПолеВвода1",ПолеВвода1);
Результат = Запрос.Выполнить();
ЭлементыФормы.ТабличноеПоле1.Значение=Результат.Выгрузить();
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
   
КонецПроцедуры

дфтын

Если Запрос.ПУстой() Тогда
Сообщить("нету");
КонецЕсли;
Помог? Нажми - Спасибо :)
skype: Soprov1C

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск