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

Проблема с запросом

Автор MiThO, 28 мая 2021, 07:49

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

MiThO

Всем дорогого времени суток. Такая проблема создаю параметрический запрос в документе. Данные берутся из табличной части. Сам запрос должен выводить результат на печатную форму. Посмотрите пожалуйста и подскажите в чём может быть проблема.
&НаКлиенте
Процедура СписокЗаявок(Команда)
   ТабДок=Новый ТабличныйДокумент;
   ПечатьВДокументе(ТабДок);
   ТабДок.ОтображатьСетку=Ложь;
   ТабДок.Защита=Ложь;
   ТабДок.ТолькоПросмотр=Ложь;
   ТабДок.ОтображатьЗаголовки=Ложь;
   ТабДок.Показать();
КонецПроцедуры

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

antoneus

А в чем проблема-то?
Пока вижу, что параметр "Заявки" устанавливается, но в тексте запроса его нигде нет.

MiThO

{Документ.Заявки.Форма.ФормаСписка.Форма(27)}: Ошибка при вызове метода контекста (Выполнить)
Рез=Запрос.Выполнить().Выбрать();
по причине:
{(8, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ Документ.Заявки
Вот такую ошибку выдаёт когда пытаюсь запустить запрос.

MiThO

Цитата: antoneus от 28 мая 2021, 09:42
А в чем проблема-то?
Пока вижу, что параметр "Заявки" устанавливается, но в тексте запроса его нигде нет.
Про него забудьте, забыл удалит

antoneus

Запятую уберите после Заявки.НомерЗаявки

LexaK

Цитировать
{(8, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ Документ.Заявки

можно воспользоваться конструктором запросов
в конфигураторе там где
Запрос.Текст = "   ";
в строке "   " нажимаете правую кнопку мышки (ПКМ) и из меню выбираете команду Конструктор запроса,
в форме конструктора будут все ваши объекты справочники, документы и тд.
ответ Понравился? (в смысле пригодился?)

MiThO

Цитата: antoneus от 28 мая 2021, 10:28
Запятую уберите после Заявки.НомерЗаявки
Убрал, но выдало следующие:

{Документ.Заявки.Форма.ФормаСписка.Форма(27)}: Ошибка при вызове метода контекста (Выполнить)
Рез=Запрос.Выполнить().Выбрать();
по причине:
{(9, 5)}: Поле не найдено "ДатаЗаявки"
ГДЕ <<?>>ДатаЗаявки =&ДЗ

antoneus

ГДЕ Заявки.ДатаЗаявки =&ДЗ

А почему бы конструктором не воспользоваться?

MiThO

Цитата: antoneus от 28 мая 2021, 10:42
ГДЕ Заявки.ДатаЗаявки =&ДЗ

А почему бы конструктором не воспользоваться?
Спасибо что напомнили что существует конструктор, он мне помог сформировать обычный запрос, я прописал параметр в нём и выдаёт ошибку когда я пытаюсь запустить этот запрос.

//Сейчас так выглядит код

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

//Ошибка при запуске запроса
{Документ.Заявки.Форма.ФормаСписка.Форма(38)}: Ошибка при вызове метода контекста (Выполнить)
Рез=Запрос.Выполнить().Выбрать();
по причине:
{(13, 8)}: Не задано значение параметра "ДатаЗаявки"
Дата= <<?>>&ДатаЗаявки

LexaK

местами поменять
Запрос.УстановитьПараметр("Дата", ДатаЗаявки);
на
Запрос.УстановитьПараметр("ДатаЗаявки", Дата);
ответ Понравился? (в смысле пригодился?)

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск