Передать параметр с годом в дату

1. katyabelova 14.11.19 14:23 Сейчас в теме
Здравствуйте, уважаемые участники форума!
Подскажите пожалуйста, можно ли как-то в запросе передавать параметр для части даты?
Запрос для выборки договоров по дате, в которой год передаётся параметром в процедуру, код ниже.
Как я поняла, с ДАТАВРЕМЯ() такой фокус не получится. Возможно, есть какие-то альтернативы?
Заранее спасибо!

Процедура Тест(Год)
	ГодБезПробела = Строка(Год);
	ГодБезПробела = СтрЗаменить(ГодБезПробела, Символы.НПП, "");
	 	
 	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Год", Год); 
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Договоры.Ссылка как Договор 
		|ИЗ
		|	Справочник.Договоры КАК Договоры
		|ГДЕ
		|	Договоры.ДатаДоговора МЕЖДУ ДАТАВРЕМЯ(&Год, 1,1) И ДАТАВРЕМЯ(&Год, 12, 31) 
		|	И Договоры.НаправлениеДеятельности.Наименование = ""Сельхоз"" ";
		 	
	РезультатЗапроса = Запрос.Выполнить();
 
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
5. user623969_dusa 14.11.19 14:31 Сейчас в теме +0.3 $m
(4) да я разрешил пусть делает так только заменит Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Год", 2019)
перед выполнением запроса
katyabelova; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user623969_dusa 14.11.19 14:25 Сейчас в теме
4. nomad_irk 72 14.11.19 14:27 Сейчас в теме
(1) Не нужно приводить значение к строке в данном случае и используйте конструкцию

|ГДЕ
| Год(Договоры.ДатаДоговора) = &Год

&ГОД в данном случае должен быть числом.
5. user623969_dusa 14.11.19 14:31 Сейчас в теме +0.3 $m
(4) да я разрешил пусть делает так только заменит Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Год", 2019)
перед выполнением запроса
katyabelova; +1 Ответить
7. nomad_irk 72 14.11.19 14:43 Сейчас в теме
(5)В параметр должно передаваться числовое значение, а не строковое и заменять в тексте запроса ничего не нужно.
Сделав Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Год", 2019), в тексте запроса вы получите "2 019"
8. user623969_dusa 14.11.19 14:53 Сейчас в теме
(7) внимательнее, не боимся, строковая переменная Текст у запроса числовые данные внутри себя не разбивает на подгруппы, в строке 2019 запроса она не превратится в 2 019 к остальному вопросов нет.. если же передавать Число(2019) то конечно надо преобразовать Форматом
10. katyabelova 14.11.19 15:03 Сейчас в теме
(5) Спасибо, разобралась
3. platonov.e 158 14.11.19 14:26 Сейчас в теме
Вам нужно начало года и конец года?
6. login1020 133 14.11.19 14:36 Сейчас в теме
К чему все эти сложности? По запросу видно что дата договора между началом и концом года.
Передавать сразу год, а в тексте писать
ГДЕ
	Договоры.ДатаДоговора МЕЖДУ &началопериода  И &конецПериода

ИЛИ
ГДЕ
	Договоры.ДатаДоговора  МЕЖДУ НАЧАЛОПЕРИОДА(&Год, ГОД) И КОНЕЦПЕРИОДА(&Год, ГОД) 


Только дату передавать как дату,а не строку
platonov.e; +1 Ответить
9. Sashares 34 14.11.19 15:02 Сейчас в теме
Поддержу (6) лучше до запроса сформировать параметры с датой на основе года для начала и окончания периода.
Чем меньше дополнительных вычислений в запросе, тем он быстрее выполнится.
11. katyabelova 14.11.19 15:05 Сейчас в теме
Большое спасибо. всем кто откликнулся :3
Оставьте свое сообщение

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