Версия для печати темы (https://pro1c.org.ua/index.php?s=4c043cffa0bf4623f065f99b8a30977d&showtopic=66702)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как организовать выборку по датам из запроса

Автор: vol235 20.08.21, 10:41

Есть такой запрос

ТекстЗапр = "
    |Период с Дата1 по Дата1;
    |Фир = Регистр.Остатки.Фирма;
    |Скл = Регистр.Остатки.Склад;
    |ТМЦ = Регистр.Остатки.ТМЦ;
    |Кво = Регистр.Остатки.Кво;
    |Сум = Регистр.Остатки.СуммаОсн;
    |Условие (Фир.Выбран()=0);
       |Условие (ТМЦ в выбТМЦ);
       |Условие (Скл в выбСкл1);
    |Группировка ТМЦ;
    |Функция ККво = КонОст(Кво);
    |Функция КСум = КонОст(Сум);";
    

    Состояние("Обрабатываются остатки");

    Пока Дата1 <= Дата2 Цикл
        Если Запр.Выполнить(ТекстЗапр)=0 Тогда
            Возврат;
        КонецЕсли;
        

        Пока Запр.Группировка("ТМЦ")=1 Цикл


и т.д......
Это долгий способ.
Есть ли варианты задать
|Период с Дата1 по Дата2;

а потом из запроса выбирать уже данные за одну дату?

Автор: denis84 20.08.21, 10:50

vol235 @ Сегодня, 11:41 * ,
а в запросе добавить группировка день? Если правильно понял Вашу задачу

Автор: vol235 20.08.21, 12:24

denis84 @ Сегодня, 11:50 * ,
Я правильно понимаю
.............
|Группировка День;
..............

Пока Запр.Группировка("День" = День1 Цикл
...........
?

denis84 @ Сегодня, 11:50 * ,
Я правильно понимаю
.............
|Группировка День;
..............

Пока Запр.Группировка("День")= 1 Цикл
Если Запр.День <> Дата1 Тогда
Продолжить;
КонецЕсли;
...........
?

vol235 @ Сегодня, 12:24 * ,
СПАСИБО.

Автор: 29a 20.08.21, 12:30

vol235 @ Сегодня, 13:24 * ,

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Запрос)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Товар = Регистр.ОстаткиТоваров.Товар;
    |Группировка День;
    |Группировка Товар;
    |"//}}ЗАПРОС
;

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1) = 1 Цикл
        Пока Запрос.Группировка(2) = 1 Цикл
        КонецЦикла;
    КонецЦикла;

Автор: mut 20.08.21, 14:42

если в запросе две группировки: День, Товар, то по-красивому так:

Если Запрос.Получить(Дата1)=1 Тогда
    Пока Запрос.Группировка(2)=1 Цикл
        ...
    КонецЦикла;
КонецЕсли;

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua