Имя: Пароль:
1C
1С v8
Параметр в запросе в функции ДатаВремя
0 Kifsif
 
19.10.14
09:06
Нахожусь в консоли. В конструкторе запроса хочу на закладке "Условия" задать год в качестве параметра.
Т.е. у меня вот так сейчас:
НачалоПериода(АвансовыйОтчетВыданныеАвансы.ДокументАванса.Дата) =
ДатаВремя(2014, 2, 18)

В конструкторе сразу облом. Пробую отредактировать уже сформированный текст запроса вручную вот так:
Пробую НАЧАЛОПЕРИОДА(АвансовыйОтчетВыданныеАвансы.ДокументАванса.Дата, ДЕНЬ) = ДАТАВРЕМЯ(&Год, 2, 18)

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

Можно попробовать сформировать текст запроса программно: подсунуть переменную. Но это нагромождение какое-то.

Что-то я не чувствую вот этот момент - почему я не могу задать здесь параметр? Есть же за этим какая-то логика.
1 shuhard_серый
 
19.10.14
09:30
(0) а почему 1С должна заменять литерал параметром

ну и правильный ответ
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 2, 18), ГОД, &Год), ГОД, -1) КАК ДатаЛитераломИПараметром
2 prosto-nik
 
19.10.14
10:56
+(1) ну или так
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 2, 18), ГОД, &Год - 1)
3 shuhard_серый
 
19.10.14
11:01
(2) угу
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший