Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

двухмерный массив в таблицу значений

двухмерный массив в таблицу значений
Я
   Voblhned
 
12.03.20 - 15:17
Добрый день,

Столкнулся с такой ситуацией, загружаю данные в Массив[4][31] потом из массива хочу все собрать в таблицу значений. А таблицу значений выгрузить в Табличное поле. Вроде задача не сложная.

ТаблицаЗначенийИзЭксель = Новый ТаблицаЗначений;
    // Индекс = 1;
    Для Счет = 0 по Данные.ВГраница() Цикл
            ТаблицаЗначенийИзЭксель.Колонки.Добавить("Колонка"+Данные[Счет][0], ,"Колонка"+Данные[Счет][0]);
        Для Индекс = 1 По Данные[0].Количество() Цикл // было Данные[0].Количество()-1
        
        ТаблицаЗначенийИзЭксель.Добавить();
        ТаблицаЗначенийИзЭксель.ЗагрузитьКолонку(Данные[Счет],"Колонка"+Данные[Счет][0]);
    КонецЦикла;
    
    КонецЦикла;

В конце получаю ТЗ в 132 строки, хотя заполнены всего 4 строки. Понятно дело, что я перемножил Строки с столбцами. Но я уже опух и не понимаю как правильно заполнить, с случайно генерацией названия столбцом например, потому что прописывать вручную 31 столбец это дикость.
   Кирпич
 
1 - 12.03.20 - 15:37
   080808Ник
 
2 - 12.03.20 - 15:52
(0) те просто нужно прогуляться, поспать пару часиков встать и выбросить этот код) зачем ты выгружаешь тз в двухмерный массив что бы загрузить его обратно?
   Deon
 
3 - 12.03.20 - 16:12
(0) Вынеси цикл создания строк из цикла создания и заполнения колонок. Сначала создай строки, потом колонки.
   Voblhned
 
4 - 12.03.20 - 19:29
(2) У меня массив загруженный из excel надо его в ТЗ и табличную часть документа.
(3) тогда придется что-то придумать вот с этим  ТаблицаЗначенийИзЭксель.ЗагрузитьКолонку(Данные[Счет],"Колонка"+Данные[Счет][0]); иначе не будет рабоать загрузка столбцов
   Voblhned
 
5 - 12.03.20 - 20:35
(3) Твою ж... спасибо! Идеально отработал код:

    ТаблицаЗначений = Новый ТаблицаЗначений;
        
    Для Индекс = 1 По Данные[0].Количество() Цикл
        ТаблицаЗначений.Добавить();
    КонецЦикла;
    
    Для Счет = 0 по Данные.ВГраница() Цикл
        ТаблицаЗначений.Колонки.Добавить("Колонка"+Данные[Счет][0], ,"Колонка"+Данные[Счет][0]);
        ТаблицаЗначений.ЗагрузитьКолонку(Данные[Счет],"Колонка"+Данные[Счет][0]);
    КонецЦикла;
Получается вначале перебрал строки и создал их в ТаблицеЗначений, потом Загружал колонку и в нее загружал данные.
   catena
 
6 - 13.03.20 - 06:11
(5)И где-то заплакал автор СП
   Бизон
 
7 - 13.03.20 - 06:46
(5) у СП нет автора, СП бессвязный поток сознания
   catena
 
8 - 13.03.20 - 06:49
(7)Ну это же чье-то сознание.

Список тем форума
Рекламное место пустует  Рекламное место пустует
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.