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

Помогите с обработкой запроса, или с ним

Помогите с обработкой запроса, или с ним
Я
   Klesk
 
23.12.21 - 18:03
не могу разобраться, в консоли вроде всё как надо, а в обработке, несколько раз перебирает нумератор, как то не так обхожу?

https://i116.fastpic.org/big/2021/1223/b4/a1543c38d0333a86e34cb91b2e4a29b4.jpeg

Запрос=Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=МенеджерВременныхТаблиц;
    Запрос.Текст="ВЫБРАТЬ
    |    Документы.Период КАК Дата,
    |    НумераторПКО.Организация КАК Организация,
    |    Документы.Документ,
    |    НумераторПКО.Номер КАК Номер,
    |    НумераторПКО.Склад КАК Склад,
    |    НумераторПКО.Ссылка КАК Нумератор,
    |    Документы.ВидОплаты,
    |    Документы.СуммаДокумента,
    |    Документы.Операция,
    |    Документы.ДокументДС
    |ИЗ
    |    Документы КАК Документы
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.НумераторПКО КАК НумераторПКО
    |        ПО (НумераторПКО.Дата = Документы.Период)
    |            И (НумераторПКО.Организация = Документы.Организация)
    |            И (НумераторПКО.Склад = Документы.Склад)
    |ГДЕ
    |    НЕ НумераторПКО.НомерДляБП
    |    И НумераторПКО.Проведен
    |
    |УПОРЯДОЧИТЬ ПО
    |    Документы.Период,
    |    Нумератор
    |ИТОГИ
    | Период, Нумератор
    |ПО
    |    Период,Нумератор;    

    |
    |////////////////////////////////////////////////////////////////////////////////
    |УНИЧТОЖИТЬ Документы";

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

Пока ВыборкаПоНумератору.Следующий() Цикл
            Сообщить(ВыборкаПоНумератору.Нумератор);
   Базис
 
1 - 23.12.21 - 18:05
Откуда ты читаешь данные?
   Klesk
 
2 - 23.12.21 - 18:44
Ну Если это    существенно

Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    РеализацияТоваровУслугИзменения.Ссылка
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Изменения КАК РеализацияТоваровУслугИзменения
        |ГДЕ
        |    РеализацияТоваровУслугИзменения.Узел = &Узел";
    
    Запрос.УстановитьПараметр("Узел", Объект.Узел);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаРеализации = РезультатЗапроса.Выбрать();
    
    

    Пока ВыборкаРеализации.Следующий() Цикл
    МойОбъект=    ВыборкаРеализации.Ссылка;

Если Не Отказ Тогда
    ПериодРеализации=НачалоДня(МойОбъект.Дата);     
    Узел=Объект.Узел;
    МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
    Запрос=Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=МенеджерВременныхТаблиц;
    Запрос.Текст="ВЫБРАТЬ
    |    НАЧАЛОПЕРИОДА(ПриходныйКассовыйОрдер.Ссылка.ДатаПробитияЧека, ДЕНЬ) КАК Период,
    |    ПриходныйКассовыйОрдер.Ссылка.Организация КАК Организация,
    |    ""ПриходНал"" КАК Операция,
    |    РеализацияТоваровУслуг.Склад,
    |    РеализацияТоваровУслуг.Ссылка КАК Документ,
    |    ПриходныйКассовыйОрдер.Ссылка КАК ДокументДС,
    |    ПриходныйКассовыйОрдер.Ссылка.Касса КАК ВидОплаты,
    |    ПриходныйКассовыйОрдер.Ссылка.СуммаДокумента КАК СуммаДокумента
    |ПОМЕСТИТЬ Документы
    |ИЗ
    |    Документ.ПриходныйКассовыйОрдер.Изменения КАК ПриходныйКассовыйОрдер
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ПО ПриходныйКассовыйОрдер.Ссылка.ДокументОснование = РеализацияТоваровУслуг.Ссылка
    |ГДЕ
    |    ПриходныйКассовыйОрдер.Ссылка.Проведен
    |    И ПриходныйКассовыйОрдер.Ссылка.ПробитЧек
    |    И ПриходныйКассовыйОрдер.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента)
    |    И ПриходныйКассовыйОрдер.Узел = &Узел
    |    И НАЧАЛОПЕРИОДА(ПриходныйКассовыйОрдер.Ссылка.ДатаПробитияЧека, ДЕНЬ) = &ПериодРеализации
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    НАЧАЛОПЕРИОДА(РасходныйКассовыйОрдер.Ссылка.Дата, ДЕНЬ),
    |    ВозвратТоваровОтКлиента.Организация,
    |    ""ВозвратНал"",
    |    ВозвратТоваровОтКлиента.Склад,
    |    ВозвратТоваровОтКлиента.Ссылка,
    |    РасходныйКассовыйОрдер.Ссылка,
    |    РасходныйКассовыйОрдер.Ссылка.Касса,
    |    РасходныйКассовыйОрдер.Ссылка.СуммаДокумента
    |ИЗ
    |    Документ.РасходныйКассовыйОрдер.Изменения КАК РасходныйКассовыйОрдер
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
    |        ПО РасходныйКассовыйОрдер.Ссылка.ДокументОснование = ВозвратТоваровОтКлиента.Ссылка
    |ГДЕ
    |    РасходныйКассовыйОрдер.Ссылка.Проведен
    |    И РасходныйКассовыйОрдер.Ссылка.ПробитЧек
    |    И РасходныйКассовыйОрдер.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту)
    |    И РасходныйКассовыйОрдер.Узел = &Узел
    |    И НАЧАЛОПЕРИОДА(РасходныйКассовыйОрдер.Ссылка.Дата, ДЕНЬ) = &ПериодРеализации
    |    И НАЧАЛОПЕРИОДА(ВозвратТоваровОтКлиента.Ссылка.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ВозвратТоваровОтКлиента.ДокументРеализации.Дата, ДЕНЬ)
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    НАЧАЛОПЕРИОДА(ОперацияПоПлатежнойКарте.Ссылка.Дата, ДЕНЬ),
    |    ОперацияПоПлатежнойКарте.Ссылка.Организация,
    |    ""ПриходБезНал"",
    |    РеализацияТоваровУслуг.Склад,
    |    РеализацияТоваровУслуг.Ссылка,
    |    ОперацияПоПлатежнойКарте.Ссылка,
    |    ОперацияПоПлатежнойКарте.Ссылка.ЭквайринговыйТерминал,
    |    ОперацияПоПлатежнойКарте.Ссылка.СуммаДокумента
    |ИЗ
    |    Документ.ОперацияПоПлатежнойКарте.Изменения КАК ОперацияПоПлатежнойКарте
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ПО ОперацияПоПлатежнойКарте.Ссылка.ДокументОснование = РеализацияТоваровУслуг.Ссылка
    |ГДЕ
    |    ОперацияПоПлатежнойКарте.Ссылка.Проведен
    |    И ОперацияПоПлатежнойКарте.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента)
    |    И ОперацияПоПлатежнойКарте.Узел = &Узел
    |    И НАЧАЛОПЕРИОДА(ОперацияПоПлатежнойКарте.Ссылка.Дата, ДЕНЬ) = &ПериодРеализации
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    НАЧАЛОПЕРИОДА(ОперацияПоПлатежнойКарте.Ссылка.Дата, ДЕНЬ),
    |    ВозвратТоваровОтКлиента.Организация,
    |    ""ВозвратБезНал"",
    |    ВозвратТоваровОтКлиента.Склад,
    |    ВозвратТоваровОтКлиента.Ссылка,
    |    ОперацияПоПлатежнойКарте.Ссылка,
    |    ОперацияПоПлатежнойКарте.Ссылка.ЭквайринговыйТерминал,
    |    ОперацияПоПлатежнойКарте.Ссылка.СуммаДокумента
    |ИЗ
    |    Документ.ОперацияПоПлатежнойКарте.Изменения КАК ОперацияПоПлатежнойКарте
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента
    |        ПО ОперацияПоПлатежнойКарте.Ссылка.ДокументОснование = ВозвратТоваровОтКлиента.Ссылка
    |ГДЕ
    |    ОперацияПоПлатежнойКарте.Ссылка.Проведен
    |    И ОперацияПоПлатежнойКарте.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту)
    |    И ОперацияПоПлатежнойКарте.Узел = &Узел
    |    И НАЧАЛОПЕРИОДА(ОперацияПоПлатежнойКарте.Ссылка.Дата, ДЕНЬ) = &ПериодРеализации
    |    И НАЧАЛОПЕРИОДА(ВозвратТоваровОтКлиента.Ссылка.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ВозвратТоваровОтКлиента.ДокументРеализации.Дата, ДЕНЬ)    
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    Документы.Период КАК Период,
    |    Документы.Организация КАК Организация,
    |    Документы.Склад КАК Склад
    |ИЗ
    |    Документы КАК Документы
    |
    |СГРУППИРОВАТЬ ПО
    |    Документы.Период,
    |    Документы.Организация,
    |    Документы.Склад
    |
    |УПОРЯДОЧИТЬ ПО
    |    Период,
    |    Организация,
    |    Склад";
    
    Запрос.УстановитьПараметр("Узел",Объект.Узел);
    Запрос.УстановитьПараметр("ПериодРеализации",ПериодРеализации);
   azernot
 
3 - 23.12.21 - 19:11
ВыборкаПоПериоду    = Запрос.ВыполнитьПакет()[0].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Ёпрст
 
4 - 23.12.21 - 20:13
(2) запрос в цикле как-то не алё.
Менеджер временных таблиц там не нужен
И где в (2) итоги и обход ?
   Klesk
 
5 - 26.12.21 - 21:51
ну да, всё коряво, но все работает, ошибка была в другом. всем спасибо.
   МимохожийОднако
 
6 - 26.12.21 - 22:36
(5) Исчерпывающий ответ )

Список тем форума
 
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.