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

Новая тема
Доброго времени суток!<br><br><br><br>У меня такая проблема. Имеется выборка документов за какой-то один день. Необходимо найти документы в заданном временном интервале, например, с 14:00:00 по 17:00:00. Точнее документ с максимальным временем. Как это организовать??<br><br><br><br>Спасибо за внимание.
Собственно в чём проблема? Перебераешь документы и смотришь их время. (метод - ПолучитьВремя(...))<br><br>И выбираешь док с максимальным временем.<br><br>А если надо отсортировать, то самый простой способ это записать все доки в таблицу значений,  потом вызываешь Сортировать()  и само отсортируется.
СформироватьПозициюДокумента(<Дата>,<Час>,<Мин>,<Сек>,<ФлагКонцаСекунды>)<br><br><br><br>ВыбратьДокументы(<Дата1>,<Дата2>)<br><br><Дата1> - дата, документ или позиция начала выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.<br><br><Дата2> - дата, документ или позиция конца выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.<br><br>
"Если выборку получаешь запросом, то можно использовать:<br><br>Группировка Докум упорядочить по Докум.ДатаДок, Докум.ВремяДок;"
"Примерно так<br><br><br><br>Док=СоздатьОбъект("Документ");<br><br><br><br>Док.ВыбратьДокументы(Дата1,Дата2);<br><br>Док.ОбратныйПорядок(1);<br><br>Найдено=0;<br><br>Пока Док.ПолучитьДокумент()=1 Цикл<br><br>  Док.ПолучитьВремя(Часы,Минуты,Секунды);<br><br>  Если Часы=<17 Тогда  // дописать в соотв. с треб. уловием<br><br>      Найдено=1;<br><br>      Прервать;<br><br>  КонецЕсли;<br><br>КонецЦикла;<br><br><br><br>Если Найдено=1 Тогда<br><br> // док нашли<br><br>иначе<br><br>  // док не найден<br><br>КонецЕсли;<br><br><br><br><br><br>"
Простой перебор всех документов не пойдет. Документов очень много, необходимо как-то оптимизировать этот поиск!
"тебе ведь уже написали:<br><br><br><br>Док=СоздатьОбъект("Документ"); <br><br><br><br>Док.ВыбратьДокументы(Дата1,Дата2); <br><br>Док.ОбратныйПорядок(1); //!!!!!!<br><br>"
Такой способ поиска ищет документы в интервале времени от 00:00:00 до 23:59:59. А что если мне необходимо найти максимальное время на интервале 03:00:00 до 05:00:00?
"Дата1 = СформироватьПозициюДокумента(<Дата>,3,0,0,0);<br><br>Дата2 = СформироватьПозициюДокумента(<Дата>,5,0,0,1);<br><br><br><br>//А дальше как говорит Квазимодо:<br><br>Док=СоздатьОбъект("Документ"); <br><br>Док.ВыбратьДокументы(Дата1,Дата2); <br><br>Док.ОбратныйПорядок(1); //!!!!!!"
Читают тему
(гостей: 1)

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