8.х Сгруппировать только по одному реквизиту

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем bluntschi, 2 июл 2013.

  1. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    Добрый день, подскажите, у меня есть запрос, он выводит Номенклатуру, документы в которых он есть, и количество из этих документов, и мне нужно сгруппировать позиции, но только по полю номенклатура, это возможно сделать?

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

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Странный вопрос. Группируйте. Сложность то в чем?
  3. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    если оставлять
    СГРУППИРОВАТЬ ПО
    Номенклатура
    ругается, что поле не входит в группу: Ном.Наименование и Регистратор
  4. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Регистратор уберите из полей выборки.
  5. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    а он мне нужен для пользовательских полей, чтобы выводилось

    номенклатура | регистратор
  6. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Вот Вы подумайте немного. Чего Вы хотите добиться?!Просто попытайтесь представить данные у себя в голове в виде таблицы. И пользуйтесь консолью. В Вашем запросе абсолютно лишняя первая таблица. А если такой номенклатурной позиции нет в каком-то определенном регистраторе, то как вы можете сгруппировать по номенклатуре?! Если для пользователя нужен регистратор, то значит группируйте по регистратору.
  7. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    ну смотрите, у меня есть номенклатура, она как в приходном ордере числиться, так и в пермещении, и мне нужно чтобы выходило так:

    Стол| Приходный ордер № 1| 5 шт| Перемещение товаров № 1| 3 шт.

    а сейчас у меня так

    Стол| Приходный ордер № 1| 5 шт| |
    Стол| | | Перемещение товаров № 1| 3 шт.
  8. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    А может быть ведь еще и так: Стол| Приходный ордер № 1| 5 шт| Перемещение товаров № 1| 3 шт.| Реализация товаров № 1| 4 шт. Да?
  9. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    да...конечно может, и нужно то чтобы, оно вот в одну строчку было, а не в 4 как у меня сейчас :(
  10. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    В запросе этого не сделать. Это можно уже после циклом перебрать. У Вас отчет?
  11. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    у меня отчет на скд, а как циклом?
  12. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    думаю можно извратиться и в запросе, только не в одном, а целый пакет городить с выборкой по каждому виду документа в отдельном пакете. Потом обЪединять результат. А так думаю быстрее циклом пробежаться
  13. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    а можете рассказать поподробнее про способ циклом?) :blush:
  14. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Это только когда заведомо знаешь сколько полей будет в конечном результате.
    Циклом перебираете все регистраторы, которые есть в конечном результате. Предположу, что ваш отчет построен макетом. При выводе макета, на каждой итерации цикла добавляете колонку с нужным регистратором методом Присоединить(). Затем уже пробегаетесь по конечной выборке с отбором по конечной выборке с отбором по нужному регистратору и выводите уже детальные записи.
  15. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    создайте ТЗ с нужными колонками, ваш запрос запускаете, выгружаете в тз, сортируете по номенклатуре и дальше в цикле идете по этой тз и заполняете созданную изначально ТЗ. В этом случае у вас будет по 1 строке на каждую номенклатуру. Будет много условий явно внутри цикла, у вас ведь несколько документов. Я бы лучше пакетным запросом попробовала на вашем месте.

    это тоже верно, я всей задачи не знаю. Могу лишь предолжить варианты, а ТС уже выбирать метод решения его /ее задачи
  16. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    а объединение по какому реквизиту, номенклатуре?

    да у меня известно сколько полей будет, в смысле известно сколько будет документов в конечном итоге
  17. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
  18. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    вот что-то подобное вы имеете в виду под пакетом запросов:

    Код:
    ВЫБРАТЬ
    Номенклатура.Ссылка
    ПОМЕСТИТЬ Ном
    ИЗ  Справочник.Номенклатура как Номенклатура
    ;
    ВЫБРАТЬ
    Номенклатура,
    Ссылка как ДокРеализация,
    Сумма(Количество)
    ПОМЕСТИТЬ Реализация
    ИЗ
    Документ.РеализацияТоваровУслуг.Товары как РеализацияТоваров
    ГДЕ
    РеализацияТоваров.Ссылка.Проведен
    СГРУППИРОВАТЬ ПО Номенклатура, Ссылка
    ;
    ВЫБРАТЬ
    Номенклатура,
    Ссылка как ДокТребование,
    Сумма(Количество)
    ПОМЕСТИТЬ Требование
    ИЗ
    Документ.ТребованиеНакладная.Материалы как ТребованиеНакладная
    ГДЕ
    ТребованиеНакладная.Ссылка.Проведен
    СГРУППИРОВАТЬ ПО Номенклатура, Ссылка
    ;
    ВЫБРАТЬ
    Ном.Ссылка,
    Требование.Количество,
    Требование.Номенклатура,
    Требование.ДокТребование,
    Реализация.Количество,
    Реализация.Номенклатура,
    Реализация.ДокРеализация
    ИЗ
    Ном КАК Ном
    ПРАВОЕ СОЕДИНЕНИЕ
    Требование КАК Требование
    ПО Ном.Ссылка = Требование.Номенклатура
    ПРАВОЕ СОЕДИНЕНИЕ
    Реализация КАК Реализация
    ПО Ном.Ссылка = Реализация.Номенклатура
    
    ?
  19. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    в принципе можно и через соединение попробовать, результат то смотрели в консоли?
  20. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    этот запрос у меня 1с закрывает) и пишет: недостаточно памяти
    в консоли не смотрела, я ее еще пока не использую

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