Имя: Пароль:
1C
1С v8
Подсчет уникальных значений
,
0 rapashocker
 
26.11.19
20:39
Привет, всем просьба помочь, была задача:

Надо выбрать Статус, Набор действий заказа клиентов, затем подсчитать, сколько документов имеют набор значений например

Статус: К выполнению, Действие: Выгрузить и соответственно так далее.

Статуса всего 2: К выполнению и на согласовании.

А действий: 7

Отгрузить, резервировать на складе, Обеспечить, не обеспечить.

Сделал вот так:

"ВЫБРАТЬ
| ЗаказКлиентаТовары.ВариантОбеспечения КАК Действия,
| ЗаказКлиентаТовары.Ссылка.Статус КАК Статус,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Ссылка) КАК Заказ
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
| НЕ ЗаказКлиентаТовары.Ссылка.Статус = &Статус
| И ЗаказКлиентаТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|
|СГРУППИРОВАТЬ ПО
| ЗаказКлиентаТовары.Ссылка.Статус,
| ЗаказКлиентаТовары.ВариантОбеспечения
|ИТОГИ
| СУММА(Заказ)
|ПО
| ОБЩИЕ";

Оказывается надо подсчитать количество документов с уникальным набором, например:

Статус: В резерве, а действий в заказе 2 : Отгрузить, обеспечить, то есть надо вывести сразу и отгрузить и обеспечить через слэш, что то типа отгрузить\обеспечить и количество таких заказов.

Как это проще всего сделать?

Я попытался так:
ВыборкаИтоги = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Если ВыборкаИтоги.Следующий() Тогда
    
    ВыборкаСтатусов = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаСтатусов.Следующий() Цикл
        
        МассивДействий = Новый Массив;
        
        ВыборкаДействий = ВыборкаСтатусов.Выбрать();
        Пока ВыборкаДействий.Следующий() Цикл
            МассивДействий.Добавить(ВыборкаДействий.Действие);
        КонецЦикла;
        
        ТекстСообщения = СтрШаблон("%1 | %2 | %3",
            Строка(ВыборкаСтатусов.Статус),
            СтрСоединить(МассивДействий, "/"),
            Строка(ВыборкаСтатусов.КоличествоЗаказов));
            
        Сообщить(ТекстСообщения);
        
    КонецЦикла;

КонецЕсли;

Но все объединяется в 1 строку, как сделать что шло по колонкам

1 колонка - статус.

2 колонка - действия

3 колонка - Количество

Заранее спасибо.
1 Йохохо
 
26.11.19
21:01
действия ТЧ?
2 rapashocker
 
26.11.19
22:29
(1) Да
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.