|
НАЧАЛОПЕРИОДА в запросе и NULL | ☑ | ||
---|---|---|---|---|
0
CaIIIka
04.01.20
✎
10:36
|
Здравствуйте! Всех с Новым Годом!
Есть простой запрос: ВЫБРАТЬ БигС.Док КАК Док, БигС.Номер КАК Номер, БигС.Дата КАК Дата, ЕстьNULL(БигС.Дата,ДАТАВРЕМЯ(0001,01,01,0,0,0)), НАЧАЛОПЕРИОДА(ЕстьNULL(NULL,ДАТАВРЕМЯ(0001,01,01,0,0,0)), ДЕНЬ) КАК Пр ИЗ (ВЫБРАТЬ NULL Док,NULL Номер,NULL Дата) КАК БигС Возвращает: Док Номер Дата Поле1 Пр NULL NULL NULL 01.01.01 0:00:00 01.01.01 0:00:00 Если поменять на НАЧАЛОПЕРИОДА(ЕстьNULL(БигС.Дата, ..... то пишет: Неверные параметры "НАЧАЛОПЕРИОДА", НАЧАЛОПЕРИОДА(<<?>>ЕстьNULL(БигС.Дата,ДАТАВРЕМЯ(0001,01,01,0,0,0)), ДЕНЬ) КАК Пр В третьем поле NULL, в четвертом поле функция прекрасно работает, в пятом с прямым указанием NULL тоже работает.... Вопрос: Чё ему надо??? |
|||
1
CaIIIka
04.01.20
✎
10:38
|
8.2.19.130
|
|||
2
CaIIIka
04.01.20
✎
10:48
|
В 8.3.10 аналогично. После НГ и так тяжко себя в руки взять, а тут такое :)
PS Запрос не привязан к БД, можно в консоли в любой базе попробовать. |
|||
3
ДенисЧ
04.01.20
✎
10:49
|
ЕстьNULL(NULL,ДАТАВРЕМЯ(0001,01,01,0,0,0))
А зачем так? |
|||
4
ДенисЧ
04.01.20
✎
10:50
|
И чо от от этого ожидалось?
|
|||
5
CaIIIka
04.01.20
✎
10:55
|
Мне нужно, чтобы работало НАЧАЛОПЕРИОДА(ЕстьNULL(БигС.Дата,ДАТАВРЕМЯ(0001,01,01,0,0,0)), ДЕНЬ)
Запрос строится в цикле в зависимости от различных условий. Пустой запрос нужен для обозначения полей в объединении. Изначально было НАЧАЛОПЕРИОДА(БигС.Дата, ДЕНЬ). Работает. Но если ничего не объединялось, а был только пустой запрос, то вылезла ошибка. Поставил ЕстьNULL, тоже самое. Остальное в (0). |
|||
6
CaIIIka
04.01.20
✎
10:59
|
Немного повторюсь: "В третьем поле NULL, в четвертом поле функция прекрасно работает, в пятом поле с прямым указанием NULL тоже работает...."
|
|||
7
ДенисЧ
04.01.20
✎
11:05
|
||||
8
ДенисЧ
04.01.20
✎
11:06
|
Работает без ругани...
|
|||
9
CaIIIka
04.01.20
✎
11:10
|
(8) Я прекрасно понимаю, что НГ не я один встречал, так что сейчас это норм. Почитайте, пожалуйста, (0) :)))
Есть простой запрос... Возращает... Если поменять.... то ошибка... У Вас в (7) пункт номер 2 из (0) выполняется |
|||
10
ДенисЧ
04.01.20
✎
11:13
|
(9) Вот именно, что НГ. Нужно думать, что требуешь от программы...
http://pics.wfido.ru/img/2020-01-04_11-12-25_g3qqs.png |
|||
11
CaIIIka
04.01.20
✎
11:27
|
(10) Ух ты... Спасибо, добрейший! В (6), вроде, логично все показалось - в поле установил NULL, потом из него дату сделал. А, оказывается, нужен был "датированный" NULL... Понятно, что тип значения в поле обозначить - не лишнее. Но ведь на выходе я свое поле делаю, на основании данных из другого поля по принципу ВЫБОР КОГДА NULL...
|
|||
12
ДенисЧ
04.01.20
✎
11:31
|
Хоть и говорят, что в 1с нет типизирования, но иногда оно есть.
|
|||
13
CaIIIka
04.01.20
✎
11:39
|
(12) Д вот... При чем конструкция
ВЫБОР КОГДА БигС.Дата Есть NULL ТОГДА ДАТАВРЕМЯ(0001,01,01,0,0,0) ИНАЧЕ НАЧАЛОПЕРИОДА(БигС.Дата, ДЕНЬ) КОНЕЦ ту же ошибку выдает, ругаясь на текст после ИНАЧЕ!... Хотя тут вообще конкретно все указано. В итоге вообще ушел от ЕстьNULL, типизируя в итоговом поле НАЧАЛОПЕРИОДА(Выразить(БигС.Дата как Дата), ДЕНЬ) КАК Пр ИЗ (ВЫБРАТЬ NULL Док,NULL Номер,NULL Дата) КАК БигС Еще раз спасибо! С Уважением, и всего наилучшего!!! |
|||
14
ДенисЧ
04.01.20
✎
11:54
|
(13) После иначе у тебя идёт НАЧАЛОПЕРИОДА(БигС.Дата, ДЕНЬ). Но нигде не сказано, какого типа БигС.Дата, и что это вообще дата. Поэтому НачалоПериода и ругается
|
|||
15
Flyd-s
04.01.20
✎
14:28
|
ВЫРАЗИТЬ(NULL КАК Дата) - жестокая конструкция
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |