|
v7: Индексированная таблица. Свернуть столбец со строкой |
☑ |
0
AntiBuh
02.07.14
✎
13:07
|
Помогите с задачей
есть таблица вида:
Ключ к1(Строка) к2(строка) к3(число)
------------------------------------------
Знач1 Стр1
Знач1 стр2
знач1 числ1
нужно получить из этого 1 строку таблицы
можно ли быстро свернуть или придется перебором заполнять к1 и к2 для свертки?
|
|
1
mikecool
02.07.14
✎
13:27
|
выгрузить в тз и свернуть?
нет у ИТ метода?
|
|
2
MadJhey
02.07.14
✎
13:28
|
строковые значение не сворачиваются. сделай перебором
|
|
3
aqua80
03.07.14
✎
01:36
|
Например так:
[code]//заполнение
тз = СоздатьОбъект("ТаблицаЗначений");
тз.НоваяКолонка("Ключ", "Строка");
тз.НоваяКолонка("К1", "Строка");
тз.НоваяКолонка("К2", "Строка");
тз.НоваяКолонка("К3", "Число");
тз.НоваяСтрока();
тз.Ключ = "Знач1";
тз.К1 = "Стр1";
тз.НоваяСтрока();
тз.Ключ = "Знач1";
тз.К2 = "Стр2";
тз.НоваяСтрока();
тз.Ключ = "Знач1";
тз.К3 = 10;
//контроль до
тз.ВыбратьСтроку();
//обработка
тз.ПолучитьСтрокуПоНомеру(1);
Пока тз.КоличествоСтрок() > 1 Цикл
тз.К1 = Макс(тз.К1, тз.ПолучитьЗначение(2, "К1"));
тз.К2 = Макс(тз.К2, тз.ПолучитьЗначение(2, "К2"));
тз.К3 = Макс(тз.К3, тз.ПолучитьЗначение(2, "К3"));
тз.УдалитьСтроку(2);
КонецЦикла;
//контроль после
тз.ВыбратьСтроку();[/code]
|
|
4
КонецЦикла
03.07.14
✎
01:40
|
Встречный вопрос, что делать с такими данными?
Ключ к1(Строка) к2(строка) к3(число)
------------------------------------------
Знач1 Стр1
Знач1 стр2
знач1 стр3 числ1
|
|
5
VladZ
03.07.14
✎
07:22
|
(0) Варианты решений:
1. Не создавать себе такую проблему. Т.е. на этапе получения данной таблицы заполнять ее так, как нужно, а не так, как получилось.
2. см. Индексированная таблица. Там есть ЛевоеСоединение, ПравоеСоединение.
|
|
6
AntiBuh
03.07.14
✎
07:55
|
(4) такого не может получиться
(5) 1. знаю что лучше изначально, но заполняется из запроса
2. вроде нету такого у индексированной
|
|
7
Salimbek
03.07.14
✎
12:02
|
(6) 1. Если заполняется из запроса, то может проще обернуть этот запрос, типа:
SELECT Ключ, Max(к1), Max(к2) FROM (...тут твой запрос...) GROUP BY Ключ
и не надо будет мучить бедную 1С-ку.
2. Есть такое у Индексированной
|
|
8
Ёпрст
гуру
03.07.14
✎
12:04
|
(0) сделать запрос к этой тз через 1sqlite и там group_concat
|
|
9
AntiBuh
03.07.14
✎
14:35
|
короч взял каркас идеи из (3)
свертка в запросе чет не получилась
ну да ладно
все равно вроде быстро
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший