Версия для печати темы (https://pro1c.org.ua/index.php?s=561f2c9774fa825972e562c692ebe3b4&showtopic=40985)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ 1c 8.3 управляемые формы. Как обратиться к колонке?

Автор: illiona 12.10.17, 5:27

Добрый день. Есть таблица ЭтаФорма.ДанныеФайла, которая полностью программно создается и выводится на форму.
Названия столбцов всегда разное
Как мне потом обратиться к наименованию колонки, чтоб считать данные?

К строке понятно как обратиться
Для Каждого ТекСтрока из ЭтаФорма.ДанныеФайла Цикл
КонецЦикла


Автор: illiona 12.10.17, 6:36

illiona @ Сегодня, 9:27 * ,

Для Каждого ТекСтрока из ЭтаФорма.ДанныеФайла Цикл

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

Коллекцию колонок получила, как обратиться теперь к значению в строке?

Автор: Vofka 12.10.17, 7:06

Вы хотите на основании одной таблицы сделать и наполнить другую?

Автор: illiona 12.10.17, 7:18

Все равно как -то к значениям в строке через столбец надо обратиться

Автор: Vofka 12.10.17, 7:51

Значение = Строка[ИмяКолонки];

Автор: illiona 12.10.17, 7:58

У меня имена колонок всегда разные при формировании таблицы

Автор: Bernet 12.10.17, 8:26

illiona @ Сегодня, 8:58 * ,
Сохраните имена ваших колонок при формировании в какой-то массив, а дальше где нужно берите с этого массива элементы и так как Vofka написал, через имя колонки обращайтесь к значению. Пример:

// создание колонок
ТЗ = Новый ТаблицаЗначений;
МассивКолонок = Новый Массив;
Инд=1;
Пока Инд <= 5 Цикл
      ТЗ.Колонки.Добавить("Колонка"+Строка(Инд));
      МассивКолонок.Добавить("Колонка"+Строка(Инд));
КонецЦикла;

// ... тут где-то заполняем таблицу данными

//  а потом где нужно получить значение каких-то колонок
Для Каждого СтрокаТЗ Из ТЗ цикл
      Для Каждого ИмяКолонки Из МассивКолонок Цикл
             Сообщить(СтрокаТЗ[ИмяКолонки]);
      КонецЦикла;
КонецЦикла;


пардон, ошибочка в предыдущем посте
// создание колонок
ТЗ = Новый ТаблицаЗначений;
МассивКолонок = Новый Массив;
Инд=1;
Пока Инд <= 5 Цикл
      ТЗ.Колонки.Добавить("Колонка"+Строка(Инд));
      МассивКолонок.Добавить("Колонка"+Строка(Инд));
      Инд = Инд + 1;
КонецЦикла;

// ... тут где-то заполняем таблицу данными

//  а потом где нужно получить значение каких-то колонок
Для Каждого СтрокаТЗ Из ТЗ цикл
      Для Каждого ИмяКолонки Из МассивКолонок Цикл
             Сообщить(СтрокаТЗ[ИмяКолонки]);
      КонецЦикла;
КонецЦикла;

Автор: Vidocq05 12.10.17, 8:29

illiona @ Сегодня, 6:27 * ,
Задача не совсем понятна. Но возможно так

НоваяСтрока.Количество = ТекСтрока[i];


или так

НоваяСтрока.Количество = ТекСтрока[i].Значение;


Давно с управляемыми формами не работал.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua