Имя: Пароль:
1C
1С v8
выгрузка ТЗ в Excel: имена столбцов
0 igel1969
 
21.06.23
15:57
Здравствуйте
1С 8.3

Мне надо выгрузить Таблицу значений в Excel.
Разумеется, я знаю как это делается простым способом:

Построитель = Новый ПостроительОтчета();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.ТабличноеПоле1.Значение);
Построитель.ВыводитьЗаголовокОтчета = Ложь;
Построитель.Вывести(ТабДок );
ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX);

Но проблема в следующем:
У меня имена столбцов ТЗ имеют такой вид: с05062023по11062023 с12062023по18062023 и т.д. потому что в имени столбца нельзя указывать ни пробелы, ни точки.
Но у тех же самых столбцов при создании я заполняю реквизит "Заголовок", который выглядит уже по-человечески: "с 05.06.2023 по 11.06.2023" , "с 12.06.2023 по 18.06.2023" и т.д.
На форме (элемент Табличное поле) все выглядлит как надо. Если на Табличное поле нажать правой кнопкой мыши и выбрать "Вывести таблицу", то будет тоже все красиво.
А вот если выгружить в Excel вышеописанным способом, то там выводятся настоящие имена столбцов, некрасивые.

Если не городить полный перебор столбцов в Excele, то как-нибудь изящно можно исправить ситуацию?
1 Garykom
 
21.06.23
16:16
у табдок поменяй текст в ячейках

ТабличныйДокумент (SpreadsheetDocument)
Область (Area)

Вариант синтаксиса: По адресу
Синтаксис:
Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>, <ФорматСтрок>)
2 Мимохожий Однако
 
21.06.23
16:16
В таблице значений у колонок кроме свойство Имя есть Заголовок.
КолонкаТаблицыЗначений (ValueTableColumn)
Свойства:
Заголовок (Title)
Имя (Name)
ТипЗначения (ValueType)
Ширина (Width)
3 igel1969
 
21.06.23
16:24
(2) так я же пишу, что заголовок у меня заполнен, заполнен красиво, на форме все красиво, но в Excel выгружаются не заголовки, а имя колонки
4 igel1969
 
21.06.23
16:27
(1) да, так и сделаю, спасибо
5 igel1969
 
22.06.23
07:56
(1) так и сделал, вот конечный вариант:

   ТабДок = Новый ТабличныйДокумент;
   Построитель = Новый ПостроительОтчета();
   ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.ТабличноеПоле1.Значение);
   Построитель.ИсточникДанных = ИсточникДанных;
   Построитель.ВыводитьШапкуТаблицы = Истина;
   Построитель.ВыводитьЗаголовокОтчета = Ложь;
   Построитель.Вывести(ТабДок );

   КК = ЭлементыФормы.ТабличноеПоле1.Колонки.Количество() - 2;
   Для Инд = 1 По КК цикл
       ТабДок.Область(1, Инд + 3).Текст = ЭлементыФормы.ТабличноеПоле1.Колонки[Инд+1].ТекстШапки;
   КонецЦикла;
    
   ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX);
6 НафНаф
 
22.06.23
09:28
а если:

ПолеПостроителяОтчета (ReportBuilderField)
Представление (Presentation)
Использование:
Чтение и запись.
Описание:
Тип: Строка.
Представление поля.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.