Имя: Пароль:
1C
 
Таблицы значения скрещивания
,
0 Enot_tut
 
05.04.18
13:49
есть 2 таблицы значения как их совместить в одну таблицу?(наименования колонок совпадает но они разбросаны) пример колонок:
св1 св2 св8 св4 товар а в другой  св8 товар св2 св4 св1

как их совместить в одну?
1 Enot_tut
 
05.04.18
13:49
или как упорядочить колонки чтобы они сначала шли товар св1 св2 св4 св8 ?
2 Lexey_
 
05.04.18
13:57
(0) Для каждого СтрокаТаблицыИсточника Из ТаблицаИсточник Цикл

        СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриемника, СтрокаТаблицыИсточника);

    КонецЦикла;
3 Enot_tut
 
05.04.18
14:08
(2) а можешь рассказать что тут приходить в твоем коде
?
4 Ц_У
 
05.04.18
14:09
(3)
перебирает строки таблицы номер 1 и засовывает их в таблицу номер 2, ЗаполнитьЗначенияСвойств(источник, приемник) - заполняет поля приемника по полям источника
5 Lexey_
 
05.04.18
14:12
(2) тут происходит то, о чем ты спрашиваешь в (0)
6 Enot_tut
 
05.04.18
14:15
(5) все спасибо)) (4)

а можно их сначала упорядочить? это реально сделать?
7 Lexey_
 
05.04.18
14:17
(6) конечно
8 Enot_tut
 
05.04.18
14:20
(7) а есть пример как это реализовать ?(очень буду благодарен)
9 Lexey_
 
05.04.18
14:27
(8) нужно использовать
КоллекцияКолонокТаблицыЗначений (ValueTableColumnCollection)
Сдвинуть (Move)

Синтаксис:
Сдвинуть(<Колонка>, <Смещение>)

Описание:
Сдвигает колонку на указанное количество позиций.
10 Enot_tut
 
05.04.18
14:33
(9) спасибо огромгое
11 Enot_tut
 
06.04.18
09:43
может кому-то пригодиться
МассивИменКолонок=Новый Массив;
    Для Каждого Колонка Из ТаблицаЗначений1.Колонки Цикл
        если Колонка.Имя = "Товар" тогда
            
        иначе
            СтрокаКолонка=Колонка.Имя;
            МассивИменКолонок.Добавить(СтрокаКолонка);
        КонецЕсли;
    КонецЦикла;
    
    Колонка=ТаблицаЗначений1.Колонки["Товар"];    
    ТаблицаЗначений1.Колонки.Сдвинуть(Колонка,-ТаблицаЗначений1.Колонки.Индекс(Колонка));          
    Для Й=0 По МассивИменКолонок.Количество()-1 Цикл
        Для ЙЙ=0 По МассивИменКолонок.Количество()-2 Цикл
            Если МассивИменКолонок[Й]<МассивИменКолонок[ЙЙ] Тогда
                Вр=МассивИменКолонок[Й];
                МассивИменКолонок[Й]=МассивИменКолонок[ЙЙ];
                МассивИменКолонок[ЙЙ]=Вр;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
12 Enot_tut
 
06.04.18
09:44
Для Й=0 По МассивИменКолонок.Количество()-1 Цикл
        Колонка=ТаблицаЗначений1.Колонки[МассивИменКолонок[Й]];
        ТаблицаЗначений1.Колонки.Сдвинуть(Колонка,-(ТаблицаЗначений1.Колонки.Индекс(Колонка)-(Й+1)));
    КонецЦикла;
13 Ц_У
 
06.04.18
09:57
Извращенец.
Создай новую ТЗ с нужными колонками в нужном порядке и заполни данными из обеих
14 Enot_tut
 
06.04.18
10:29
(13)название колонок постоянно меняются, и таблица значения создается с помощью загружаемого ексель файла, колонки постоянно разбросаны в таблице то товар может быть 3 колонкой то может быть 9