Имя: Пароль:
1C
1C 7.7
v7: Сохранение в ексель...
, ,
0 Cool_Profi
 
02.10.18
13:24
Что-то я запутался...
Есть примитивная табличка (таброк) - одно текстовое поле и несколько чисел.
Сохраняю в ексель программно (.Записать(Объект.ИмяФайла,ТипФайлаТабличногоДокумента.XLS)) - числа имеют тип строки.
Руками интерактивно в табдоке ставлю СодержитЗначение = истина, типЗначения = Число - выгружается всё корректно.

Программно прохожу по табдоку

    л_ТипЧисло = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3));
    // Проставим везде тип значения в ячейке как Число, чтобы корректно выгружалось в Excel
    л_КоличествоКолонок = л_ТД.ШиринаТаблицы;
    Для л_СчетчикСтрок = 2 по л_ТД.ВысотаТаблицы Цикл
        Для л_СчетчикКолонок = 2 по л_КоличествоКолонок Цикл // Пропустим колонку штрихкода.
            л_Область = л_ТД.Область(л_СчетчикСтрок, л_СчетчикКолонок, л_СчетчикСтрок, л_СчетчикКолонок);
            
            Если л_Область.СодержитЗначение Тогда
                л_Область.ТипЗначения = л_ТипЧисло;
                л_Область.Формат = "ЧРД=','; ЧН=''; ЧГ=''";
            КонецЕсли;
            
        КонецЦикла;
    КонецЦикла;

Выгружается с комментариями "Число сохранено как строка".

Что и где я не так делаю?
1 mastodont
 
02.10.18
13:31
Мож вот это лишнее л_Область.Формат = "ЧРД=','; ЧН=''; ЧГ=''"; ?
2 Cool_Profi
 
02.10.18
13:33
(1) Не, не помогает убирание
3 mastodont
 
02.10.18
13:36
а как само число записываешь?
4 Cool_Profi
 
02.10.18
13:37
(3) А что, есть много способов? Область.Значение = МояЧисла
5 Cool_Profi
 
02.10.18
13:38
Или Область.Значение= Формат(МояЧисла, МояФормата)
6 Cool_Profi
 
02.10.18
14:12
В общем разобрался. Может, кому полезно будет.

Есть функция, которая выводит произвольную ТЗ в табдок. Тупо по строкам, с заголовками из колонок ТЗ.

И там стоит (в определённый момент) ОбластьТД.СодержитЗначение = Истина; ОбластьТД.Значение = текСтрокаТЗ[ИмяКолонки];
Вот тут и надо было поставить Если ТипЗнч(текСтрокаТЗ[ИмяКолонки]) = Тип("Число") тогда ОбластьТД.ТипЗначения = Новый ОписаниеТипов("Число");

После этого всё прекрасно заработало.
7 uno-group
 
02.10.18
14:37
Разделитель проще правильно настроить.
8 Cool_Profi
 
02.10.18
14:58
(7) Разделитель чего, пааазвольте спросить?
9 Tatitutu
 
02.10.18
15:04
(8) в (0) V.7
10 Cool_Profi
 
02.10.18
15:06
(9) Inf&