Имя: Пароль:
1C
 
Программное создание динамической таблицы значений и её заполнение
0 falselight
 
03.06.19
07:20
Задача в программном создании колонок таблицы значений и последующее её заполнение.
Данные берутся из файла текстового. Первая строка колонки таблицы значений.

/////////////////////
    ШапкаВСообщить = "";
    Для каждого ИмяКолонки Из МассивКолонок Цикл
          //"Период"
       //"РегистраторНомер"
       //"Регистратор"
       //"Организация"
       //"ВидЗапасов"
       //"Склад"
       //"КлючАналитики"
       //"Номенклатура"
       //"Характеристика"
       //"Серия"
       //"КоличествоОборот"
       //"КоличествоРасход"
       //"НомерГТД"
       //"НомерСтроки"
       //""        
       ШапкаВСообщить = ШапкаВСообщить + " | " + ИмяКолонки;
       ТЗсФайла.Колонки.Добавить(ИмяКолонки);
    КонецЦикла;
    Сообщить(ШапкаВСообщить);

/////////////////////

Затем я пытаюсь заполнять строки. Но получается что данные заполняются в хаотичном порядке не в свои столбцы.

///////////////////////////
    Для НомерСтроки = 2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл
        Строка      = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки);
        СтрокиФайла = РазложитьСтрокуВМассивПодстрок(Строка, Разделитель);
        //НоваяСтрока   = Таблица.Добавить();
        //Если МассивКолонок.Количество() <> Таблица.Колонки.Количество()-1 Тогда
        //    Продолжить;
        //КонецЕсли;
        СтрокаВСообщить = "";
        НоваяСтрока     = ТЗсФайла.Добавить();
        Для НомерКолонки = 1 по СтрокиФайла.Количество() Цикл
            ТекущееЗначение         = СтрокиФайла[НомерКолонки-1];
            //ИмяКолонки              = Таблица.Колонки[НомерКолонки-1].Имя;             
            //НоваяСтрока[ИмяКолонки] = ТекущееЗначение;            
            СтрокаВСообщить = СтрокаВСообщить  + " | " +  ТекущееЗначение;
            //
            НоваяСтрока[НомерКолонки] = ТекущееЗначение;
        КонецЦикла;           
        Сообщить(СтрокаВСообщить);  
    КонецЦикла;  

///////////////////////////

Не наведете ли на мысль, как тут сообладать с процессем. Что бы нужные данные вставали в свои колонки в строках?
1 Chameleon1980
 
03.06.19
07:51
Какая буква не правильная в "сообладать" ?
2 Скиурус
 
03.06.19
08:02
Ну на то, чтобы единичку вычесть из номера колонки при чтении тебя хватило
ТекущееЗначение         = СтрокиФайла[НомерКолонки-1];

а вот на то, что то же самое нужно сделать при записи, уже нет :(
НоваяСтрока[НомерКолонки<<-1>>] = ТекущееЗначение;
3 СтепаDS
 
03.06.19
08:10
(1) Про "процессем" тот же вопрос.
4 falselight
 
03.06.19
08:12
Решаю. При выгрузке шапка не соответствовала с порядком строк.
НомерСтроки был в конце. Сейчас переделал таблицу выгрузки.
Она пока статичная.
Жаль там нет возможность перетаскивать колонки. Пришлось пере создавать все.
5 falselight
 
03.06.19
08:20
Решено!

        СтрокаВСообщить = "";
        НоваяСтрока     = ТЗсФайла.Добавить();
        Для НомерКолонки = 0 по СтрокиФайла.Количество() - 1 Цикл
            ТекущееЗначение         = СтрокиФайла[НомерКолонки];
            СтрокаВСообщить = СтрокаВСообщить  + " | " +  ТекущееЗначение;
            //
            НоваяСтрока[ТЗсФайла.Колонки[НомерКолонки].Имя] = ТекущееЗначение;
        КонецЦикла;           
        Сообщить(СтрокаВСообщить);
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс