Доброе время суток.
Подскажите вот какую вещь:

Имеется много документов, и нужно отобрать документы например за месяц, но по времени например с 19:00 до 20:00

Есть ли какая нибудь фаункция например как "Между ДатаНач И ДатаКон"
Написал так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДокументДв.Дата
    |ИЗ
    | Документ.ДокументДв КАК ДокументДв
    |ГДЕ
    | ДокументДв.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |
    |СГРУППИРОВАТЬ ПО
    | ДокументДв.Дата";

    Запрос.УстановитьПараметр("ДатаКон", Отчет.ДатаКон);
    Запрос.УстановитьПараметр("ДатаНач", Отчет.ДатаНач);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если Формат(ВыборкаДетальныеЗаписи.Дата, "ДФ=hh:mm:ss") >= Отчет.ВремяНачало И Формат(ВыборкаДетальныеЗаписи.Дата, "ДФ=hh:mm:ss") <= Отчет.ВремяНачало Тогда
    КоличествоДокументов = КоличествоДокументов + 1;

    КонецЕсли;
    КонецЦикла;
```

Можно ли оптимизировать как нибудь, что бы запрос не обходил все документы?
---
Сделал немного иначе:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НАЧАЛОПЕРИОДА(СкупочныйБилет.Дата, ДЕНЬ) КАК Дата,
    | КОЛИЧЕСТВО(СкупочныйБилет.Ссылка) КАК Количество
    |ИЗ
    | Документ.СкупочныйБилет КАК СкупочныйБилет
    |ГДЕ
    | СкупочныйБилет.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И ЧАС(СкупочныйБилет.Дата) МЕЖДУ &ЧасНач И &ЧасКон
    | И СкупочныйБилет.Проведен
    | И НЕ СкупочныйБилет.Испорчен
    | И НЕ СкупочныйБилет.ПометкаУдаления
    |
    |СГРУППИРОВАТЬ ПО
    | НАЧАЛОПЕРИОДА(СкупочныйБилет.Дата, ДЕНЬ)";

    Запрос.УстановитьПараметр("ДатаКон", КонецДня(Отчет.ДатаКон));
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Отчет.ДатаНач));
    Запрос.УстановитьПараметр("ЧасКон", Отчет.ВремяКонец);
    Запрос.УстановитьПараметр("ЧасНач", Отчет.ВремяНачало);
```
---
```1c
    "ВЫБРАТЬ
    | ДокументДв.Дата
    |ИЗ
    | Документ.ДокументДв КАК ДокументДв
    |ГДЕ
    | ДокументДв.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И Час(ДокументДв.Дата) = &ЧасНач
    |
    |СГРУППИРОВАТЬ ПО
    | ДокументДв.Дата";
```
---
а так пойдет?:
```1c
    И Час(ДокументДв.Дата) Между &ЧасНач И &ЧасКон
```
---
в приведенном случае нет. Час() это число. Если нужны документы между 19 и 20, то достаточно Час(...) = 19. Тогда все документы с временем от 19:00 до 19:59 попадут в выборку.
Если указать Между 19 И 20, то в выборку попадают все документы с временем от 19:00 до 20:59.
---
Сделал немного иначе:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НАЧАЛОПЕРИОДА(СкупочныйБилет.Дата, ДЕНЬ) КАК Дата,
    | КОЛИЧЕСТВО(СкупочныйБилет.Ссылка) КАК Количество
    |ИЗ
    | Документ.СкупочныйБилет КАК СкупочныйБилет
    |ГДЕ
    | СкупочныйБилет.Дата МЕЖДУ &ДатаНач И &ДатаКон
    | И ЧАС(СкупочныйБилет.Дата) МЕЖДУ &ЧасНач И &ЧасКон
    | И СкупочныйБилет.Проведен
    | И НЕ СкупочныйБилет.Испорчен
    | И НЕ СкупочныйБилет.ПометкаУдаления
    |
    |СГРУППИРОВАТЬ ПО
    | НАЧАЛОПЕРИОДА(СкупочныйБилет.Дата, ДЕНЬ)";

    Запрос.УстановитьПараметр("ДатаКон", КонецДня(Отчет.ДатаКон));
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Отчет.ДатаНач));
    Запрос.УстановитьПараметр("ЧасКон", Отчет.ВремяКонец);
    Запрос.УстановитьПараметр("ЧасНач", Отчет.ВремяНачало);
```