Имя: Пароль:
1C
1C 7.7
v7: Йоксель и длина строки
0 extrim-style
 
27.07.15
14:40
Необходимо записать длинный текст в ячейке таблицы в xls. Делаю:
    Йоксель = СоздатьОбъект("Йоксель");  
    ТабДок = СоздатьОбъект("ТабличныйДокумент");
    ТабДок.ЗагрузитьИзТаблицы(Таб);
    Таб.Записать("тестТаблица",1);
В mxl сохраняется нормально, в xls - обрезает. ЧЯДНТ? Версия Йокселя 01.01.27.
1 Ёпрст
 
27.07.15
14:55
Спроси мелкософт, нахрена они сделали ограничение на длину строки в ячейке
2 extrim-style
 
27.07.15
15:34
Всё получилось. Нужно было использовать конвертер + formex нужен.

Процедура ВыполнитьСохранениеЙоксель(гТаблица, ИмяВременногоФайла)
    гТаблица.Записать (ИмяВременногоФайла);
    КоличествоСтрок = гТаблица.ВысотаТаблицы ();
    
    ИмяЛиста = "Лист ";
    НомерЛиста = 1;
    
    Конвертер = СоздатьОбъект ("КонвертерExcel");
    Книга = Конвертер.Создать ();
    Начало = 1;
    Пока КоличествоСтрок > 0 Цикл
        Документ = СоздатьОбъект ("ТабличныйДокумент");
        Документ.Открыть (ИмяВременногоФайла);
        Если Начало = 0 Тогда
            Документ.УдалитьСтроки (1, 65536);
            Документ.Записать (ИмяВременногоФайла);
        Иначе
            Начало = 0;
        КонецЕсли;
        
        Книга.Листы.Добавить (ИмяЛиста + НомерЛиста, Документ);
        КоличествоСтрокВДокументе = Документ.ВысотаТаблицы ();
        ЗаписаноСтрок = Мин (65536, КоличествоСтрокВДокументе);
        КоличествоСтрок = КоличествоСтрок - Мин (КоличествоСтрок, ЗаписаноСтрок); // на всякий случай
        НомерЛиста = НомерЛиста + 1;
    КонецЦикла;
    
    Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1;
    Книга.Записать (ИмяВременногоФайла);
КонецПроцедуры

код отсюда: http://yoksel.net.ru/GotovyeReshenija/1S/MXL2XLS
3 extrim-style
 
27.07.15
15:35
+(2) нет. formex не нужен для простого программного сохранения.
4 ЛюбопытнаяЯ
 
27.07.15
17:56
(2) Можно было все проще сделать:
    
    ТабДок = СоздатьОбъект("ТабличныйДокумент");
    ТабДок.ЗагрузитьИзТаблицы(Т);
    ТабДок.Записать(ИмяФайла,"xls");

Только Обязательно не Таб.Записать(), а ТабДок.Записать. Тогда ничего не обрезает
5 extrim-style
 
28.07.15
09:00
(4) да, спасибо, проглядел. Только ТабДок.Записать(ИмяФайлаПолностью,1);
6 extrim-style
 
28.07.15
09:18
Почему то при сохранении длинной строки обрезает первую и последнюю строку пополам, а при печати не выводит нижнюю строку: http://savepic.org/7530452.png
7 extrim-style
 
28.07.15
09:25
+(6) причем в печатной форме в этой ячейке установлено Переносить и высота строки Авто.
8 Масянька
 
28.07.15
09:25
(6) В Excel есть заморочки с объединенными ячейками. Попробуй в одну ячейку запихнуть, посмотри.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.