Имя: Пароль:
1C
1С v8
Как правильно сравнить два момента времени
0 alex-van1C8
 
12.05.12
10:24
Точнее сказать почему сравнение не выполняется.

Есть Запрос (кусок):
"
ВЫБОР
КОГДА РасходнаяНакладная.МоментВремени >=   ГраницаДляРасчетаСебистоимости.МоментВремени
ТОГДА "Больше"
ИНАЧЕ "Меньше"
"
Условие всегда выполняются, то-есть всегда должно быть "Больше", а возвращается "Меньше".

Причем ранее в этом же запросе сравнение происходит корректно (выбирается меньший момент времени)

PS:Если нужно то могу весь запрос выложить
1 Wobland
 
12.05.12
10:28
а они вообще умеют сравниваться?
2 Cube
 
12.05.12
10:29
(0) Попробуй СравнениеЗначений
3 alex-van1C8
 
12.05.12
10:29
Вот запрос:
ВЫБРАТЬ
   ОстатокНоменклатурыГраницы.МоментВремени
ПОМЕСТИТЬ МомВремениОсновнойПоследовательности
ИЗ
   Последовательность.ОстатокНоменклатуры.Границы КАК ОстатокНоменклатурыГраницы
ГДЕ
   ОстатокНоменклатурыГраницы.Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Товар)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
   ВЫБОР
       КОГДА РасходнаяНакладная.МоментВремени < МомВремениОсновнойПоследовательности.МоментВремени
           ТОГДА РасходнаяНакладная.МоментВремени
       ИНАЧЕ МомВремениОсновнойПоследовательности.МоментВремени
   КОНЕЦ КАК МоментВремени
ПОМЕСТИТЬ ГраницаДляРасчетаСебистоимости
ИЗ
   Документ.РасходнаяНакладная КАК РасходнаяНакладная,
   МомВремениОсновнойПоследовательности КАК МомВремениОсновнойПоследовательности
ГДЕ
   РасходнаяНакладная.Себистоимость = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
   МоментВремени
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РасходнаяНакладная.Ссылка,
   РасходнаяНакладная.МоментВремени,
   ГраницаДляРасчетаСебистоимости.МоментВремени КАК МоментВремени1,
   ВЫБОР
       КОГДА РасходнаяНакладная.МоментВремени >= ГраницаДляРасчетаСебистоимости.МоментВремени
           ТОГДА "Больше"
       ИНАЧЕ "Меньше"
   КОНЕЦ КАК Поле1
ИЗ
   Документ.РасходнаяНакладная КАК РасходнаяНакладная,
   ГраницаДляРасчетаСебистоимости КАК ГраницаДляРасчетаСебистоимости

В ВоемТаб "ГраницаДляРасчетаСебистоимости" (второй запрос в пакете) сравнивается корректно
4 Cube
 
12.05.12
10:30
А, тебе в запросе нада...
5 alex-van1C8
 
12.05.12
10:30
(4) Ну да;
6 alex-van1C8
 
12.05.12
10:31
"Больше" - "Меньше" это для наглядности, а так я условие хотел поставить чтобы все расходники попали начиная с определенного момента времени
7 alex-van1C8
 
12.05.12
10:32
(2), а синтакисис какой
8 s03
 
12.05.12
10:34
МоментВремени - это Ссылка+Дата, но для различных типов объектов (например Реализация и Платежка) такое сравнение уже несовсем корректно, т.к. сравнивать ссылки различных типов это не есть правильно, тут уже только по дате необходимо
9 s03
 
12.05.12
10:35
Ну а в твоём случае МоментВремени от документа Реализации может сравниваться с моментом времени другого документа, двигающего остатки номенклатуры, и вот тут оно и не сработает
10 alex-van1C8
 
12.05.12
10:38
Понятно, а если ссылки в моменте на один и тот же тип документа то сравнение пройдет корректно?
11 s03
 
12.05.12
10:39
Ага, в этом случае да.
12 alex-van1C8
 
12.05.12
10:47
s03, большое спасибо, просветил :)