Имя: Пароль:
1C
1С v8
Проблема с пустой датой
,
0 dmitn
 
24.07.12
07:29
Есть пустые даты. Чтобы обойти это пишу следующее:


       Попытка
           Если (ПервоначальнаяСтоимость < 10000) И (ДатаВводаВЭксплуатацию < '20031208') Тогда
               Продолжить;
           КонецЕсли;
       Исключение
           Продолжить;
       КонецПопытки;



Ведь если дата = Неопределено, тогда должно быть Исключение ведь, а этого не происходит.
А также даты , которые < указанной тоже проходят.
Что за хрень?
1 Wobland
 
24.07.12
07:31
действительно, хрень. какая смысловая резница между твоиим двумя Продолжить?
2 dmitn
 
24.07.12
07:33
Ведь дата 00010101 всяко < указанной
3 Chai Nic
 
24.07.12
07:34
Неопределено - это не пустая дата.
4 dmitn
 
24.07.12
07:34
(1) смысл пропустить непроставленне даты
5 CepeLLlka
 
24.07.12
07:36
(4) Наркоман? :)
6 CepeLLlka
 
24.07.12
07:36
Хотя вроде нет..
7 dmitn
 
24.07.12
07:37
(3) а какая тогда? как сделать, чтобы пропустить Неопределенные даты?
8 Wobland
 
24.07.12
07:38
(7) дай определение неопределённой даты
9 dmitn
 
24.07.12
07:40
(8) Неопределено или Null
10 Wobland
 
24.07.12
07:40
(9) молодец! сравнивай с этими вещами да и всё. в чём проблема7
11 Красный рассвет
 
24.07.12
07:41
(9) Не делай через попытку, это быдлокод в данном случае. Проверяй тип значения даты
12 Wobland
 
24.07.12
07:41
вообще-то NULL - это неопределённое число, а Неопределено - неопределённая строка. шутка
13 chelentano
 
24.07.12
07:43
(7) (НЕ ЗначениеЗаполнено(Дата)) не предлагать?
14 MaXpaT
 
24.07.12
08:08
Если (ПервоначальнаяСтоимость < 10000) И (Не ЗначениеЗаполнено(ДатаВводаВЭксплуатацию) или ДатаВводаВЭксплуатацию < '20031208') Тогда
15 dmitn
 
24.07.12
08:57
(14) Так не работает.

В общем, благодаря совету (11) сделал так:


       Если ТипЗнч(ДатаВводаВЭксплуатацию)<>Тип("Дата") Тогда
           Продолжить;
       КонецЕсли;
       Если (ДатаВводаВЭксплуатацию < '20031208') Тогда
           Продолжить;
       КонецЕсли;
       Если (ПервоначальнаяСтоимость < 10000) Тогда
           Продолжить;
       КонецЕсли;



Теперь работает.
Спс
16 Serg_1960
 
24.07.12
09:19
(15) Зачем проверка на тип? "ДатаВводаВЭксплуатацию" составного типа? "Не верю!"(с)
17 Aprobator
 
24.07.12
09:21
(16) судя по всему у ТС она просто неизвестного типа )))
18 uraskin
 
24.07.12
09:33
пустая дата это
Дата('00010101')

КЭП!
19 Chai Nic
 
24.07.12
10:12
Есть штатная функция платформы ЗначениеЗаполнено, используй её.
Независимо от того, куда вы едете — это в гору и против ветра!