|  | 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)
свертка в запросе чет не получилась
 ну да ладно
 все равно вроде быстро
 |  |