Имя: Пароль:
1C
 
Прочитать первую строку Табличного документа
,
0 ST_
 
20.03.24
09:51
Здравствуйте. Интересует следующее: есть Табличный документ, у которого первая строка - это тоже данные, которые надо считать. Перевожу из Табличного документа в Таблицу значений - первая строка теряется, хотя область обозначена целиком; я так понимаю, что при этих действиях первая строка считается за заголовок и не записывается в ТЗ. Вопрос, можно ли как-то настроить, чтоб первая строка тоже записывалась?
1 Волшебник
 
20.03.24
09:53
Исправьте программный код, который считает первую строку заголовочной
2 Garykom
 
гуру
20.03.24
09:59
(0) Можно добавить заголовочную строку ))
ТабДок.ВставитьОбласть
3 Garykom
 
гуру
20.03.24
09:58
(1) Он вероятно через ПостроительЗапроса читает табличный документ
4 Волшебник
 
20.03.24
09:59
(2) или так...
5 ST_
 
20.03.24
10:25
(2) Помогло, спасибо!
(3) Да, через построитель.
6 ST_
 
20.03.24
12:11
А как быть, если у меня многостраничный документ был до загрузки в табличный документ? При помощи добавления пустой области проблема решилась на первых двух листах, а дальше таблица поплыла.
7 Garykom
 
гуру
20.03.24
12:22
(6) Дык область ячеек то задавай правильно
https://1c.alexcode.ru/zagruzka-dannyh-v-1s-iz-excel/
"Загрузка табличного документа при помощи построителя отчета"
8 ST_
 
20.03.24
13:42
Я задаю так. Но эта строчка вставляется как-то непредсказуемо: то в нужное место, то нет. В итоге отрабатывает правильно в первый раз, а потом ерунда какая-то.

Для Каждого Область Из ТабДок.Области Цикл		
		ЧитаемаяОбласть = ТабДок.ПолучитьОбласть(Область.Имя);
		ЧитаемаяОбласть.ВставитьОбласть(ТабДок.Область("R1"), ТабДок.Область("R2"), ТипСмещенияТабличногоДокумента.ПоВертикали);
		ПостроительЗапроса = Новый ПостроительЗапроса;
	   	ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЧитаемаяОбласть.Область());
		ПостроительЗапроса.ЗаполнитьНастройки();
		ПостроительЗапроса.Выполнить(); 
		ТЗ = ПостроительЗапроса.Результат.Выгрузить(); 
		Страницы.Добавить(ТЗ);
КонецЦикла;
9 Волшебник
 
20.03.24
13:41
ТабДок.ВставитьОбласть(...)
10 Garykom
 
гуру
20.03.24
13:43
(8) Хе
Логически подумай
Если ты был 10-й в очереди но перед тобой 0-ым влез еще чел, то каким в очереди ты стал?
11 ST_
 
20.03.24
13:58
(9) (10), спасибо, уже не вижу ничего. Сама ерунду написала, сама удивляюсь)
12 lexushka
 
20.03.24
16:08
Я пользуюсь таким кодом

ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ПутьКФайлу,СпособЧтенияЗначенийТабличногоДокумента.Текст);

ТД = Новый ТабличныйДокумент;

Для Сч = 1 По ТабДок.ШиринаТаблицы Цикл
  НомерКолонки = Формат(Сч, "ЧГ=0");
  ОбластьЯчейки = ТД.Область("R1C" + НомерКолонки + ":R1C" + НомерКолонки);
  ОбластьЯчейки.Текст = "Колонка_" + НомерКолонки;
КонецЦикла;

ТД.Вывести(ТабДок);

Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТД.Область(1, 1, ТД.ВысотаТаблицы,ТД.ШиринаТаблицы));

Построитель.ЗаполнитьНастройки();
Построитель.Выполнить();
13 Garykom
 
гуру
20.03.24
16:25
(12) У ТС книга экселя с много листов прочитана в табдок с областями
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn