Как отсортировать документы по времени

Новая тема
Доброго времени суток!



У меня такая проблема. Имеется выборка документов за какой-то один день. Необходимо найти документы в заданном временном интервале, например, с 14:00:00 по 17:00:00. Точнее документ с максимальным временем. Как это организовать??



Спасибо за внимание.
Собственно в чём проблема? Перебераешь документы и смотришь их время. (метод - ПолучитьВремя(...))

И выбираешь док с максимальным временем.

А если надо отсортировать, то самый простой способ это записать все доки в таблицу значений,  потом вызываешь Сортировать()  и само отсортируется.
СформироватьПозициюДокумента(<Дата>,<Час>,<Мин>,<Сек>,<ФлагКонцаСекунды>)



ВыбратьДокументы(<Дата1>,<Дата2>)

<Дата1> - дата, документ или позиция начала выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.

<Дата2> - дата, документ или позиция конца выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.

"Если выборку получаешь запросом, то можно использовать:

Группировка Докум упорядочить по Докум.ДатаДок, Докум.ВремяДок;"
"Примерно так



Док=СоздатьОбъект("Документ");



Док.ВыбратьДокументы(Дата1,Дата2);

Док.ОбратныйПорядок(1);

Найдено=0;

Пока Док.ПолучитьДокумент()=1 Цикл

 Док.ПолучитьВремя(Часы,Минуты,Секунды);

 Если Часы=<17 Тогда  // дописать в соотв. с треб. уловием

     Найдено=1;

     Прервать;

 КонецЕсли;

КонецЦикла;



Если Найдено=1 Тогда

// док нашли

иначе

 // док не найден

КонецЕсли;





"
Простой перебор всех документов не пойдет. Документов очень много, необходимо как-то оптимизировать этот поиск!
"тебе ведь уже написали:



Док=СоздатьОбъект("Документ");



Док.ВыбратьДокументы(Дата1,Дата2);

Док.ОбратныйПорядок(1); //!!!!!!

"
Такой способ поиска ищет документы в интервале времени от 00:00:00 до 23:59:59. А что если мне необходимо найти максимальное время на интервале 03:00:00 до 05:00:00?
"Дата1 = СформироватьПозициюДокумента(<Дата>,3,0,0,0);

Дата2 = СформироватьПозициюДокумента(<Дата>,5,0,0,1);



//А дальше как говорит Квазимодо:

Док=СоздатьОбъект("Документ");

Док.ВыбратьДокументы(Дата1,Дата2);

Док.ОбратныйПорядок(1); //!!!!!!"
Читают тему
(гостей: 1)

Быстрый переход