Цитата:
Сообщение от
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("Дата пустая"); //условие не отрабатывает
Причем отладчик всегда бодро рапортует о нулевом значении переменной (на чем я, собственно, и подвис)