8.х Цикл в запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Android, 11 май 2010.

  1. TopicStarter Overlay
    Android
    Offline

    Android

    Регистрация:
    18 окт 2007
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Необходимо в запросе который выводит отчет по контрагентам выводить рядом с наименованиями контрагентов колонку менеджеры контрагентов где в одной ячейке выводить всех менеджеров поставщика/покупателя через запятую. Т.е. в запросе необходимо пройтись по табличной части справочника и сцепить всех контрагентов в одну строку.
    Как такое сделать в запросе 1С??? В оракле можно было воспользоваться курсором и циклом, в запросах 1С не вижу ничего подобного...

    Есть ли возможность в запросе из табличной части сделать одну строку с разделителями?
  2. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Платформа предоставляет подобные возможности. И даже возможностей то тут целый ряд. В самом простом случае запрашиваем табличную часть как таковую и затем просто в коде ее разбираем.

    Пример запроса:
    Код:
    ВЫБРАТЬ
    РеализацияТоваровУслуг.Товары.(
    Ссылка,
    НомерСтроки,
    ЕдиницаИзмерения,
    ЕдиницаИзмеренияМест,
    ЗначениеУсловияАвтоматическойСкидки,
    Качество,
    Количество,
    КоличествоМест,
    Коэффициент,
    Номенклатура
    ) КАК Товары
    ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    
    
    Здесь каждое поле "Товары" выборки из результата запроса будет содержать в себе ТаблицуЗначений.

    Либо через группировки:

    Код:
    ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    РеализацияТоваровУслугТовары.НомерСтроки,
    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
    РеализацияТоваровУслугТовары.ЕдиницаИзмеренияМест,
    РеализацияТоваровУслугТовары.ЗначениеУсловияАвтоматическойСкидки,
    РеализацияТоваровУслугТовары.Качество,
    РеализацияТоваровУслугТовары.Количество,
    РеализацияТоваровУслугТовары.КоличествоМест,
    РеализацияТоваровУслугТовары.Коэффициент,
    РеализацияТоваровУслугТовары.Номенклатура
    ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
    СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Ссылка,
    РеализацияТоваровУслугТовары.НомерСтроки,
    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
    РеализацияТоваровУслугТовары.ЕдиницаИзмеренияМест,
    РеализацияТоваровУслугТовары.ЗначениеУсловияАвтоматическойСкидки,
    РеализацияТоваровУслугТовары.Качество,
    РеализацияТоваровУслугТовары.Количество,
    РеализацияТоваровУслугТовары.КоличествоМест,
    РеализацияТоваровУслугТовары.Коэффициент,
    РеализацияТоваровУслугТовары.Номенклатура
    ИТОГИ ПО
    Ссылка
    
    
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    В запросе: если только соединять наименования, но это будет не быстро.
    В СКД можно вывести, как доп поля группировки, например.
    Либо идти по выборке и формировать отчет самому.
  4. TopicStarter Overlay
    Android
    Offline

    Android

    Регистрация:
    18 окт 2007
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Это как? :smile:

    В коде я умею разложить ТЗ в строку, тут подсказали что в СКД можно прямо в запросе использовать глобальные функции:
    Но хотелось бы знать есть ли возможность так сделать непосредственно в запросе... говорят что нету :unsure:
  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    ВЫБРАТЬ
    Таблица.Контрагент.Наименование + "," + Таблица.ОсновнойМенеджер.Наименование

    Но это плохой стиль.
  6. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    BabySG нужны все манагеры, а не основной, в этом и проблема
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Можно и всех вывести, просто запрос будет.... мммм... корявый.
    Лучше такое сделать в обходе выборки.

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