Имя: Пароль:
1C
 
Упорядочить по моменту времени в запросе
0 DMM
 
19.03.10
16:39
Есть запрос:

ТекстЗапроса = "ВЫБРАТЬ
                  |    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
                  |    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,
                  |    ХозрасчетныйОстаткиИОбороты.Период КАК Период,
                  |    ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокДт КАК КоличествоНачальныйОстатокДт,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КоличествоОборотДт,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КоличествоОборотКт,
                  |    ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт КАК КоличествоКонечныйОстатокДт
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, ДвиженияИГраницыПериода, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы), &мВидыСубконто, Организация = &ВыбОрганизация) КАК ХозрасчетныйОстаткиИОбороты
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ХозрасчетныйОстаткиИОбороты.Субконто1.Наименование,
                  |    ХозрасчетныйОстаткиИОбороты.Субконто2.Наименование,
                  |    Период                  
                  |ИТОГИ
                  |    СУММА(КоличествоНачальныйОстатокДт),
                  |    СУММА(КоличествоОборотДт),
                  |    СУММА(КоличествоОборотКт),
                  |    СУММА(КоличествоКонечныйОстатокДт)
                  |ПО
                  |    Номенклатура,
                  |    Склад";

Вроде все нормально работает, но с одним материалом выводит такую ерунду:

Период ** Регистратор ** КолНачОстДт ** КолОборотДт ** КолОборотКт ** КолКонОстДт

01.01.10 00:00:00 ** ПрихНакл № 1 ** 10 ** 5 ** 0 ** 15
05.01.10 00:00:00 ** РасхНакл № 2 ** 15 ** 0 ** 1 ** 14
08.01.10 00:00:00 ** РасхНакл № 3 ** 14 ** 0 ** 1 ** 13
15.01.10 00:00:00 ** РасхНакл № 5 ** 12 ** 0 ** 1 ** 11
15.01.10 00:00:00 ** РасхНакл № 4 ** 13 ** 0 ** 1 ** 12

т.е. за день 15.01.10 сначала должна идти РасхНакл №4, а за ней РасхНакл №5, а не так как выводит запрос.

Подскажите, пожалуйста, как упорядочить данные внутри одного дня?

Вроде нужно как-то МоментВремени использовать, но не знаю как его в запросе применить?
1 Vitello
 
19.03.10
16:40
По ссылке пробовал?
2 73
 
19.03.10
16:41
По Регистратор
3 DMM
 
19.03.10
16:41
сейчас попробую...
4 Dmitrii
 
гуру
19.03.10
16:43
Если по ссылке не получится, то:

ПО Регистратор.Номер
5 Ненавижу 1С
 
гуру
19.03.10
16:45
вспоминаем что Моментвремени=Дата+Ссылка

Упорядочить ПО Дата,Ссылка
6 DMM
 
19.03.10
16:48
(1), (2) по регистратору получилось!

А все-таки интересно, вот в данном случае регистратор - это расходная накладная, и введенный позже документ имеет бОльшую ссылку.

А если бы было так:

01.01.10 00:00:00 ** ПрихНакл № 1 ** 10 ** 5 ** 0 ** 15
05.01.10 00:00:00 ** РасхНакл № 2 ** 15 ** 0 ** 1 ** 14
08.01.10 00:00:00 ** РасхНакл № 3 ** 14 ** 0 ** 1 ** 13
15.01.10 00:00:00 ** РасхНакл № 5 ** 12 ** 0 ** 1 ** 11
15.01.10 00:00:00 ** Перемещ  № 4 ** 13 ** 0 ** 1 ** 12

т.е. за 15.01.10 есть разные документы - РасхНакл и Перемещение.
тогда не факт, что РасхНакл будет иметь бОльшую ссылку чем Перемещение, таблицы-то в базе у них разные...

как тогда быть?
7 NewNick
 
19.03.10
16:50
а тупое решение
ПО Регистратор.МоментВремени
чем не подходит ?))
8 Ненавижу 1С
 
гуру
19.03.10
16:50
(6)

Упорядочить ПО Дата,Регистратор
9 DMM
 
19.03.10
16:50
понял
всем спасибо!
10 NewNick
 
19.03.10
16:51
(9) в (8) правильней чем у меня )
11 NewNick
 
19.03.10
16:52
ток не дата а период
12 73
 
19.03.10
16:53
С таким Периодом(без времени) лучше Регистратор.Дата.
13 Ненавижу 1С
 
гуру
19.03.10
16:54
(11) да период
14 73
 
19.03.10
16:55
(13) Ну и получишь сначала регистраторы одного типа, потом другого...
15 NewNick
 
19.03.10
17:09
(12) а почему вы решили что там нет времени. это не рс с периодичностью сутки а регистрбухгалтерии
ПО регистратор.дата, регистратор полностью эквивалентно Регистратор.МоментВремени и не совсем равно примеру из (8)
разница в том что в первом случае это момент времени дока в (8) это момент времени записи регистра бухгалтерии, что в общем случае не одно и тоже
16 Ненавижу 1С
 
гуру
19.03.10
17:10
(14) сам придумал?
17 DMM
 
19.03.10
17:14
блин, вы меня запутали совсем)

так по Регистратор.Дата, Регистратор
или по Период, Регистратор
18 73
 
19.03.10
17:15
(15)(16) В (0) и (6) - в Периоде времени нет - потому и решил.
19 DMM
 
19.03.10
17:18
(18) ну там кстати может и так быть:

15.01.10 10:12:33 ** РасхНакл № 5 ** 12 ** 0 ** 1 ** 11
15.01.10 10:12:33 ** Перемещ  № 4 ** 13 ** 0 ** 1 ** 12

так что в периоде время есть)
20 NewNick
 
19.03.10
17:19
(17) Период,Регистратор - момент времени записи
Регистратор.Дата,Регистратор = Регистратор.МоментВремени - момент времени дока

далее сам решай который тебе нужен. если никто не ковырял проводки что бы доки делали проводки не с периодом равным своей дате то пофиг по большому счету
21 73
 
19.03.10
17:20
(19) Так бы и сразу...
22 73
 
19.03.10
17:25
(19) А ссылки с одним временем всегда одинаково упорядочиваются: по типам.
Так что не факт, что будет так, как ты в (19) нарисовал.
23 DMM
 
19.03.10
17:26
(22) да так есть на самом деле!
просто я так написал - 00:00:00 тоже временем считается!
24 73
 
19.03.10
17:27
(22)+
"Отношения между различными ссылочными типами определяются на основе внутренних ссылочных номеров таблиц, соответствующих тому или иному типу." (С) Справка 1С.
25 DMM
 
19.03.10
17:28
в общем сделал:

УПОРЯДОЧИТЬ ПО Период, Регистратор.МоментВремени

вроде нормально)
26 NewNick
 
19.03.10
17:29
(25) это эквивалентно
по период,регистратор.дата,регистратор ))
27 DMM
 
19.03.10
17:33
(26) я понял)
28 NewNick
 
19.03.10
17:40
(24) переводя с одноэсного на русский -
ссылки сравниваются вначале по гуиду метаданных потом по гуиду самой ссылки. т.е. если сравниваются ссылки то вначале идут все поступления потом реализации. т.е. вначале идут те документы которые программисты в конфигурации создали раньше(!!!)

довольно весело строится так же сравнение ссылок внутри документов одного типа -
первыми пойдут документы созданные пользователь, который раньше вошел(!!!) в систему в ту сессию когда создавался документ. так как базовый гуид для доков генерится в момент входа и при записи доков гуиды просто инкрементируются )))

так что в переводе еще на более русский фраза из справки звучит так - сделано это у нас через одно место, а чем мы руководствовались когда так делали мы и сами не знаем ))
29 NewNick
 
19.03.10
17:41
*созданные пользователем
30 73
 
19.03.10
17:44
(28) <<<Перевод на Очень русский заблокирован матофильтром>>>
31 wPa
 
02.04.10
14:20
(28) в ГУИДе ссылки нет времени базового гуида - есть время создания объекта в миллисекундах от Дата(1582, 10, 15, 04, 00, 00). Причем последние цифры стоят с 1 по 8 месте в ГУИД 1С в шестнадцатиричном виде (примерно на 7 минут максимально) - т.е. фактически случайным образом получается сортировка, но дающая один и тот же результат.