8.х Соединение в запросе

Тема в разделе "Система компоновки данных (СКД)", создана пользователем roofless, 1 дек 2014.

  1. TopicStarter Overlay
    roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29
    Всем привет.

    Неожиданно возникла проблема при попытке соединить регистр сведений штрихкодов к табличной части отчета о розничных продажах.

    Текст стандартного запроса вот:

    Код:
        Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |    Док.Номер                        КАК Номер,
        |    Док.Дата                         КАК Дата,
        |    Док.Ссылка                       КАК Ссылка,
        |    Док.КассаККМ                     КАК КассаККМ,
        |    Док.Валюта                       КАК Валюта,
        |    Док.ЦенаВключаетНДС              КАК ЦенаВключаетНДС,
        |    Док.КассаККМ.Представление       КАК Покупатель,
        |    Док.Ответственный.ФизическоеЛицо КАК Ответственный,
        |    Док.Организация                  КАК Организация,
        |    Док.Организация.Префикс          КАК Префикс,
        |    Док.Организация.Представление    КАК Поставщик,
        |    Док.СуммаДокумента               КАК СуммаДокумента,
        |    Док.Товары.(
        |        НомерСтроки                                                        КАК НомерСтроки,
        |        Номенклатура.НаименованиеПолное                                    КАК ПолноеНаименованиеНоменклатуры,
        |        Номенклатура.Код                                                   КАК Код,
        |        Номенклатура.Артикул                                               КАК Артикул,
        |        Характеристика.НаименованиеПолное                                  КАК ПолноеНаименованиеХарактеристики,
        |        ВЫБОР КОГДА ЕСТЬNULL(Док.Товары.Упаковка.Коэффициент, 1) = 1
        |                ТОГДА НЕОПРЕДЕЛЕНО
        |            ИНАЧЕ Док.Товары.Упаковка.Наименование
        |        КОНЕЦ                                                              КАК НаименованиеУпаковки,
        |        КоличествоУпаковок                                                 КАК Количество,
        |        ВЫБОР КОГДА Док.Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
        |                ТОГДА ПРЕДСТАВЛЕНИЕ(Док.Товары.Номенклатура.ЕдиницаИзмерения)
        |            ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Док.Товары.Упаковка.ЕдиницаИзмерения)
        |        КОНЕЦ                                                              КАК ЕдиницаИзмерения,
        |        Цена                                                               КАК Цена,
        |        Док.Товары.КоличествоУпаковок * Док.Товары.Цена - Док.Товары.Сумма КАК Скидка,
        |        Сумма                                                              КАК Сумма,
        |        СуммаНДС                                                           КАК СуммаНДС
        |    )
        |ИЗ
        |    Документ.ОтчетОРозничныхПродажах КАК Док
        |ГДЕ
        |    Док.Ссылка В(&МассивДокументов)");
    
    еще нужно получить для каждой позиции её ШК.

    делаю так:

    Код:
    ...
        |        Док.Товары.КоличествоУпаковок * Док.Товары.Цена - Док.Товары.Сумма КАК Скидка,
        |        Сумма                                                              КАК Сумма,
        |        СуммаНДС                                                           КАК СуммаНДС,
    ШтрихкодыНоменклатуры КАК Штрихкоды
        |    )
        |ИЗ
        |    Документ.ОтчетОРозничныхПродажах КАК Док
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
         ПО Док.Товары.Номенклатура.Ссылка = ШтрихкодыНоменклатуры.Номенклатура.Ссылка
        |ГДЕ
        |    Док.Ссылка В(&МассивДокументов)");
    
    и вылетает много одинаковых документов.

    в чем я не прав?
  2. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    ну так выводятся же поля
    Док.Ссылка и значение строки в каждом документ, соответсвено получается сколько строк в табличной части товары столько и док вылазиет. Вроде как так.
  3. TopicStarter Overlay
    roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29
    это я в курсе. но мне-то нужна одна строчка с вложенной таблицей
  4. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Что значит одна строчка с вложенной таблицей? тогда может быть обход по группировкам?
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    А так не получится, т.к. ШК он на номенклатуру, а номенклатуры в ТЧ документа может быть много.

    Необходимо немного изменить запрос и применить ИТОГИ по документу, потом это все обойти по группировкам.
  6. TopicStarter Overlay
    roofless
    Offline

    roofless Опытный в 1С

    Регистрация:
    27 июн 2014
    Сообщения:
    260
    Симпатии:
    7
    Баллы:
    29
    может быть кому-нибудь пригодится
    Код:
        |ВЫБРАТЬ
        |        ОтчетОРозничныхПродажах.Ссылка                                                 КАК Ссылка,
        |        ОтчетОРозничныхПродажах.Номер                                                  КАК Номер,
        |        ОтчетОРозничныхПродажах.Дата                                                   КАК Дата,
        |        ОтчетОРозничныхПродажах.КассаККМ                                                КАК КассаККМ,
        |        ОтчетОРозничныхПродажах.Валюта                                             КАК Валюта,
        |        ОтчетОРозничныхПродажах.ЦенаВключаетНДС                                            КАК ЦенаВключаетНДС,
        |       
        |        ОтчетОРозничныхПродажах.КассаККМ.Представление                КАК Покупатель,
        |        ОтчетОРозничныхПродажах.Ответственный.ФизическоеЛицо                  КАК Ответственный,
        |        ОтчетОРозничныхПродажах.Организация    КАК Организация,
        |        ОтчетОРозничныхПродажах.Организация.Префикс                                    КАК Префикс,
        |        ОтчетОРозничныхПродажах.Организация.Представление   КАК Поставщик,
        |         ОтчетОРозничныхПродажах.СуммаДокумента                                    КАК СуммаДокумента
        |       
        |        ИЗ
        |        Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
        |   
        |    ГДЕ
        |        ОтчетОРозничныхПродажах.Ссылка В (&МассивДокументов)
        |   
        |    УПОРЯДОЧИТЬ ПО
        |        Ссылка
        |    ;
        |   
        |    ////////////////////////////////////////////////////////////////////////////
        |    // ЗАПРОС ПО ТАБЛИЧНЫМ ЧАСТЯМ
        |   
        |    ВЫБРАТЬ
        |        ВложенныйЗапрос.Ссылка                                                     КАК Ссылка,
        |        ВложенныйЗапрос.НомерСтроки                                               КАК НомерСтроки,
        |        ВложенныйЗапрос.НаименованиеПолное                            КАК ТоварНаименование,
        |        ВложенныйЗапрос.Код                                       КАК Код,
        |        ВложенныйЗапрос.Артикул                                       КАК Артикул,
        |   
        |        ВложенныйЗапрос.Штрихкод                          КАК Штрихкод,
        |       
        |        ВложенныйЗапрос.ПолноеНаименованиеХарактеристики                                  КАК ПолноеНаименованиеХарактеристики,
        |        ВложенныйЗапрос.НаименованиеУпаковки                             КАК НаименованиеУпаковки,
        |        ВложенныйЗапрос.КоличествоУпаковок                                       КАК КоличествоУпаковок,
        |        ВложенныйЗапрос.ЕдиницаИзмерения                                           КАК ЕдиницаИзмерения,
        |       
        |        ВложенныйЗапрос.Цена                                                       КАК Цена,
        |        ВложенныйЗапрос.Скидка                                                 КАК Скидка,
    
        |        ВложенныйЗапрос.Сумма                                                      КАК Сумма,
        |        ВложенныйЗапрос.СуммаНДС                                                   КАК СуммаНДС
        |
        |        ИЗ (
        |        ВЫБРАТЬ
        |            ОтчетОРозничныхПродажах.Ссылка КАК Ссылка,
        |            ОтчетОРозничныхПродажах.НомерСтроки                                                        КАК НомерСтроки,
        |            ОтчетОРозничныхПродажах.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
        |           
        |        ОтчетОРозничныхПродажах.Номенклатура.Код                                                   КАК Код,
        |        ОтчетОРозничныхПродажах.Номенклатура.Артикул                                               КАК Артикул,
        |        ОтчетОРозничныхПродажах.Характеристика.НаименованиеПолное                                  КАК ПолноеНаименованиеХарактеристики,
        |        ВЫБОР КОГДА ЕСТЬNULL(ОтчетОРозничныхПродажах.Упаковка.Коэффициент, 1) = 1
        |                ТОГДА НЕОПРЕДЕЛЕНО
        |            ИНАЧЕ ОтчетОРозничныхПродажах.Упаковка.Наименование
        |        КОНЕЦ                                                              КАК НаименованиеУпаковки,
        |        ОтчетОРозничныхПродажах.КоличествоУпаковок                                                 КАК КоличествоУпаковок,
        |        ВЫБОР КОГДА ОтчетОРозничныхПродажах.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
        |                ТОГДА ПРЕДСТАВЛЕНИЕ(ОтчетОРозничныхПродажах.Номенклатура.ЕдиницаИзмерения)
        |            ИНАЧЕ ПРЕДСТАВЛЕНИЕ(ОтчетОРозничныхПродажах.Упаковка.ЕдиницаИзмерения)
        |        КОНЕЦ                                                              КАК ЕдиницаИзмерения,
        |        ОтчетОРозничныхПродажах.Цена                                                               КАК Цена,
        |        ОтчетОРозничныхПродажах.КоличествоУпаковок * ОтчетОРозничныхПродажах.Цена - ОтчетОРозничныхПродажах.Сумма КАК Скидка,
        |        ОтчетОРозничныхПродажах.Сумма                                                              КАК Сумма,
        |        ОтчетОРозничныхПродажах.СуммаНДС                                                           КАК СуммаНДС,
        |       
        |         ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
        |        
        |        ИЗ
        |            Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажах
        |     //ларин
        |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        |     ПО ОтчетОРозничныхПродажах.Номенклатура.Ссылка = ШтрихкодыНоменклатуры.Номенклатура.Ссылка
        |    //ларин
        |        ГДЕ
        |            ОтчетОРозничныхПродажах.Ссылка В (&МассивДокументов)
        |       
        |        ) КАК ВложенныйЗапрос
        |   
        |    УПОРЯДОЧИТЬ ПО
        |        НомерСтроки
        |   
        |    ИТОГИ ПО
        |        Ссылка"
    

Поделиться этой страницей