Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 03:12

Объеденить строки в запросе

Автор Nosferatu112, 24 мая 2023, 13:08

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Всем привет, у меня есть запрос, при выборе списокЮрФизЛиц1 он ищет ЮРлица ИП и Обос.подразделение и в таблицу выгружает 3 разные строки.
Как сделать так что бы строки ИП и Обособленое подразделение схлопнулись в строку юрЛицо ?


СписокЮрФизЛиц1 = Новый СписокЗначений;
СписокЮрФизЛиц1.Добавить(Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо, "ЮридическоеЛицо");
СписокЮрФизЛиц1.Добавить(Перечисления.ЮридическоеФизическоеЛицо.ИП, "ИП");
СписокЮрФизЛиц1.Добавить(Перечисления.ЮридическоеФизическоеЛицо.ОбособленноеПодразделение, "ОбособленноеПодразделение");

СписокЮрФизЛиц2 = Новый СписокЗначений;
СписокЮрФизЛиц2.Добавить(Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо, "ФизическоеЛицо");

// Получим Планы продаж из РН ПланыПродажПоТипамКлиентовОбороты

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПланыПродажПоТипамКлиентовОбороты.ЮрФизЛицо КАК ЮрФизЛицо,
| ПланыПродажПоТипамКлиентовОбороты.ТипКлиента КАК ТипКлиента,
| ПланыПродажПоТипамКлиентовОбороты.КоличествоПланОборот КАК КоличествоПланОборот,
| ПланыПродажПоТипамКлиентовОбороты.СуммаПланОборот КАК СуммаПланОборот,
| 0 КАК КоличествоФактОборот,
| 0 КАК СуммаФактОборот
|ИЗ
| РегистрНакопления.ПланыПродажПоТипамКлиентов.Обороты(
| &ДатаНачала,
| &ДатаОкончания,
| ,
| ВЫБОР

| КОГДА &ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ПустаяСсылка)
| ТОГДА ИСТИНА
| КОГДА &ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ИП)
| ИЛИ &ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо)
| ИЛИ &ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ОбособленноеПодразделение)
| ТОГДА ЮрФизЛицо в (&СписокЮрФизЛиц1)
| КОГДА &ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо)
| ТОГДА ЮрФизЛицо в (&СписокЮрФизЛиц2)
| КОНЕЦ) КАК ПланыПродажПоТипамКлиентовОбороты
|
|УПОРЯДОЧИТЬ ПО
| ПланыПродажПоТипамКлиентовОбороты.ТипКлиента";

Запрос.УстановитьПараметр("ЮрФизЛицо", ЮрФизЛицо);
Запрос.УстановитьПараметр("ДатаНачала", ПериодОтчета.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ПериодОтчета.ДатаОкончания);
Запрос.УстановитьПараметр("СписокЮрФизЛиц1", СписокЮрФизЛиц1);
Запрос.УстановитьПараметр("СписокЮрФизЛиц2", СписокЮрФизЛиц2);
РезультатЗапроса1 = Запрос.Выполнить();
Выб = РезультатЗапроса1.Выбрать();

Пока Выб.Следующий() Цикл

НК = Объект.НовыеКлиенты.Добавить();
НК.ЮрФизЛицо = Выб.ЮрФизЛицо;
НК.АдресДоставки = Выб.АдресДоставки;
НК.СуммаФактОборот = Выб.СуммаФактОборот;


КонецЦикла;

Свертка = РезультатЗапроса1.Выгрузить();
Свертка.Свернуть("ЮрФизЛицо,КоличествоПланОборот,СуммаПланОборот", "КоличествоФактОборот, СуммаФактОборот");

Для Каждого Стр из Свертка Цикл

СтрТЗРезультат = Объект.ТЗРезультат.Добавить();
СтрТЗРезультат.ЮрФизЛицо = Стр.ЮрФизЛицо;
СтрТЗРезультат.ТипКлиента = НовыеКлиенты;
СтрТЗРезультат.КоличествоФактОборот = Стр.КоличествоФактОборот;
СтрТЗРезультат.СуммаФактОборот = Стр.СуммаФактОборот;
СтрТЗРезультат.КоличествоПланОборот = Стр.КоличествоПланОборот;
СтрТЗРезультат.СуммаПланОборот = Стр.СуммаПланОборот;


КонецЦикла;

Nosferatu112

Для примера
например он выводит результат
ЮрФизЛицо   КолвоПлан  КолВоФакт и т д

ЮрЛицо        1200        1250

ИП            50          30

Об.Подр       10          1

А нужно
ЮрФизЛицо   КолвоПлан  КолВоФакт и т д

ЮрЛицо        1260        1281


LexaK

Nosferatu112, просто из запроса уберите эти измерения, как раз получите свернутый результат
(не проверял)
  Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо) КАК ЮрФизЛицо,
        |    //ПланыПродажПоТипамКлиентовОбороты.ЮрФизЛицо КАК ЮрФизЛицо,
        |    //ПланыПродажПоТипамКлиентовОбороты.ТипКлиента КАК ТипКлиента,
        |    ПланыПродажПоТипамКлиентовОбороты.КоличествоПланОборот КАК КоличествоПланОборот,
        |    ПланыПродажПоТипамКлиентовОбороты.СуммаПланОборот КАК СуммаПланОборот,
        |    0 КАК КоличествоФактОборот,
        |    0 КАК СуммаФактОборот
        |ИЗ
        |    РегистрНакопления.ПланыПродажПоТипамКлиентов.Обороты(
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск