Имя: Пароль:
1C
1С v8
Как в запросе по умолчанию сортируются регистраторы?
0 BlackJack
 
10.01.12
11:37
Собсно сабж. Нужны регистраторы в порядке времени их движений, но запрос (см.ниже) по разным клиентам выдаёт документы по-разному отсортированными.

   Запрос.Текст =
       "ВЫБРАТЬ
       |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Контрагент КАК Контрагент,
       |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.ДоговорКонтрагента КАК Договор,
       |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор
       |ИЗ
       |    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(
       |            &ДатаНач,
       |            &ДатаКон,
       |            Регистратор,
       |            Контрагент В ИЕРАРХИИ (&Контрагенты)
       |                И УпрУчет
       |                И ВидРасчетовСКонтрагентом = &ВидРасчетовСКонтрагентом) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты
       |
       //упорядочивать по дате нельзя
       //|УПОРЯДОЧИТЬ ПО
       //|    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор.Дата
       |ИТОГИ ПО
       |    Контрагент,
       |    Договор";
1 BlackJack
 
10.01.12
11:39
Период, наверное. А тему не удалить?
2 YF
 
10.01.12
11:40
(0) А кто сказал, что вообще упорядочивает? Насколько я помню еще со времен акцесса и СКЛ при запросе без упорядочивания порядок вывода не определен.

Упорядочивай принудительно
3 BlackJack
 
10.01.12
11:40
Не, период тоже не работает как надо.
4 BlackJack
 
10.01.12
11:46
Есть вот такие документы.

30.09.2011 5:22:34    Сб000019614    Платежное поручение входящее
30.09.2011 5:23:04    Сб000019611    Платежное поручение входящее
30.09.2011 5:23:44    Сб000019607    Платежное поручение входящее
30.09.2011 19:14:32    Сб000025002    Реализация товаров и услуг
30.09.2011 19:14:33    Сб000024990    Реализация товаров и услуг

Платёжки делают движения концом дня. Нужно в том запросе выбрать документы в порядке времени их движений. Такая картина по нескольким контрагентам. Добавил в запрос

       |УПОРЯДОЧИТЬ ПО
       |    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Период

Но ситуация не изменилась: по одному контрагенту выдаёт правильно сначала накладные, а по другому неправильно - начинает с платежек.
5 BlackJack
 
10.01.12
12:30
Гоню, "период" всё таки работает. Дальше в алгоритме ошибка была.
6 H A D G E H O G s
 
10.01.12
12:41
MSSQL (да и файловая имитирующая его) отсортирует так, как сам захочет.
Все зависит от того, как mssql составит план запроса и выберет таблицу по IndexScan или TableScan
7 Megas
 
10.01.12
12:44
Не читал....
"Как в запросе по умолчанию сортируются регистраторы?" - по ссылкам как строки

Когда есть ссылка у неё чёто типа(уникальный индификатор): "***" - тип "дата\время создания" (не всегда совпадает с датой документа).
Сортируется как обычная строка