Имя: Пароль:
1C
1С v8
Перевести несколько строк в одну в одну строку
0 sv201
 
20.04.13
19:28
Добрый день

Помоги решить одну задачу, запросом я получаю следующие данные

День1 - 2000 (рублей)
День2 - 3000 (рублей)
День3 - 4000 (рублей)
День4 - 5000 (рублей)
День5 - 6000 (рублей)
День6 - 7000 (рублей)
...................

Вопрос отобразить эти данные в таблице значении одной строкой
соответственно колонки это дни, а их значения сумма???
1 sv201
 
20.04.13
19:29
День1 *** День2 *** День3 *** День4 *** День5 *** День6
2000  *** 3000  *** 4000  *** 5000  *** 6000  *** 7000
2 sv201
 
20.04.13
19:29
что то подобное
3 Wobland
 
20.04.13
19:31
конкатенацию строк не умеешь делать? это плюсиком. и зачем тебе ТЗ?
4 Wobland
 
20.04.13
19:32
и почему бы не употребить СКД?
5 sv201
 
20.04.13
19:35
это не отчет, а таблица значении использую для отображения пользователью
6 sv201
 
20.04.13
19:35
информация для пользователя
7 sv201
 
20.04.13
19:37
на счет конкатенацию строк действительно не умею,
8 mistеr
 
20.04.13
19:37
(0) Добавить в ТЗ сколько нужно колонок, в цикле.

(3) Конкатенация тут каким боком?
9 Wobland
 
20.04.13
19:37
(8) а никаким. человек разговаривать не умеет, а я повёлся
10 sv201
 
20.04.13
19:43
с колонками понятно меня интересует строки
11 sv201
 
20.04.13
19:44
значения суммы
12 Kookish
 
20.04.13
19:57
ТаблицаЗначений.Колонки.Добавить(); Оно?
13 sv201
 
20.04.13
20:24
запрос=новый запрос("ВЫБРАТЬ
                        |    ПродажиОбороты.СтоимостьОборот,
                        |    ДЕНЬ(ПродажиОбороты.Период) КАК день
                        |ИЗ
                        |    РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, День, ) КАК ПродажиОбороты
                        |
                        |УПОРЯДОЧИТЬ ПО
                        |    день");
   запрос.УстановитьПараметр("ДатаНач", ДатаНач);
   запрос.УстановитьПараметр("ДатаКон", ДатаКон);
   
   выборка = запрос.Выполнить().Выбрать();
   Тз=запрос.Выполнить().Выгрузить();
   
   НовыйТЗ=НОвый ТаблицаЗначений;
   Для Каждого стр из ТЗ цикл
       КолонкаДня="День"+стр.день;
       НовыйТЗ.Колонки.Добавить(КолонкаДня);
   КонецЦикла;
   
   строкаЗнч=НовыйТЗ.Добавить();
   Пока выборка.Следующий() цикл
       для каждого колонка из НовыйТЗ.Колонки цикл
           строкаЗнч[колонка]=выборка.СтоимостьОборот;
       КонецЦикла;
   КонецЦикла;
14 sv201
 
20.04.13
20:24
ОШИБКА!!! Получение элемента по индексу для значения не определено
15 sv201
 
20.04.13
20:25
Как можно преобразовать этот запрос?
16 sv201
 
20.04.13
20:25
чтобы работало
17 sv201
 
20.04.13
20:32
Ошибка в этой части
.................................................
строкаЗнч[колонка]=выборка.СтоимостьОборот;
.................................................

пробовал и таким образом строкаЗнч.колонка
18 Ковычки
 
20.04.13
20:41
Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс элемента (нумерация с 0).
19 sv201
 
20.04.13
20:51
не вариант
20 EvgeniuXP
 
20.04.13
20:57
(0) передать в макет.
21 sv201
 
20.04.13
21:01
в таблицу значении на отображение
22 mistеr
 
20.04.13
21:08
(13) Жесть.

По шагам:

1. Выполнил запрос. Не выгружаешь никуда
2. Создал ТЗ
3. Обходишь результат запроса в цикле
3.1 Сформировал имя колонки
3.2 Добавил колонку
3.3 Записал в нее значение в ПЕРВУЮ строку.

Кодом лень писать.
23 sv201
 
20.04.13
21:12
как вот эту часть сделать если заранее незнаешь сколько у тебя колонок будет

3.3 Записал в нее значение в ПЕРВУЮ строку.
24 hhhh
 
20.04.13
21:27
строкаЗнч[колонка.Имя]=

детский сад
25 mistеr
 
20.04.13
21:32
(23) На шаге 2 добавил строку

Строка = Таблица.Добавить();

На шаге 3.3

Строка[ИмяКолонки] = ...

Надеюсь допишешь сам все-таки.
26 sv201
 
20.04.13
21:40
да все понятно теперь работает спасибо за помощь просто надо было коротко что в запросе (13) я чуть не так делаю, надо было указать что вместо колонка использовать колонка.имя