|
Доступ к содержимому ТЧ, не зная имен колонок |
☑ |
0
igel1969
25.01.19
✎
15:14
|
Здравствуйте!
1С 8.2 УТ 10.3
Пишу внешнюю обработку. В ней есть несколько Табличных частей. У каждой ТЧ есть несколько колонок. Названия все разные. Мне нужно все это выгрузить каждую ТЧ в отдельный текстовый файл с разделителями.
Писать для каждой ТЧ
Текст.ДобавитьСтроку(СокрЛП(ТЧ1.Реквизит1) + ";" + СокрЛП(ТЧ1.Реквизит2) + СокрЛП(ТЧ1.Реквизит2) и т.д.);
считаю ниже своего программистского достоинства. Считаю что должна быть возможность написать процедуру, в которую передавать ТЧ, чтобы эта процедура выгружала в текстовый файл ТЧ любой структуры.
А свойства "Колонки" у ТЧ нет. И доступа к ячейкам по индексу тоже нет. Если только выгрузить на форму в Табличное поле и брать оттуда? Просто нет необходимости эти данные визуально отображать.
Не подскажете - можно как-то выкрутиться?
|
|
1
Mort
25.01.19
✎
15:18
|
ВнешняяОбработка.Метаданные()
|
|
2
igel1969
25.01.19
✎
15:26
|
(1) Хм, во-первых я прошу прощения, что неправильно написал - у меня не обработка, а отчет внешний.
Далее, я пытался писать
Отчет.Метаданные();
ЭтотОтчет.Метаданные();
Обработка.Метаданные();
ЭтаОбработка.Метаданные();
ИмяОтчета.Метаданные();
Все-время ругается на первое слово - нет такой переменной!
|
|
3
ДенисЧ
25.01.19
✎
15:26
|
тз = ТЧ.ВыгрузитьКолонки();
и вперёд
|
|
4
igel1969
25.01.19
✎
15:27
|
(3) Это я в хелпе легко нашел. А что дальше - как, зная имя колонки, получить содержимое?
|
|
5
igel1969
25.01.19
✎
15:28
|
(1)
ВнешняяОбработка.Метаданные()
ВнешнийОтчет.Метаданные()
тоже пробовал
|
|
6
Вафель
25.01.19
✎
15:29
|
ТЧ.Выгрузить и это уже таблица значений, а у нее есть колонки
|
|
7
igel1969
25.01.19
✎
15:29
|
(6) попробую
|
|
8
Ёпрст
гуру
25.01.19
✎
15:30
|
["тут имя колонки"]
|
|
9
igel1969
25.01.19
✎
15:50
|
(8) Да, я пошел по Вашему пути, большое спасибо!
Хотя, возможно и путь (6) сработал бы.
Прототип процедуры выглядит так:
Процедура ВыгрузитьВФайл(ТЧ)
ТЗ = ТЧ.ВыгрузитьКолонки();
Предупреждение(ТЗ.Колонки.Количество());
Для каждого Стр Из ТЧ Цикл
Для каждого Кол из ТЗ.Колонки Цикл
Сообщить(Стр[Кол.Имя]);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Просто дальше вместо Сообщить я вставлю то, что мне надо.
|
|
10
igel1969
25.01.19
✎
15:51
|
(8) в смысле - все работает в моей процедуре
|
|