Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Параметры запроса

Параметры запроса
Я
   SkAt
 
22.10.18 - 11:56
Доброго времени суток! Собственно, может ответ очевидный, но я никак не могу сообразить. Есть Запрос вида

ВЫБРАТЬ
  Док.Ссылка КАК Ссылка
  ...

ГДЕ
  Док.Дата >= ДАТАВРЕМЯ(&Год,1,1,0,0,0)
  И Док.Дата <= ДАТАВРЕМЯ(&Год,1,1,23,59,59)

Неверный синтаксис запроса. Как мне передавать в качестве параметра год? 
Заранее спасибо
 
 
   Buster007
 
1 - 22.10.18 - 11:57
а что полностью дату нельзя передать, раз ты год передаешь?)
   Buster007
 
2 - 22.10.18 - 11:59
я даже никогда не пробовал применить как ты, но подозреваю, что в эту функцию нельзя передать параметры.
   Ненавижу 1С
 
3 - 22.10.18 - 12:01
(2) это не функция вообще
   ktibo
 
4 - 22.10.18 - 12:07
Где Год(Док.Дата) = &Год И Месяц(Док.Дата) = 1 И День(Док.Дата)= 1
   Zmich
 
5 - 22.10.18 - 12:09
(0). Можно так:
Запрос.Текст = "... ГДЕ Док.Дата >= ДАТАВРЕМЯ(" + ПеременнаяГод + ",1,1,0,0,0) И ..."
в таком случае не понадобится вообще параметр Год.
   Alexandr_U1982
 
6 - 22.10.18 - 12:15
(0)
Е.Ю. Хрусталева. "Язык запросов 1С6Предприятия 8", 2013 г.
Глава 4. Оптимизация запросов

Не использовать в запросе функции от параметров
В языке запросов существуют разнообразные функции – функции для работы со
строками, функции для работы с датами и т. п. Нежелательно вычислять в запросе
значение этих функций от переданных в запрос параметров.
...
Но такой запрос будет работать неоптимально, так как СУБД «не поймет», что в условии запроса
используется константа (значение параметра Дата).
   SkAt
 
7 - 22.10.18 - 12:16
(5) Отлично! То что нужно, спасибо. Вечно отношусь к тексту запроса не как к тексту))
   Alexandr_U1982
 
8 - 22.10.18 - 12:18
+(6)Дату лучше сформировать до выполнения запроса и передать в запрос в качестве параметра.
   1Сергей
 
9 - 22.10.18 - 12:18
Правильный ответ в (1)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует