Имя: Пароль:
1C
1С v8
Как красиво соединить товары и признаки
🠗 (Волшебник 24.04.2023 16:29)
,
0 picom
 
24.04.23
13:01
Есть таблица (строки)
Товар1 Хороший
Товар1 Пригожий
Товар2 Соленый
Товар2 Печеный

Нужно получить таблицу
Товар1 Хороший/Пригожий
Товар2 Печеный/Соленый

Как это сделать не переборами, а более изящно?
1 Волшебник
 
24.04.23
13:03
Добавьте ИТОГИ ПО Товар
2 picom
 
24.04.23
13:09
В понедельник нужен пример ... (
3 Волшебник
 
24.04.23
13:10
(2) Не морочьте людям голову
4 lodger
 
24.04.23
13:21
Из запроса
В коде
В отчете
?
5 picom
 
24.04.23
13:26
Как угодно, таблица значений приходит через API
6 Волшебник
 
24.04.23
13:29
(5) Отправьте таблицу значений в ЗАПРОС и добавьте ИТОГИ ПО
7 RomanYS
 
24.04.23
13:30
(0)
цикл по товарам
1. Копировать ТЗ с отбором по товару
2. МассивПризнаков = ВыгрузитьКолонку
3. СтрокаПризнаков = СтрСоединить(МассивПризнаков, "/");
8 Волшебник
 
24.04.23
13:31
(7) Грубое, топорное решение. Через запрос элегантнее
9 RomanYS
 
24.04.23
13:35
(8) тогда уже СКД. В запросе строку не соберешь в итогах
10 picom
 
24.04.23
13:36
(8) так там же строки ....
11 azernot
 
24.04.23
13:36
(0)
>Нужно получить таблицу
>Товар1 Хороший/Пригожий

Хороший/Пригожий - это одна колонка? В ней просто текст через слэш? Или это две колонки?
12 picom
 
24.04.23
13:37
(0) любой разделитель - слепить в одну строку
13 picom
 
24.04.23
13:38
(12) -> (11)
(12)  + (0)
14 Волшебник
 
24.04.23
13:38
(12) Вам это не нужно. Вам нужна иерархия и итоги. Поверьте моему опыту
15 azernot
 
24.04.23
13:41
(12) Ну, есть вариант через СКД с использованием агрегатной функции

СоединитьСтроки(Массив(Признак), ";")

из https://infostart.ru/1c/articles/1116759/
16 picom
 
24.04.23
13:58
(14) Вы про обход по группировке?
17 Волшебник
 
24.04.23
14:02
(16) Да
18 lodger
 
24.04.23
15:03
(5) предположим что у нас есть готовое ТЗ.
любая манипуляция с таблицей данных это цикл. вообще любая.
чтобы было красиво и изящно - надо считать количество циклов по таблице. чем меньше - тем красивее и изящнее.

заставить Запрос всосать параметр ТЗ и выдать - это уже 2 цикла, это мы ещё манипуляции внутри не посчитали.
заставить СКД всосать параметр ТЗ и выдать - это, емнип, даже больше чем 2 цикла для запроса.
обойти ТЗ в лоб = 1 цикл. если фантазии хватит.
19 Волшебник
 
24.04.23
15:11
(18) У профессионалов циклы не тормозят
20 RomanYS
 
24.04.23
15:21
(18) так "изящно" каждый по-своему понимает. Для кого-то просто и быстро это не изящно))
21 Garykom
 
гуру
24.04.23
15:22
(0) СОЕДИНЕНИЕ
22 RomanYS
 
24.04.23
15:23
(21) нужно больше трэша) Что соединять будем?
23 Волшебник
 
24.04.23
15:25
(21) Левое или правое, внутреннее или внешнее? А может полное?
24 Garykom
 
гуру
24.04.23
16:18
таблицу саму с собой по товар и складывать признаки
25 Garykom
 
гуру
24.04.23
16:18
(23) в данном случае глубоко пофиг
ибо все соединения в sql полные, просто условия накладываются
26 RomanYS
 
24.04.23
16:22
(24) И сколько раз соединять? Количество признаков вроде не ограничено
27 Garykom
 
гуру
24.04.23
16:46
(26) Гм
Ну тогда https://infostart.ru/1c/articles/1342853/
Получить таблицу различных признаков, транспонировать ее и соединить с исходнойй
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой