Добрый день. Есть таблица ЭтаФорма.ДанныеФайла, которая полностью программно создается и выводится на форму.
Названия столбцов всегда разное
Как мне потом обратиться к наименованию колонки, чтоб считать данные?
К строке понятно как обратиться
Для Каждого ТекСтрока из ЭтаФорма.ДанныеФайла Цикл
КонецЦикла
Для Каждого ТекСтрока из ЭтаФорма.ДанныеФайла Цикл
Таблица = ЭтаФорма.ДанныеФайла.Выгрузить().Колонки;
i=1;
Пока i < Таблица.Количество() Цикл
НоваяСтрока = ДокПриход.Товары.Добавить();
НазваниеКолонки = Таблица[i].Имя;
Товар = Справочники.Номенклатура.НайтиПоНаименованию(НазваниеКолонки,Истина);
НоваяСтрока.Номенклатура = Товар.Ссылка;
//НоваяСтрока.Количество = ТекСтрока. ; // как обратиться к значению в строке
i = i+1;
КонецЦикла;
КонецЦикла
Вы хотите на основании одной таблицы сделать и наполнить другую?
Все равно как -то к значениям в строке через столбец надо обратиться
Значение = Строка[ИмяКолонки];
У меня имена колонок всегда разные при формировании таблицы
illiona @ Сегодня, 8:58
,
Сохраните имена ваших колонок при формировании в какой-то массив, а дальше где нужно берите с этого массива элементы и так как Vofka написал, через имя колонки обращайтесь к значению. Пример:
// создание колонок
ТЗ = Новый ТаблицаЗначений;
МассивКолонок = Новый Массив;
Инд=1;
Пока Инд <= 5 Цикл
ТЗ.Колонки.Добавить("Колонка"+Строка(Инд));
МассивКолонок.Добавить("Колонка"+Строка(Инд));
КонецЦикла;
// ... тут где-то заполняем таблицу данными
// а потом где нужно получить значение каких-то колонок
Для Каждого СтрокаТЗ Из ТЗ цикл
Для Каждого ИмяКолонки Из МассивКолонок Цикл
Сообщить(СтрокаТЗ[ИмяКолонки]);
КонецЦикла;
КонецЦикла;
// создание колонок
ТЗ = Новый ТаблицаЗначений;
МассивКолонок = Новый Массив;
Инд=1;
Пока Инд <= 5 Цикл
ТЗ.Колонки.Добавить("Колонка"+Строка(Инд));
МассивКолонок.Добавить("Колонка"+Строка(Инд));
Инд = Инд + 1;
КонецЦикла;
// ... тут где-то заполняем таблицу данными
// а потом где нужно получить значение каких-то колонок
Для Каждого СтрокаТЗ Из ТЗ цикл
Для Каждого ИмяКолонки Из МассивКолонок Цикл
Сообщить(СтрокаТЗ[ИмяКолонки]);
КонецЦикла;
КонецЦикла;
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