Имя: Пароль:
1C
1С v8
Некорректно отрабатывает РАЗНОСТЬДАТ с пустой датой
,
0 Пол Ньюман
 
21.10.13
14:56
В запросе поле считается как РАЗНОСТЬДАТ(Дата1, Дата2, ДЕНЬ)

Когда обе даты заполнены рассчитывается корректно, когда же Дата1 пустая, а дата2 заполнена(например 15.08.2014) то вместо положенных 735460 дней запрос выдает 95555.

При этом если в поле написать прямо РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ДАТАВРЕМЯ(2014, 8, 15, 0, 0, 0), ДЕНЬ) то разница выдается верная.

Сталкивался ли кто с подобным?
1 Armando
 
21.10.13
15:00
>> когда же Дата1 пустая
какое конкретно значение в этом поле?
2 Нуф-Нуф
 
21.10.13
15:00
что в Дата1?
3 Пол Ньюман
 
21.10.13
15:01
(1)(2) Проверял. Значение поля равно ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
4 Нуф-Нуф
 
21.10.13
15:02
(3) как так проверял?
5 Пол Ньюман
 
21.10.13
15:03
(4) Выбор когда Дата1 = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) Тогда Истина ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ПроверкаНулеваяЛи
6 Пол Ньюман
 
21.10.13
15:05
Предлагаю вам взять любую таблицу с полем типа дата, например любую таблицу документов за одну дату и проверить что выдает поле РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), Таблица.Дата, ДЕНЬ), и тут же добавить такое же поле где заменить Таблица.Дата на фактическую дату выраженную через ДАТАВРЕМЯ, и сообщить результаты. Если у вас подобного глюка не будет буду очень удивлен.
7 Пол Ньюман
 
21.10.13
17:53
?
8 Maxus43
 
21.10.13
17:57
от сдвига дат думаешь не зависит?
Зачем тебе количество дней с начала отсчета вобще?
ЕСли больно надо в запросе то и пиши,
Выбор Когда Дата1 = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) Тогда
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), Дата2, ДЕНЬ)
Иначе
РАЗНОСТЬДАТ(Дата1, Дата2, ДЕНЬ)
Конец
9 Пол Ньюман
 
21.10.13
18:09
(8) Что мне писать в запросе я догадаюсь сам, меня интересует почему так работает система. Это глюк, баг или я что-то не то делаю.
10 Serginio1
 
21.10.13
18:35
11 Serginio1
 
21.10.13
18:36
12 Пол Ньюман
 
22.10.13
14:33
(10) Большое спасибо. Понял.