Имя: Пароль:
1C
1С v8
Как свернуть ТЗ
,
0 Black Dragon
 
16.12.13
11:55
Доброго дня!

Есть некая таблица значений, у которой 2 стат колонки и некое кол-во динамических. Для исключения повторов строк с одинаковыми значениями у стат колонок требуется свернуть ТЗ. Как передать параметр КолонкиСуммирования, если динамические колонки не поименованы?

Выдержка из СП:

<КолонкиСуммирования> (необязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.
1 Wobland
 
16.12.13
11:55
поименованы, не ври
2 simol
 
16.12.13
11:56
(0)Они не могут быть без имен.
3 Ёпрст
 
16.12.13
11:57
(0)
КолонкиСуммирования =  "_1,_2,.....,_125"
4 Black Dragon
 
16.12.13
12:01
Ок, как узнать имена?

    Для Каждого Стр Из РезультатЗапроса Цикл
        Если ТабИтогов.Количество() = 0 Тогда // нет строк
            ТекСтрока = ТабИтогов.Добавить();
        КонецЕсли;
        ИскЗнч = ТабИтогов.Найти(Стр.Счет);
        Если искЗнч = Неопределено Тогда
            НоваяКолонка = ТабИтогов.Колонки.Добавить();
            ИндексКолонки = ТабИтогов.Колонки.Индекс(НоваяКолонка);
            ТекСтрока[ИндексКолонки] = Стр.Счет;
            СписокСчетов.Вставить(ИндексКолонки,Стр.Счет);
        КонецЕсли;
    КонецЦикла;
5 Defender aka LINN
 
16.12.13
12:07
Колонка.Имя
ВНЕЗАПНО, да?
6 Black Dragon
 
16.12.13
12:11
Ок, нашел

КолонкаТаблицыЗначений (ValueTableColumn)
Имя (Name)
Использование:

Чтение и запись.
Описание:

Тип: Строка.
Содержит строку с именем колонки.

Доступность:

Сервер, толстый клиент, внешнее соединение

Спасибо большое за разъяснение бестолковому! ))
7 Black Dragon
 
16.12.13
12:30
Неправильно! прежде чем утверждать проверь!

    СтрокаИтогов = "";
    
    Для Инд = 2 По ТабИтогов.Колонки.Количество()-1 Цикл
        ТекКолонка = ТабИтогов.Колонки.Получить(Инд);
        ИмяКолонки = ТекКолонка.Имя;
        СтрокаИтогов = СтрокаИтогов + "," + ИмяКолонки;
    КонецЦикла;

После этого кода строка итогов ",,,,", у каждой колонки под отладчиком имя=""
8 kortun
 
16.12.13
12:47
(7) что именно неправильно то? не совсем понятно
9 Галахад
 
гуру
16.12.13
12:48
Да уж. Похоже никто пока не догадался делать безымянные колонки.
10 Ёпрст
 
16.12.13
12:48
(7) дык колонок то поди и нет в тз при этом.. не ?
11 Галахад
 
гуру
16.12.13
12:54
(10) Не. Если не руками не назначить, так и будет безымянными.
12 Ненавижу 1С
 
гуру
16.12.13
12:55
(11) не ври же
13 Ёпрст
 
16.12.13
12:58
(12) он не врёт

Таб = Новый ТаблицаЗначений;    
Для к = 1 По 10 Цикл
    Таб.Колонки.Добавить();
КонецЦикла;
Для каждого Колонка из Таб.Колонки Цикл
    Сообщить(Колонка.Имя);
КонецЦикла;
14 Ёпрст
 
16.12.13
12:59
Блин, в снеговике даже это не смогли реализовать.. в клюшках хоть автоматом имена колонкма присваивались
:))
15 kortun
 
16.12.13
12:59
Для Каждого Стр Из РезультатЗапроса Цикл
        Если ТабИтогов.Количество() = 0 Тогда // нет строк

            ТекСтрока = ТабИтогов.Добавить();
        КонецЕсли;
        ИскЗнч = ТабИтогов.Найти(Стр.Счет);
        Если искЗнч = Неопределено Тогда
            НоваяКолонка = ТабИтогов.Колонки.Добавить();
            ИндексКолонки = ТабИтогов.Колонки.Индекс(НоваяКолонка);
            НоваяКолонка.Имя = "Колонка"+ИндексКолонки;
            ТекСтрока[ИндексКолонки] = Стр.Счет;
            СписокСчетов.Вставить(ИндексКолонки,Стр.Счет);
        КонецЕсли;
    КонецЦикла;

вот так пиши
16 kortun
 
16.12.13
13:00
что уж сложного самому сгенерировать имя колонки
17 Black Dragon
 
16.12.13
13:01
Уже по-своему сделал:

    НомКол = 1;
    
    Для Каждого Стр Из РезультатЗапроса Цикл
        Если ТабИтогов.Количество() = 0 Тогда // нет строк
            ТекСтрока = ТабИтогов.Добавить();
        КонецЕсли;
        ИскЗнч = ТабИтогов.Найти(Стр.Счет);
        Если искЗнч = Неопределено Тогда
            НоваяКолонка = ТабИтогов.Колонки.Добавить("Кол" + Строка(НомКол));
            НомКол = НомКол + 1;
            ИндексКолонки = ТабИтогов.Колонки.Индекс(НоваяКолонка);
            ТекСтрока[ИндексКолонки] = Стр.Счет;
            СписокСчетов.Вставить(ИндексКолонки,Стр.Счет);
        КонецЕсли;
    КонецЦикла;
18 Black Dragon
 
16.12.13
13:02
дык ведь не знал что они пустые будут ))
и по индексам было бы неплохо добавлять в свертку тоже! неполноценный АПИ однако!
19 Ёпрст
 
16.12.13
13:03
Кстате, ЗначениеВСтрокуВнутр это подтверждает, есть токма индекс колонки.. и усё..
20 Black Dragon
 
16.12.13
13:04
Хех)
21 WildSery
 
16.12.13
13:04
(18) Почему не знал-то?

КоллекцияКолонокТаблицыЗначений (ValueTableColumnCollection)
Добавить (Add)
Синтаксис:

Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>)
Параметры:

<Имя> (необязательный)

Тип: Строка.
Имя колонки.
Значение по умолчанию: Пустая строка
[cut]
22 Black Dragon
 
16.12.13
13:07
в (14) писали уже что в 77 по умолчанию были имена!
23 Black Dragon
 
16.12.13
13:09
Даааа, многие на это наступили....что же, судьба)))
24 Галахад
 
гуру
16.12.13
13:11
(23) Да всем пофиг. Некоторые не только имя колонке дают, но еще и типизируют...
25 Nenaviwu1c20
 
16.12.13
13:20
(24) Типизирую только в том случае если в запрос таблицу кинуть надо
26 МихаилМ
 
16.12.13
13:48
(25)
программирование - точная дисциплина.
конкретизировать (типизировать) нужно максимально.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан