Вход | Регистрация

1С:Предприятие ::

Метки: 

ОФ. Запрос к периодическому РС, результаты - по периодам (по дням, неделям) в интервале дат

Я
   aka AMIGO
 
22.02.18 - 12:42
Сдаюсь..
Есть в КЗ мисты Книга знаний: Срез последних на каждую дату в запросе
Пример запроса - __1. По времени (год, месяц, ... секунда) __
Работает прекрасно.
Но в результате запроса - один день.
Мне надо несколько дней. Выполнять запрос в цикле - забавный совет одного форумчанина, но это - не комильфо © :)
В ветке v8: Как в запросе сгенерировать таблицу всех дат в заданном диапозоне? есть пример:
   |ИТОГИ
...
    |ПО
    |    ОБЩИЕ,
    |    Период ПЕРИОДАМИ(ДЕНЬ, &ДатаНачала, &ДатаОкончания)";

Очень заманчивая конструкция, если-б я еще и почитал про неё в "Практическом пособии разработчика", или в ИТС.. Увы, нет ни того, ни другого.

Растолмачите? или хотя-б ссылку на инструкцию..
 
 
   aka AMIGO
 
1 - 22.02.18 - 12:46
Более того, последняя конструкция Период Периодами - идет после ИТОГИ, что наводит на грустные размышления..
   Optan
 
2 - 22.02.18 - 13:49
(0) Не совсем понял что ты хочешь.
Почему не сгенерить таблицу необходимых дат во ВТ и соединятся с регистром с условием на период<=? (как в первом запросе из статьи, но вместо дат курсов только нужные тебе даты)
   aka AMIGO
 
3 - 22.02.18 - 14:04
(2) Видимо, не совсем ясно сам представляю.
1. Есть периодический РС (КурсыВалют)
2. Есть записи в РС
3. Мне нужно вывести что-то типа истории курсов, с периодом Дата
   aka AMIGO
 
4 - 22.02.18 - 14:08
Запрос таки работает, добился я:
Запрос.Текст = 
    "ВЫБРАТЬ
    |    Таблица3.Курс КАК Курс,
    |    Таблица3.Валюта КАК Валюта,
    |    Таблица3.Период КАК Период,
    |    Таблица3.Валюта.Представление КАК ВалютаПредставление
    |ИЗ
    |    (ВЫБРАТЬ
    |        Таблица1.Валюта КАК Валюта,
    |        МАКСИМУМ(Таблица1.Период) КАК Период
    |    ИЗ
    |        РегистрСведений.КурсыВалют КАК Таблица1
    |    
    |    СГРУППИРОВАТЬ ПО
    |        Таблица1.Валюта) КАК Таблица2
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Таблица3
    |        ПО Таблица2.Валюта = Таблица3.Валюта
    |            И Таблица2.Период = Таблица3.Период
    |
    |СГРУППИРОВАТЬ ПО
    |    Таблица3.Валюта,
    |    Таблица3.Период,
    |    Таблица3.Курс,
    |    Таблица3.Валюта.Представление
    |
    |УПОРЯДОЧИТЬ ПО
    |    Период
    |ИТОГИ ПО
    |    Валюта,

    |    Период ПЕРИОДАМИ(НЕДЕЛЯ, &Дата1, &Дата2)";



Далее опять незадача: выбираются только Периоды, но поля Валюта и Курс отсутствуют:

    
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ"); 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;


ПоГруппировкам("Период.. - через запятую вставить эти Группировки из Запроса не даёт: ошибка.
   aka AMIGO
 
5 - 22.02.18 - 14:14
Вот и остается только период в результатах запроса:

https://i.paste.pics/2cc93f847b377a13ad9f6af3898c1caa.png
   aka AMIGO
 
6 - 22.02.18 - 14:20
Пытаюсь вставить "Валюта,Период"
{ВнешнийОтчет.КурсыВалют.Форма.ФормаОтчета.Форма(51)}: Ошибка при вызове метода контекста (Выбрать)
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Валюта,Период", "ВСЕ"); 
по причине:
Различное количество измерений в списке измерений и списке источников для заполнения измерения
   hhhh
 
7 - 22.02.18 - 14:21
(5) это потому что
    |ИТОГИ ПО
    |    Валюта,Период

написал . Значит ты решил, что в дереве 2 уровня, а уровень валюта ты выкинул из выборки. как-то так

ВыборкаСверхДетальныеЗаписи = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Валюта"); 
    Пока ВыборкаСверхДетальныеЗаписи.Следующий() Цикл
 ВыборкаДетальныеЗаписи = ВыборкаСверхДетальныеЗаписи.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ"); 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   ВыборкаМиниДетальныеЗаписи = ВыборкаДетальныеЗаписи.Выбрать(); 
    Пока ВыборкаМиниДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаМиниДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей);
    КонецЦикла;     
    КонецЦикла;       
    КонецЦикла;
   aka AMIGO
 
8 - 22.02.18 - 14:23
(7) Ёлкины-ж зеленые, друже!
Не меньше месяца-б потратил, прежде чем сообразить..

Пока в испуге от 8-ки, в 7-ке-б сообразил.
Спасибо!!!


Список тем форума
Рекламное место пустует Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует