Ошибка в запросе в 1С

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


Конфигуратор выдаёт такую ошибку
{Документ.ПеремещениеТоваров.МодульМенеджера(6780,36)}: Переменная не определена (Выборка)
Запрос.УстановитьПараметр("Дата", <<?>>Выборка.ДатаВремяВыезда); (Проверка: Сервер)


Если
Запрос.УстановитьПараметр("Дата", Выборка.ДатаВремяВыезда);
закоментить, то вылетает ошибка
{Документ.ПеремещениеТоваров.МодульМенеджера(6781)}: Ошибка при вызове метода контекста (Выполнить)
	РезультатЗапроса = Запрос.Выполнить();
по причине:
{(3, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ


Что мне нужно: Необходимо в макет вывести курс рубля к евро, т.е. число должно быть в ячейке.
+
По теме из базы знаний
Найденные решения
8. Boneman 298 17.08.17 13:03 Сейчас в теме
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КурсыВалютСрезПоследних.Курс
		|ИЗ
		|	РегистрСведений.КурсыВалют.СрезПоследних(&НаДату, Валюта.Код = ""978"") КАК КурсыВалютСрезПоследних";
	
//код евро 978
	Запрос.УстановитьПараметр("НаДату", ТекущаяДата()); //Дата курса, можно поставить любую
 	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	НашКурс = 0;
	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		// Вставить обработку выборки ВыборкаДетальныеЗаписи
                НашКурс = ВыборкаДетальныеЗаписи.Курс;
	КонецЕсли;
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Показать
Denis_CFO; +1
38. Vhett 17.08.17 15:42 Сейчас в теме
Получилось. Спасибо большое тем кто подсказывал.

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    КурсыВалютСрезПоследних.Курс
        |ИЗ
		|	 Документ.ПеремещениеТоваров КАК ПеремещениеТоваров,
        |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта.Код = ""001"") КАК КурсыВалютСрезПоследних";

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

	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписиКурсВалют = РезультатЗапроса.Выбрать();
    Если ВыборкаДетальныеЗаписиКурсВалют.Следующий() Тогда
		ОбластьЗагрузка.Параметры.КурсРуб=ВыборкаДетальныеЗаписиКурсВалют.КУРС;
    КонецЕсли;	
	ТабДок.Вывести(ОбластьЗагрузка);
Показать
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Boneman 298 17.08.17 12:56 Сейчас в теме
(1)
Запрос.УстановитьПараметр("Ссылка", Ссылка);

а это нафига ?
в твоем запросе и параметра такого нет
+
4. Nigmatul 17.08.17 12:56 Сейчас в теме
(1)Тебе четко говорят "Выборка" не понятна, отладчиком посмотри что туда падает и сразу все встанет на места.
+
5. Denis_CFO 48 17.08.17 12:57 Сейчас в теме
(1)
КурсыВалютСрезПоследних.Курс КАК КУРС,
запятую убери
pm74; Vhett; +2
10. Vhett 17.08.17 13:05 Сейчас в теме
(5) блин, проглядел. Благодарю.
Пишет:
{Документ.ПеремещениеТоваров.МодульМенеджера(6781)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(4, 43)}: Не задано значение параметра "Дата"
РегистрСведений.КурсыВалют.СрезПоследних(<<?>>&Дата, ) КАК КурсыВалютСрезПоследних


А этим запросом пытаюсь задать значение Дата
Запрос.УстановитьПараметр("Дата", Выборка.ДатаВремяВыезда);
если я прав конечно.
+
7. Denis_CFO 48 17.08.17 13:02 Сейчас в теме
(1)
Товарищи, подскажите пожалуйста, где я ошибся?
Даже в выборе специализации. В 11 строках кода 6 грубых ошибок.
+
9. Denis_CFO 48 17.08.17 13:04 Сейчас в теме
(1) ГДЕ здесь не нужно. После даты поставь условие, "Валюта = &Валюта"... В (8) уже ответили.
+
11. Vhett 17.08.17 13:07 Сейчас в теме
(9)
ГДЕ здесь не нужно.

Мне нужно по конкретной валюте курс указать. Их там несколько. Потому написал конкретный код.
+
12. Denis_CFO 48 17.08.17 13:11 Сейчас в теме
(11) в (8) внимательно посмотри. СрезПоследних - это виртуальная таблица.Зачем нагружать платформу лишним "ГДЕ"? "Тыж программист"!
+
13. pm74 199 17.08.17 13:11 Сейчас в теме
(11) речь не про условие , а о том где его писать
Denis_CFO; +1
37. YanTsys 12 17.08.17 15:35 Сейчас в теме
Ярослав, советую такие простые запросы делать конструктором запроса, и потом сравнивать что написали вы и что предложил конструктор, например (001) конструктор бы сжевал и проглотил сразу. И запятую после КУРС он тоже естественно не поставил бы...
+
42. DJDUH 17 17.08.17 16:04 Сейчас в теме
(1) перед из убери запятую
+
2. Boneman 298 17.08.17 12:54 Сейчас в теме
весь код давай, а не только запрос.
Где у тебя инициализируется Выборка.ДатаВремяВыезда ? Это что за выборка, какой то цикл, или еще один запрос ?
+
6. pm74 199 17.08.17 12:59 Сейчас в теме
"КУРС," упс уже ответили до меня
+
8. Boneman 298 17.08.17 13:03 Сейчас в теме
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КурсыВалютСрезПоследних.Курс
		|ИЗ
		|	РегистрСведений.КурсыВалют.СрезПоследних(&НаДату, Валюта.Код = ""978"") КАК КурсыВалютСрезПоследних";
	
//код евро 978
	Запрос.УстановитьПараметр("НаДату", ТекущаяДата()); //Дата курса, можно поставить любую
 	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	НашКурс = 0;
	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		// Вставить обработку выборки ВыборкаДетальныеЗаписи
                НашКурс = ВыборкаДетальныеЗаписи.Курс;
	КонецЕсли;
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
Показать
Denis_CFO; +1
14. Vhett 17.08.17 13:18 Сейчас в теме
(8)
{Документ.ПеремещениеТоваров.МодульМенеджера(6778,37)}: Ожидается выражение
Запрос.УстановитьПараметр("НаДату",<<?>> &ТекущаяДата()); (Проверка: Сервер)
{Документ.ПеремещениеТоваров.МодульМенеджера(6778,52)}: Неопознанный оператор
Запрос.УстановитьПараметр("НаДату", &ТекущаяДата()<<?>>); (Проверка: Сервер)
{Документ.ПеремещениеТоваров.МодульМенеджера(6779,28)}: Обнаружено логическое завершение исходного текста модуля
РезультатЗапроса = Запрос.<<?>>Выполнить(); (Проверка: Сервер)


Не пошло =(
+
17. pm74 199 17.08.17 13:23 Сейчас в теме
(14)
&ТекущаяДата()
без амперсанда просто ТекущаяДата()
+
18. Boneman 298 17.08.17 13:24 Сейчас в теме
(14)
Не пошло =(

тебе зачем текущая дата ? это пример был, а не пример тупо копипастить.
Тебе дата документа скорее всего нужна...
в менеджер тебе ее параметром надо загнать..и фиг знает что у тебя там за процедура такая, и в запрос подставить.
+
20. pm74 199 17.08.17 13:26 Сейчас в теме
(18) (19) да ладно вам человека клевать , все с чего то начинали
+
22. Denis_CFO 48 17.08.17 13:27 Сейчас в теме
(20)
да ладно вам человека клевать
мотивировать.
+
25. pm74 199 17.08.17 13:29 Сейчас в теме
(22) нужно как то добрее
+
35. Denis_CFO 48 17.08.17 13:51 Сейчас в теме
(25) это специализированный профессиональный форум. Для изучения основ куча форумов, профессиональные курсы, в конце-концов сайт из 10*100 нулей. а приходить сюда для того, чтобы решить вопрос, за который ТС получит своё вознаграждение - это Не ЕстьХорошо();
+
23. rusia 17.08.17 13:27 Сейчас в теме
(14)конечно, не пошло. Всунуть функцию под амперсант... В такой противоестественной позе не ходят.
+
15. Boneman 298 17.08.17 13:19 Сейчас в теме
у ТС, походу напрочь отсутствуют базовые знания о построении программ, о назначении переменных, параметров, организации циклов..не говоря уж о запросах.
Книжки и видеокурсы в помощь, а потом уже вопросы. Это все - таки серьезная система, для бизнеса, и требует нормальных начальных знаний.
Такой уровень, у меня в 7м классе школы был, когда на спектруме на бейсике первые программы составлял.
+
16. Vhett 17.08.17 13:23 Сейчас в теме
(15) добрый люди. Вместо помощи, камнями кидаться.
+
19. Denis_CFO 48 17.08.17 13:25 Сейчас в теме
(16)
Специализация: Программист 1С
а зачем вот такой статус ставишь? "за наколочку ответить надо..." (с) народное
+
21. Vhett 17.08.17 13:27 Сейчас в теме
(19) Как добавят "Начинающий в 1С", тогда сменю, уважаемый.
+
24. Denis_CFO 48 17.08.17 13:28 Сейчас в теме
(21) ты лучше свою поделку выложи с полным кодом, тогда и ответ полный получишь.
+
27. Vhett 17.08.17 13:37 Сейчас в теме
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
        |    КурсыВалютСрезПоследних.Курс
        |ИЗ
        |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта.Код = 001) КАК КурсыВалютСрезПоследних";

	Запрос.УстановитьПараметр("Дата", Выборка.ДатаВремяВыезда);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		ОбластьЗагрузка.Параметры.КурсРуб=ВыборкаДетальныеЗаписиКурсРуб.КУРС;
    КонецЕсли;

	
	ТабДок.Вывести(ОбластьЗагрузка);
Показать

(24) а полного кода здесь 7200 строк.
(26) я не жду готового решения. А прошу помочь с правильным построением запроса. Ибо раньше не приходилось строить их в 1С.
+
29. rusia 17.08.17 13:40 Сейчас в теме
(27) возвращаемся в начало. Кто такая Выборка, откуда она, с чем ее едят и откуда у нее ДатаВремяВылета? И код валюты число или строка?
+
30. Denis_CFO 48 17.08.17 13:41 Сейчас в теме
(27)
Запрос = Новый Запрос("
		ВЫБРАТЬ
        |    КурсыВалютСрезПоследних.Курс КАК Курс
        |ИЗ
        |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта.Код = "001") КАК КурсыВалютСрезПоследних");
//Выборка.ДатаВремяВылета - не знаю, что это за дата. И не факт, что это дата
	Запрос.УстановитьПараметр("Дата", Дата(2017,08,01)); 
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		ОбластьЗагрузка.Параметры.КурсРуб=ВыборкаДетальныеЗаписи.Курс;
    КонецЕсли;



	ТабДок.Вывести(ОбластьЗагрузка);
Показать


обрати внимание на комментарии.
+
31. dmbarchenkov 17.08.17 13:43 Сейчас в теме
(30)
| РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта.Код = "001") КАК КурсыВалютСрезПоследних");
, здесь Код = ""001"" надо в двойных ковычках
YanTsys; Denis_CFO; +2
33. Denis_CFO 48 17.08.17 13:44 Сейчас в теме
32. Denis_CFO 48 17.08.17 13:43 Сейчас в теме
(27) если это внешняя обработка - выложи сюда, никому здесь твоя нетленка точно не нужна.
+
34. Boneman 298 17.08.17 13:45 Сейчас в теме
(27)
А прошу помочь с правильным построением запроса. Ибо раньше не приходилось строить их в 1С.

в запросе, там и строить нечего. 3строки.
Ты разберись, что ты в него параметрами задаешь.

я задавал вопрос..
повторю
что в
Выборка.ДатаВремяВылета
?
Поставь отладчик на эту строку, и посмотри что там ?

далее,
я тебе в примере привел уже текстом,
Валюта.Код = ""978""
ты ставишь Валюта.Код = 001
ты это сделал специально ? У тебя код справочника валюты в конфигурации числовой ? И почему 001 ?
+
38. Vhett 17.08.17 15:42 Сейчас в теме
Получилось. Спасибо большое тем кто подсказывал.

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    КурсыВалютСрезПоследних.Курс
        |ИЗ
		|	 Документ.ПеремещениеТоваров КАК ПеремещениеТоваров,
        |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта.Код = ""001"") КАК КурсыВалютСрезПоследних";

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

	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписиКурсВалют = РезультатЗапроса.Выбрать();
    Если ВыборкаДетальныеЗаписиКурсВалют.Следующий() Тогда
		ОбластьЗагрузка.Параметры.КурсРуб=ВыборкаДетальныеЗаписиКурсВалют.КУРС;
    КонецЕсли;	
	ТабДок.Вывести(ОбластьЗагрузка);
Показать
+
39. Denis_CFO 48 17.08.17 15:48 Сейчас в теме
(38)
КодВалют= Новый Массив;
КодВалют.Добавить("001");
Запрос.УстановитьПараметр("КодВалют",КодВалют);
вот это на фуагра??? Нигде не участвует.
и вот это:
ПеремещениеТоваров.Аэромар_Рейс.ДатаВылета КАК ДатаВремяВылета,
+
41. Vhett 17.08.17 16:02 Сейчас в теме
(39) всё почистил уже.
+
40. Denis_CFO 48 17.08.17 15:53 Сейчас в теме
(38)
Документ.ПеремещениеТоваров КАК ПеремещениеТоваров,
вот такое не будет работать при некотором событии.
Прикрепленные файлы:
+
26. Boneman 298 17.08.17 13:30 Сейчас в теме
(16)
Вместо помощи, камнями кидаться.

ты ждешь готового решения,не имея представления как это вообще работает....
если хочешь научится - начни с книжек и видеокурсов. Благо сейчас этого добра в интернете навалом.
Лично я, что по 77 - самоучкой учился, так учебник на мисте как настольная книга был.
так и 8.3 - чтобы разобраться, месяц, вечерами курс чистова отсматривал...ну и конечно подготовка после других языков программирования, помогла.
ну, и практика-практика.
А у тебя, видно, даже базы нет. Не советы, а обучение требуется.
+
28. uk09 17.08.17 13:37 Сейчас в теме
Ярослав, добрый день!
Ваш вопрос - актуален ?
+
36. ssega 17.08.17 14:35 Сейчас в теме
имхо это какая то разводка :)))) , может за рулем блондинка?

топикстартеру: открываем отладчик и в отладчике внимательно проверяем ход выполнения
программы пошагово, с проверкой всех переменных, какой у них тип и значение
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот