Показать сообщение отдельно
Старый 05.09.2008, 08:46   #3  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
И видимо поэтому функция endMth, которая принимает пустую дату - видит что это как бы не дата и возвращает попросту 0
В том-то и дело, что нет Функции работают с dateNull() как с обычными датами. Причем, что интересно, явное присвоение переменной любой даты из 1900-го года сбрасывает ее значение на 01\01\1900. А присвоение ей значения из того же диапазона с помощью встроенных функций работает как с любыми другими датами
X++:
    TransDate   testDate;

    ;

    testDate = 01\02\1900;          

    info(date2strXpp(testDate));    // 01\01\1900

    if (!testDate)
        info("Дата пустая");        //условие отрабатывает

    testDate = endMth(dateNull()) + 1;  

    info(date2strXpp(testDate));    // 01\02\1900

    if (!testDate)
        info("Дата пустая");        //условие не отрабатывает
Причем отладчик всегда бодро рапортует о нулевом значении переменной (на чем я, собственно, и подвис)

Последний раз редактировалось Yprit; 05.09.2008 в 08:47. Причина: добавил про отладчик
За это сообщение автора поблагодарили: alex55 (1), Vlad_ (1).