Имя: Пароль:
1C
 
Пустая дата при OLE доступе к ревизитам объекта типа "дата"
0 rem4755
 
09.02.11
18:12
V77App = СоздатьОбъект("V77S.Application");
V77App.Initialize(V77App.RMTrade,КоманднаяСтрока, "NO_SPLASH_SHOW");
вКонтрАгенты = V77App.CreateObject(Справочник.КонтрАгенты ");
вДоговоры = V77App.CreateObject("Справочник.Договоры");
вКонтрАгенты .НайтиПокоду(КонтрАгент.Код);
вКонтрАгент= вКонтрАгенты .ТекущийЭлемент();
вДоговор = вКонтрАгент.ОсновнойДоговор ;
вНачДата = = вДоговор .ДатаВоникновенияОбязательства;
Если ДатаВоникновенияОбязательства- пустая дата, то в вНачДата  возвращает '30.12.1899'. Как так? Если не пустая, то нормально.
1 andrewks
 
09.02.11
18:13
обработать проблема?
2 rem4755
 
09.02.11
18:16
(1) В смыле Если вНачДата = '30.12.1899' Тогда...
Обработать это не проблема, но почему '30.12.1899' и не слуйное ли это значение?
3 fedoss
 
09.02.11
18:17
В 1С пустые даты всегда через ОЛЕ получаются как '30.12.1899'.
Используй что-то типа
_Дата = ?(ОЛЕДата = '30.12.1899', '', ОЛЕДата)
4 rem4755
 
09.02.11
18:22
(3) Если всегда и для длюбой базы, то тогда все ОК. Я и не знал. Но почему именно '30.12.1899'. Интересно просто...
Спасибо за информацию.
5 andrewks
 
09.02.11
18:27
(4) DateTime хранит определенное количество мс, начиная с 30.12.1899. т.е. для даты null='30.12.1899'
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.