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