Помогите с запросом

Тема в разделе "1C и всё что с ней связано", создана пользователем Allexei, 11 апр 2011.

  1. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Здравствуйте форумчане, помогите с запросм разобраться. Есть запрос типа
    Выбрать


    |ВЫБРАТЬ
    | РеквизитыВКарточке.Ссылка,
    | ЗначенияСвойствОбъектов.Значение
    |ИЗ
    | РеквизитыВКарточке КАК РеквизитыВКарточке
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    | ПО РеквизитыВКарточке.Ссылка = ЗначенияСвойствОбъектов.Объект

    Возвращает таблицу типа:
    ___________________
    Ссылка1 | Значение1|
    Ссылка1 |Значение2|
    Ссылка1 | Значение3|
    ___________________

    Можно ли как ни будь эту таблицу в самом запросе преобразовать в одну строку таблицы типа
    _________________________________________
    Ссылка1 | Значение1 | Значение2 | Значение3|
    _________________________________________
     
  2. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    пока на ум приходит только использовать конструкцию Выбрать когда с последующей группировкой по полю ссылка. Может есть еще варианты?
     
  3. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А оно действительно сильно надо?
    Неохота ща пример искать...
    Помещаешь во временную таблицу, соединяешь ее саму с собой агрегируешь количество...


    http://www.kb.mista.ru/article.php?id=703 вот это читаем.
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Это несколько противоречит логике скуля - фактически меняется список колонок запроса, да еще это может быть динамическим (количество записей не известно). То бишь подмена текста запроса. Если заложится например что берем первые пять записей - тогда можно придумать, но всё равно будет громоздко.
     
  5. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
  6. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Ну так это нумерация строк в запросе - а потом СКД это дело выводит. Если посмотреть на результаты запроса там будут только три колонки и усё.
     
  7. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Точно.... это не то
    Но иначе я не вижу, зачем это нужно)
     
  8. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Поскольку количество "ЗначениеN", конечно и заранее известно сделал через Выбрать когда..., потом сделал группировку по ссылка и Суммирование с функцией Макс по "Значение". Все получилось. Нужно было для вывода в СКД отчета по клиентам где "Значение" это значение из регистра "АдресаКонтрагента". Хотелось чтоб строкой шел контрагент а далее все его возможные адреса.Спасибо за советы.
     
  9. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Я вот тоже с утра столкнулся - только у меня надо было раскидать суммы по условиям ( в каждой колонке - свой интервал по датам). Решил через временную таблицу.

    Собственно первый запрос сделал сырую таблицу и поместил её в времянку ( сразу в одном нельзя было - вложенные выборы не пахали)

    Код (Text):
    ВЫБРАТЬ
    Первая.Контрагент,
    Первая.КонтрагентПредставление,
    Первая.НомерНакладной,
    Первая.ДатаНакладной,
    Первая.СуммаКОплате,
    Первая.ОтсрочкаПлатежа,
    Первая.Проект,
    Первая.ПроектПредставление,
    Первая.Оплачено,
    Первая.НеОплачено,
    Первая.СрокОплаты,
    Первая.ПросроченнаяЗадолженностьДни,
    Первая.ПросроченнаяЗадолженностьСумма,
    Первая.ОплатаДата,
    Первая.Накладная,
    Первая.СуммаДок,
    Первая.ДокументДвижения,
    ВЫБОР
    КОГДА Первая.ПросроченнаяЗадолженностьДни < 15
    ТОГДА Первая.ПросроченнаяЗадолженностьСумма
    ИНАЧЕ 0
    КОНЕЦ КАК ДБЗ15,
    ВЫБОР
    КОГДА Первая.ПросроченнаяЗадолженностьДни МЕЖДУ 15 И 30
    ТОГДА Первая.ПросроченнаяЗадолженностьСумма
    ИНАЧЕ 0
    КОНЕЦ КАК ДБЗ30,
    ВЫБОР
    КОГДА Первая.ПросроченнаяЗадолженностьДни >30
    ТОГДА Первая.ПросроченнаяЗадолженностьСумма
    ИНАЧЕ 0
    КОНЕЦ КАК ДБЗ30Плюс
    собственно если кол-во записей известно, то никто не мешает делать условия на номер строчки ;-)
     
Загрузка...

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