Имя: Пароль:
1C
1С v8
как перенести значение Таблицы в другую Таблицу перевернув строки на колонки
0 batman1978
 
18.02.15
00:00
Добрый день форумчане

Суть проблемы в том что таблица имеет вид

ВидПлана   Подразделение   Сумма
трям       Подразд1        10
прям       Подразд1        2
трям       Подразд2        4
трям       Подразд3        5
прям       Подразд2        6

а нужно получить вид таблицы
Подразделение   План1(Трям)    План2(Прям)
Подразд1        10             2
Подразд2        4              6
Подразд3        5
и т.д.
то есть перевернув строки на колонки во второй таблице
подскажите как решить данный вопрос
я начал
Для каждого стр из ТабПланПоказ цикл
        НоваяСтрока = ТабПлан.Добавить();
        НоваяСтрока.Подразделение = стр.Подразделение;
   если стр.Найти(трям,"ВидПлана") = "Трям" тогда
        НоваяСтрока.ПланСреднийЧек = стр.Сумма;
   КонецЕсли;
КонецЦикла;
проблема в том что я не как не могу разобраться с условием - что бы если план нужный совпадает то берем из этой же строки сумму и пишем ее в туже строчку куда вписали подразделение на пересечении нужной колонки плана в другой таблице.
1 batman1978
 
18.02.15
00:06
Хотел бы напомнить сразу у меня 1с8.1 )
2 ShoGUN
 
18.02.15
00:06
(0) Выгрузи колонки планов и подразделений в отдельные коллекции, сверни, перебери вложенными циклами. Внутри второго цикла юзай НайтиСтроки. И заполняй новую табличку данными из найденного.
3 batman1978
 
18.02.15
00:25
Ладно перейдем ближе к теме :)

Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПлановыеПоказатели.ВидПлана КАК ВидПлана,
    |    ПлановыеПоказатели.Подразделение КАК Подразделение,
    |    СУММА(ПлановыеПоказатели.Сумма) КАК Сумма
    |ИЗ
    |    РегистрСведений.ПлановыеПоказатели КАК ПлановыеПоказатели
    |ГДЕ
    |    ПлановыеПоказатели.ДатаНач >= &НачПериода
    |    И ПлановыеПоказатели.ДатаКон <= &КонПериода
    |    И ПлановыеПоказатели.Сумма > 0
    |    И (НЕ ПлановыеПоказатели.Подразделение.Город ЕСТЬ NULL )
    |    И (НЕ ПлановыеПоказатели.Подразделение.Закрыто)
    |    И ПлановыеПоказатели.Подразделение.Магазин
    |
    |СГРУППИРОВАТЬ ПО
    |    ПлановыеПоказатели.Подразделение,
    |    ПлановыеПоказатели.ВидПлана";
    
    Запрос.УстановитьПараметр("НачПериода",НачалоМесяца(ДатаТекДень));
    Запрос.УстановитьПараметр("КонПериода",КонецМесяца(ДатаТекДень));
    Результат = Запрос.Выполнить();    
    
    ТабПланПоказ = Результат.Выгрузить();
    
    //ТабПланПоказ.ВыбратьСтроку();
    
    //возврат;
    
    ТабПлан = Новый ТаблицаЗначений;
    
    ТабПлан.Колонки.Добавить("Подразделение");
    ТабПлан.Колонки.Добавить("ПланСреднийЧек");
    ТабПлан.Колонки.Добавить("ПланТрафик");
    ТабПлан.Колонки.Добавить("ПланСумма");
4 batman1978
 
18.02.15
00:27
так вот из ТабПланПоказ перелить данные из строки колонки вид плана раскидать по колонкам новым ПлансреднийЧек и Плантрафик суммы из строки суммы - и еще подразделения перетащить.
5 batman1978
 
18.02.15
00:28
а там разные значения в видплан
6 DirecTwiX
 
18.02.15
00:30
1) Зачем это надо?

2)
а) Обходим выборку, ищем строку с подразделением в результирующей таблицу. Добавляем, если не нашли.
б) Перебираем колонки, ищем ВидПлана. Если Добавляем, если не нашли.
в) В строку пишем число.

Колонки можно хранить либо в первой строке ТЗ, либо в структуре.
7 batman1978
 
18.02.15
00:36
(6) - что бы потом отклонение от плана считать - и можно было связывать
можно подсказки более приближенные ? я еще тока учусь )
8 batman1978
 
18.02.15
00:37
кстати если подскажите как результат этого запроса прям в скд перевернуть было бы вообще хорошо а то через внешний набор данных есть много мелких неудобств )