1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
Функция ПолучитьТЗИзМакета(ТабДок, КолонкаИндекса = 1) Экспорт ТаблицаДанных = Новый ТаблицаЗначений; НомерКолонки = 0; Пока Истина Цикл НомерКолонки = НомерКолонки + 1; ИмяКолонки = ТабДок.Область(1, НомерКолонки).Текст; Если ПустаяСтрока(ИмяКолонки) Тогда Прервать; КонецЕсли; ТаблицаДанных.Колонки.Добавить(ИмяКолонки); КонецЦикла; СчетчикКолонок = НомерКолонки - 1; НомерСтроки = 1; ФлагПрерывания = Ложь; Пока Истина Цикл НомерСтроки = НомерСтроки + 1; Стр = ТаблицаДанных.Добавить(); Для А = 1 ПО СчетчикКолонок Цикл ТекстКолонки = ТабДок.Область(НомерСтроки, А).Текст; Если ПустаяСтрока(ТекстКолонки) Тогда Если А = КолонкаИндекса Тогда Флагпрерывания = Истина; ТаблицаДанных.Удалить(Стр); КонецЕсли; Иначе Стр[А - 1] = ТекстКолонки КонецЕсли; Если Флагпрерывания Тогда Прервать КонецЕсли; КонецЦикла; Если Флагпрерывания Тогда Прервать КонецЕсли; КонецЦикла; Возврат ТаблицаДанных КонецФункции |
Второй вариант:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Функция обМакетВТаблицуЗначений(Макет) Экспорт Перем ТЗ; ТЗ=Новый ТаблицаЗначений(); #Если Клиент Тогда //Считываем колонки Для Стр=1 По Макет.ВысотаТаблицы Цикл Если Стр>1 Тогда ТекСтр=ТЗ.Добавить(); КонецЕсли; ПустаяСтрока=истина; Для Кол=1 По Макет.ШиринаТаблицы Цикл Яч=Макет.Область(Стр, Кол); Если Яч.СодержитЗначение Тогда Зн=Яч.Значение; Иначе Зн=Яч.Текст; КонецЕсли; Если ТипЗнч(Зн)=Тип("Строка") И ПустаяСтрока(Зн) Тогда Зн=Неопределено; КонецЕсли; //Добавляем колонку Если Стр=1 Тогда ТЗ.Колонки.Добавить(Зн); Иначе ТекСтр[Кол-1]=Зн; КонецЕсли; КонецЦикла; КонецЦикла; #КонецЕсли Возврат ТЗ; КонецФункции |
1С 8.3 : Как загрузить табличный документ в таблицу значений: 1 комментарий
Очень хорошо, когда копируешь код и он сразу работает! Спасибо.
Обсуждение закрыто.