Имя: Пароль:
1C
1C 7.7
v7: SpreadSheet.dll и много знаков после запятой
0 dk
 
09.12.15
10:33
Проблема
при сохранение в Excel числа с более 9 знаков после запятой длл меняет число на совершенно другое
Кто как решал?
про не выводить более 9 знаков понятно, но обработка универсальная
1 dk
 
09.12.15
10:35
2 trdm
 
09.12.15
10:37
У компоненты есть автор.
3 Djelf
 
09.12.15
18:47
(0) Что то не наблюдаю такого...
Какая версия йокселя? Тестовую обработку сделать можешь?
4 Pit0n_08
 
09.12.15
20:19
Так это проблема Excel - скорее всего он у Вас 2007 и выше и тип получаемой ячейки - общий. Я при заполнении файла/шаблона (это не сохранение, а отдельная обработка) назначал тип текстовый и всё было ОК.
5 dk
 
10.12.15
09:18
автор молчит пока
версия 1.1
excel 2007
можно поставить запрет на распознование чисел, но мне нужны числа
-------------

    Если ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll") = 0 тогда
        Сообщить("Альтернативный вывод в Ексел не доступен. Воспользуйтесь <Сохранить как... xls> из меню Файл.");
        СтатусВозврата(0);
        Возврат;
    Иначе
        Конвертер = СоздатьОбъект ("КонвертерExcel");
        гКнига = Конвертер.Создать ();
        //[+] ((( dk 10/02/2015
        гКнига.ПараметрыКонвертера.РазделителиДробнойЧасти = ",.";
        гКнига.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1;
        //[+] dk )))
        ВремИмя = КаталогВременныхФайлов()+"темп_"+_GetPerformanceCounter()+".mxl";
        ОбъектСервис = создатьобъект("Сервис");
        если ОбъектСервис.активныйконтекст(АктивКонт) = 0 тогда
            СтатусВозврата(0);
            Возврат;
        конецесли;
        если не(типзначениястр(АктивКонт) = "Таблица") тогда
            СтатусВозврата(0);
            Возврат;
        Иначе
                    
        конецесли;
                    
        Таб = СоздатьОбъект ("ТабличныйДокумент");
        Таб.ЗагрузитьИзТаблицы(АктивКонт);
        ИмяЛиста = "Лист1";
        гТекущийЛист = 1;
        ВыбФайл    = "";
        ИмяЛиста = СокрП (ИмяЛиста);
        гКнига.Листы.Добавить (ИмяЛиста, Таб);
        гКнига.Параметры.АктивныйЛист = гТекущийЛист;
        
        
        Путь = Строка(ФС.ТекКаталог());
        ФС.ВыбратьФайл(1,ВыбФайл,Путь,"Выбор файла для сохранения","*.xls","xls",);
    
           Если ВыбФайл <> "" Тогда
            гКнига.Записать(Путь + ВыбФайл);
            Сообщить("Сохранен файл: " + Путь + ВыбФайл);
        КонецЕсли;
    КонецЕсли;
    ФС.УдалитьФайл(ВремИмя);
    СтатусВозврата(0);
    Возврат;

Код (С)тырен откуда-то - рисуем кнопку и вешаем туда код - сохраняет активную таблицу в 1с
6 Djelf
 
11.12.15
00:15
(5) Да, что то там не так. Воспроизвел.
Судя по коду йокселя вроде должно поддерживаться 15 знаков после запятой. Но что с этими знаками случается в процессе, это большая загадка, а искать истинную причину в коде йокселя - занятие не для слабонервных, а я как как раз сейчас совсем не такой (егаис, чтоб его).
имхо: без фикса внутри йокселя не лечися.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший