Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Сохранение в ексель...

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

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

    л_ТипЧисло = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3));
    // Проставим везде тип значения в ячейке как Число, чтобы корректно выгружалось в Excel

    л_КоличествоКолонок = л_ТД.ШиринаТаблицы;
    Для л_СчетчикСтрок = 2 по л_ТД.ВысотаТаблицы Цикл
        Для л_СчетчикКолонок = 2 по л_КоличествоКолонок Цикл// Пропустим колонку штрихкода.

            л_Область = л_ТД.Область(л_СчетчикСтрок, л_СчетчикКолонок, л_СчетчикСтрок, л_СчетчикКолонок);
            
            Если л_Область.СодержитЗначение Тогда
                л_Область.ТипЗначения = л_ТипЧисло;
                л_Область.Формат = "ЧРД=','; ЧН=''; ЧГ=''";
            КонецЕсли;
            
        КонецЦикла;
    КонецЦикла;

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует