Имя: Пароль:
1C
 
Момент времени
0 exchang
 
27.03.10
19:07
Вообщем, момент времени документа, как описано в сп, позволяет сравнить документы с одинаковой датой на временой оси. Но возникла пробл и выяснилось что для разных типов документов нифига этот момент не срабатывает. Так вот, так ли это или же это не так, ошибка или нет?
1 dk
 
27.03.10
19:11
как выяснял "что для разных типов документов нифига этот момент не срабатывает"?
2 exchang
 
27.03.10
19:15
есть например приходный ордер и расходный ордер с одной датой, и сперва создали ПО а потом РО, но момент у РО получается меньше чем у ПО, вот так
3 dk
 
27.03.10
19:16
ты код покажи, где сравниваешь
4 dk
 
27.03.10
19:17
или ты их на больше меньше сравниваешь? )))
5 exchang
 
27.03.10
19:20
Момент1 = Новый МоментВремени(Док1.Дата, Док1);
Момент2 = Новый МоментВремени(Док2.Дата, Док2);
Если Момент1.Сравнить(Момент2) = -1 Тогда
   Момент1 = Момент2;
КонецЕсли;
6 exchang
 
27.03.10
19:20
"ВЫБРАТЬ
|    ВложенныйЗапрос.Дата,
|    ВложенныйЗапрос.Ссылка,
|    ВложенныйЗапрос.МоментВремени КАК МоментВремени
|ИЗ
|    (ВЫБРАТЬ
|        РасходнаяНакладная.МоментВремени КАК МоментВремени,
|        РасходнаяНакладная.Дата КАК Дата,
|        РасходнаяНакладная.Ссылка КАК Ссылка
|    ИЗ
|        Документ.РасходнаяНакладная КАК РасходнаяНакладная
|    ГДЕ
|        РасходнаяНакладная.Ссылка = &Ссылка1
|    
|    ОБЪЕДИНИТЬ ВСЕ
|    
|    ВЫБРАТЬ
|        ПриходнаяНакладная.МоментВремени,
|        ПриходнаяНакладная.Дата,
|        ПриходнаяНакладная.Ссылка
|    ИЗ
|        Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
|    ГДЕ
|        ПриходнаяНакладная.Ссылка = &Ссылка2) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
|    МоментВремени"
7 exchang
 
27.03.10
19:21
одна фигня что там что там
8 dk
 
27.03.10
19:27

Момент1 = Новый МоментВремени(Док1.Дата, Док1);
Момент2 = Новый МоментВремени(Док2.Дата, Док2);
Сообщить(Док1.Дата);
Сообщить(Момент1);
Сообщить(Док2.Дата);
Сообщить(Момент2);
Сообщить(Момент1.Сравнить(Момент2));
9 Garkin
 
27.03.10
19:28
(0) это не ошибка, это особенность.
10 dk
 
27.03.10
19:33
аюшки
11 exchang
 
27.03.10
19:35
собстно плохая это особенность, если так то так
12 skeptik_m
 
27.03.10
19:37
(0) Сравнивать-то позволяет (в смысле получать всегда один и тот же результат при сравнении двух моментов времени), но управлять (предсказывать) что окажется раньше, а что позже - Вы не можете.
13 exchang
 
27.03.10
19:45
да, только получилось вот так, что док1 списал дату кое что, а док2 на эту же дату не смог получить списанные остатки по моментувремени, несмотря на то что он был занесен в базу позже..
14 dk
 
27.03.10
19:49
что-то вы тут все гоните походу
15 dk
 
27.03.10
19:50

01.11.2009 8:00:00
01.11.2009 8:00:00; Приходный кассовый ордер 00000000001 от 01.11.2009 8:00:00
01.11.2009 9:08:12
01.11.2009 9:08:12; Установка цен номенклатуры 00000000002 от 01.11.2009 9:08:12
-1
01.11.2009 10:00:00
01.11.2009 10:00:00; Приходный кассовый ордер 00000000001 от 01.11.2009 10:00:00
01.11.2009 9:08:12
01.11.2009 9:08:12; Установка цен номенклатуры 00000000002 от 01.11.2009 9:08:12
1
16 Garkin
 
27.03.10
19:52
(15) Очень маленькая выборка, нельзя на таком скудном объеме данных делать какие либо выводы
17 exchang
 
27.03.10
19:53
(15) ты даты сделай одинаковыми, и сперва занеси "Установка ЦН" а потом "ПКО", так как ПКО в ветке конфигурации находится выше:) и посмотришь..
18 dk
 
27.03.10
19:54
(16) автор и этого не смог сделать
обрати внимание, что документы одни и те же, просто поменял время у ПКО
19 dk
 
27.03.10
19:55
(17) а подумать?
20 Garkin
 
27.03.10
19:55
Момент времени - это структура состоящая из даты и ГУИД, проблема в том что ГУИД объекта созданного раньше не всегда меньше ГУИД объекта созданного позже.
21 dk
 
27.03.10
19:57
вы тут все курили походу )))
сначала сравнивается дата до секунды, а уже потом гуид
22 exchang
 
27.03.10
20:00
(20) вот это и хотел услышать, только тогда вообще теряется смысл от предназначения момента, если получаются вот такие казусы..
23 dk
 
27.03.10
20:01
(22) ты казус-то свой покажи, см (8)
24 exchang
 
27.03.10
20:02
(23) фома неверующий :)
25 dk
 
27.03.10
20:02
я себе-то не доверяю ..
26 Garkin
 
27.03.10
20:05
(25) а вот это правильно!
27 dk
 
27.03.10
20:06
(26) зато не курю )))
28 Garkin
 
27.03.10
20:09
(27) и это тоже правильно!
29 dk
 
27.03.10
20:10
а автор пропал
30 exchang
 
27.03.10
20:17
куда пропал?
31 dk
 
27.03.10
20:19
(30) ты точно не курил? ))
я вообще-то жду результатов (8)
зря жду?
32 Garkin
 
27.03.10
20:27
(31)  Вот тебе запрос
ВЫБРАТЬ
   ПлатежноеПоручение.Ссылка,
   ПлатежноеПоручение.Дата,
   ПлатежноеПоручение.МоментВремени КАК МоментВремени
ИЗ
   Документ.ПлатежноеПоручение КАК ПлатежноеПоручение

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

Запусти его в консоли запросов на любой рабочей базе, проанализируй результат,
и возвращайся посыпать голову пеплом.
33 dk
 
27.03.10
20:29
(32) мне пофиг на запрос, я про (8)
Кто сказал, что разрешена сортировка по МоментВремени?
34 dk
 
27.03.10
20:30
Если бы все так просто было, то моментвремени сравнивали на больше / меньше, а не через .Сравнить()
35 acsent
 
27.03.10
20:31
(33) Что ты хочешь увидеть в ответ? Ясно же что момент времени сравнивает по своему, а не так как вели
36 exchang
 
27.03.10
20:32
(35) сравнить выдает тот же результат
37 dk
 
27.03.10
20:32
(36) "тот же" как что?
38 exchang
 
27.03.10
20:32
(36) тот же ошибочный
39 dk
 
27.03.10
20:34
(38) вы все не впиливаете, что нельзя его на > или < сравнивать.
Это ОБЪЕКТ
40 exchang
 
27.03.10
20:34
27.03.2005 0:00:00; ПриходнаяНакладная 000000004 от 27.03.2005 0:00:00
27.03.2005 0:00:00; РасходнаяНакладная 000000008 от 27.03.2005 0:00:00
1
27.03.2005 0:00:00; ПриходнаяНакладная 000000005 от 27.03.2005 0:00:00
27.03.2005 0:00:00; РасходнаяНакладная 000000008 от 27.03.2005 0:00:00
1

вот те результат: последовательность: №4,8,5
41 dk
 
27.03.10
20:34
(38) ты (8) проверил? все верно работает?
42 dk
 
27.03.10
20:36
(40) ну и что тут не верно?
43 exchang
 
27.03.10
20:38
(42) я щас застрелюсь
44 dk
 
27.03.10
20:40
(43) а как докажешь? )))
что "сперва создали ПО а потом РО, но момент у РО получается меньше чем у ПО"
45 dk
 
27.03.10
20:41
имхо сначала наколбасил приходных, а только потом расходные
46 acsent
 
27.03.10
20:43
(45) Кончай принимать запрещенные препараты
47 acsent
 
27.03.10
20:43
(45) Или хотя бы переходи на более легкие
48 dk
 
27.03.10
20:44
см (27)
49 acsent
 
27.03.10
20:45
(48) Лучше уж кури )))
50 exchang
 
27.03.10
20:45
жжоот!!=)))))))))
51 dk
 
27.03.10
20:49
попозже проверю, но думаю (21)
надо программно создать
ПКО1 - 00:00:00
РКО1 - 00:00:00
ПКО2 - 00:00:00
----
и сравнить ПКО1 и РКО1, РКО1 и ПКО2
52 dk
 
28.03.10
08:59
в общем, походу, есть косяк
при одинаковом времени, 8-ка упорядочивает по времени только внутри одного вида документов.
несколько видов документов внутри 1 сек упорядочиваются по какому-то внутреннему алгоритму.
но если время отличается хотя бы на секунду, то момент времени нормально сравнивает разные виды документов.
---
Всегда было интересно как 8-ка упорядочивает разные виды документов при отсутствии общего журнала - оказалось никак не упорядочивает ))
Неприятный косяк может получиться
53 Garkin
 
28.03.10
13:49
54 dk
 
28.03.10
13:53
бардак одним словом
55 ilkoder
 
28.03.10
13:56
О сколько нам открытий чудных...
56 skeptik_m
 
31.03.10
15:49
(52) Методологи 1С исходили из мысли, что если время одинаковое, то вопрос какой документ "раньше", а какой "позже" лишен физического смысла. 1С и не дало способа управлять вручную порядком документов внутри одной секунды, они лишь обеспечили что-бы какой-то постоянный порядок вообще был за ради повторяемости результатов при последовательной по моменту времени обработке.
57 rsv
 
31.03.10
16:10
(0) Есть ишо одна особенность. МоментВремени нельзя использовать  вкачестве аргумента агрегатных функций MAX() MIN() что есть нехорошо.
58 hhhh
 
31.03.10
16:25
может по регистру прокатит? Например

ВЫБРАТЬ
    Регистратор
ИЗ
    РегистрБухгалтерии.Хозрасчетный