Как выразить дату в запросе 8.1 #672093


#0 by DenSpb
Почему не работает в запросе    ДАТАВРЕМЯ(ВЫРАЗИТЬ(ЗатратыНаОбработку.ПериодГод КАК Число), 1, 1) ? Почему говорит, что "Неверные параметры ДатаВремя"?
#1 by Волшебник
см. НачалоПериода и Формат
#2 by Ненавижу 1С
Функция ГОД Данная функция предназначена для вычисления номера года из значения типа ДАТА. Параметр функции – это выражение, имеющее тип ДАТА. Если в качестве параметра фигурирует значение типа Дата, то результатом функции будет значение типа ЧИСЛО. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и приводят к ошибке исполнения запроса.
#3 by Поросенок Петр
Оба мимо. Квалификаторы числа не спасают?
#4 by DenSpb
НАЧАЛОПЕРИОДА(<Дата>, <Период>)   - все равно нужна дата, а чтобы ее получить надо использовать ДАТАВРЕМЯ
#5 by shuhard
и ты с ними
#6 by DenSpb
это как?
#7 by Maxus43
дак запрос... легче НАЧАЛОПЕРИОДА(ЗатратыНаОбработку.Период, ГОД)
#8 by Ненавижу 1С
ДАТАВРЕМЯ ни разу не функция
#9 by Поросенок Петр
...КАК Число ), 1
#10 by Поросенок Петр
Но имхо не взлетит.
#11 by DenSpb
У меня есть реквизит ГОД тип число и месяц в виде перечисления. Месяц я могу получить через ВЫБОР. Соответственно, по номеру года и месяца мне нужно получить дату в запросе.
#12 by Поросенок Петр
А нахрена тогда "выразить"?
#13 by Мыш
ВЫРАЗИТЬ не поменяет тип значения. Оно только для представления.
#14 by Ненавижу 1С
ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,1,1),ГОД,ТвойГод) ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,1,1),ГОД,ТвойГод),МЕСЯЦ,ТвойМесяц)
#15 by Fragster
ДАТАВРЕМЯ(ТвойГод,1,1) ДАТАВРЕМЯ(ТвойГод,ТвойМесяц,1)
#16 by Мыш
+ Блин, т.е. не так. ВЫРАЗИТЬ служит для приведения составного типа к одному типу из его составляющих. Во всяком случае так в справке. Ну и тоже в своё время напарывался на невозможность преобразовать тип значения внутри запроса.
#17 by Ненавижу 1С
не взлетит, см
#18 by Fragster
тогда не взлетит и
#19 by Ненавижу 1С
обоснуй?
#20 by kumena
я задавал подобный вопрос на партнерском, ответ такой "В языке запросов ДатаВремя это не функция, а литерал типа дата. Соответственно в нем можно использовать только константные значения."
#21 by Ненавижу 1С
зачем задавал? об этом написано в справке конфигуратора
#22 by kumena
не прочитал :)
#23 by DenSpb
запрос отрабатывает, но при переходе через конец года, выдает неправильное значение, но работает.
#24 by DenSpb
ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,1,1),ГОД,ТвойГод-1),МЕСЯЦ,ТвойМесяц-1) Вот так правильно!!! Всем спасибо!!!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С