[РЕШЕНО] СКД группировка

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

  1. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    Есть отчет СКД состоит из товар | количество , когда группирую по товару то количество почему то не суммируется а складывается и умножается на количество записей, хотя в ресурсах СУММА(Количество), почему так?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    /vanga mode on/
    отчет криво написан, надобно поправить
    /vanga mode off/
  3. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    https://yadi.sk/d/CTCInWh9btncj
    --- Объединение сообщений, 9 окт 2014 ---
    я его даже упростил , оставил только товар и количество и все равно он умножает при суммировании
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    не, сюда прилепите....доступа у меня нет к я-диску
  5. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    вот

    Вложения:

  6. nomad_irk
    Online

    nomad_irk Гуру в 1С

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

    Код:
    ......
    ИЗ
        ВТБезN КАК ВТБезN
            ЛЕВОЕ СОЕДИНЕНИЕ ВТСN КАК ВТСN
            ПО (ВТСN.Товар.Код = "N" + ВТБезN.Товар.Код)
  7. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    дело не в этом, я упростил это все и оставил только товар и количество, вывожу записи и например записей товар1 несколько, то есть товар 1 количество -90 ,товар 1 количество -100 потом группирую их и получается товар1 количество -(90+100)*2 ,вот почему он при группировке он их складывает и умножает, когда должен просто суммировать?
  8. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    потому что получаются дубли строк, дубли строк возникают при соединениях.
  9. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    это не дубли строк, строки с одинаковым товаром но количество разное, это ведь правильно там в выборке и должно быть одинаковые товары с разными количествами
  10. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
  11. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    Почему то идет дублирование данных, почему так?

    Код:
    ВЫБРАТЬ
        НезавершенноеПроизводствоГП40.Ссылка КАК Документ,
        НезавершенноеПроизводствоГП40.Ссылка.ЦФУ КАК ЦФУ,
        СУММА(НезавершенноеПроизводствоГП40.Количество) КАК Количество,
        СУММА(НезавершенноеПроизводствоГП40.Всего) КАК Всего,
        СУММА(НезавершенноеПроизводствоГП40.ВсегоВал) КАК ВсегоВал,
        СУММА(НезавершенноеПроизводствоГП40.Отклонение) КАК Отклонение,
        СУММА(НезавершенноеПроизводствоГП40.ОтклонениеВал) КАК ОтклонениеВал,
        НезавершенноеПроизводствоГП40.Товар КАК Товар,
        НезавершенноеПроизводствоГП40.Товар.НомерИзКаталога,
        "N" + НезавершенноеПроизводствоГП40.Товар.Код КАК ТоварКод
    ПОМЕСТИТЬ ВТБезN
    ИЗ
        Документ.НезавершенноеПроизводство.ГП40 КАК НезавершенноеПроизводствоГП40
    ГДЕ
        НезавершенноеПроизводствоГП40.Ссылка.ЦФУ.Код = 24
        И НЕ НезавершенноеПроизводствоГП40.Товар.Код ПОДОБНО "N%"
        И НезавершенноеПроизводствоГП40.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    
    СГРУППИРОВАТЬ ПО
        НезавершенноеПроизводствоГП40.Товар,
        НезавершенноеПроизводствоГП40.Ссылка,
        НезавершенноеПроизводствоГП40.Ссылка.ЦФУ,
        НезавершенноеПроизводствоГП40.Товар.НомерИзКаталога,
        "N" + НезавершенноеПроизводствоГП40.Товар.Код
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        НезавершенноеПроизводствоГП40.Ссылка,
        СУММА(НезавершенноеПроизводствоГП40.Количество) КАК Количество,
        СУММА(НезавершенноеПроизводствоГП40.Всего) КАК Всего,
        СУММА(НезавершенноеПроизводствоГП40.ВсегоВал) КАК ВсегоВал,
        СУММА(НезавершенноеПроизводствоГП40.Отклонение) КАК Отклонение,
        СУММА(НезавершенноеПроизводствоГП40.ОтклонениеВал) КАК ОтклонениеВал,
        НезавершенноеПроизводствоГП40.Товар,
        НезавершенноеПроизводствоГП40.Товар.НомерИзКаталога,
        НезавершенноеПроизводствоГП40.Ссылка.ЦФУ
    ПОМЕСТИТЬ ВТСN
    ИЗ
        Документ.НезавершенноеПроизводство.ГП40 КАК НезавершенноеПроизводствоГП40
    ГДЕ
        НезавершенноеПроизводствоГП40.Товар.Код ПОДОБНО "N%"
        И НезавершенноеПроизводствоГП40.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    
    СГРУППИРОВАТЬ ПО
        НезавершенноеПроизводствоГП40.Товар,
        НезавершенноеПроизводствоГП40.Ссылка,
        НезавершенноеПроизводствоГП40.Товар.НомерИзКаталога,
        НезавершенноеПроизводствоГП40.Ссылка.ЦФУ
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТБезN.Документ КАК Документ,
        ВТБезN.Количество,
        ВТБезN.Всего,
        ВТБезN.ВсегоВал,
        ВТБезN.Отклонение,
        ВТБезN.ОтклонениеВал,
        ВТБезN.Товар,
        ВТБезN.ТоварНомерИзКаталога,
        ВТСN.Ссылка КАК Документ1,
        ВТСN.Количество КАК Количество1,
        ВТСN.Всего КАК Всего1,
        ВТСN.ВсегоВал КАК ВсегоВал1,
        ВТСN.Отклонение КАК Отклонение1,
        ВТСN.ОтклонениеВал КАК ОтклонениеВал1,
        ВТСN.Товар КАК Товар1,
        ВТСN.ТоварНомерИзКаталога КАК ТоварНомерИзКаталога1,
        ВТБезN.ЦФУ,
        ВТСN.ЦФУ КАК ЦФУ1
    ИЗ
        ВТБезN КАК ВТБезN
            ЛЕВОЕ СОЕДИНЕНИЕ ВТСN КАК ВТСN
            ПО (ВТСN.Товар.Код = ВТБезN.ТоварКод)
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Потому что запрос такой :)
  13. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    посмотрите на коды номенклатуры - скорее всего там есть дубли.
  14. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    А вы проверяли 1 запрос?? Вот эта конструкция интересно отрабатывает:
    Код:
    И НЕ НезавершенноеПроизводствоГП40.Товар.Код ПОДОБНО "N%"
  15. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Объясните смысл запроса.
    Я просто то же не совсем пойму. Они одинаковые
    Только в первом подзапросе выбираете все из документов у которых то центр затрат имет код 24, а второй под запрос все то же самое только без этого условия
    А потом вы соединяете их
  16. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    хорошо, давайте по шагам разберем текст запроса.

    первый запрос из пакета собирает номенклатуру из ТЧ документов при условии, что код номеклатуры НЕ начинается на "N", разделяет по документам, ограниченным кодом ЦФУ = 24 и определенным периодом, и помещает результат в ВТ.

    Второй запрос делает все тоже самое, только собирает номенклатуру, код которой начинается на "N", но этот запрос не ограничивает документы по коду ЦФУ = 24.

    Третий запрос соединяет две ВТ, полученные первыми двумя запросами, по номенклатуре.
    Условие объединения полей - по коду номенклатуры с учетом первого символа "N".

    Предположим, что первая временная таблица содержит строку вида:

    Документ1|Товар1|Количество - X

    а вторая временная таблица содержит две строки:

    Документ2|NТовар1|Количество - Y
    Документ3|NТовар1|Количество - Z

    Внимание вопрос: сколько и какого вида строк вернет 3-ий запрос?

    Домашнее задание: убрать из первых двух запросов колонку Документ, выполнить запрос и объяснить полученный результат.
  17. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Чую, кто-то выложил какой-то отчет на популярном ресурсе: второе обращение с одним и тем же запросом с проблемой дублей :)
  18. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Объединил две темы.

    ilyav не надо один и тот же вопрос несколько раз задавать.
  19. TopicStarter Overlay
    ilyav
    Offline

    ilyav Новичок в 1С

    Регистрация:
    19 фев 2014
    Сообщения:
    11
    Симпатии:
    1
    Баллы:
    4
    решил проблему, оказалось проблема в то что итоги были по документу, коду, цфу а они разные поэтому и не объединялось нормально

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