Имя: Пароль:
1C
1C 7.7
v7: Как с помощью йокселя сохранять большие таблицы
0 1Сергей
 
01.10.15
08:46
Есть отчет, результат из 15000 строк. Сохранить стандартными средствами не могу - зависает намертво
Как вариант решения рассматриваю всеми нами любимый Йоксель. Но, что-то не могу найти в демке как им сохранять штатные таблицы.

Напомните, пожалуйста
1 1Сергей
 
01.10.15
09:02
пока ждал от вас советов, решил проблему без йокселя - заданием фиксированной высоты строк
2 StillEnough
 
01.10.15
09:05
(1) "Долго шел" (с)
3 csharpprogrammer
 
01.10.15
09:25
4 csharpprogrammer
 
01.10.15
09:29
yoksel.net.ru/ComServer/Ob'ekty/TablichnyjjDokument/Save
5 1Сергей
 
01.10.15
09:44
(3) зачем мне это?
6 1Сергей
 
01.10.15
09:47
(4) чтобы сохранить ТабличныйДокумент, его нужно заполнить сначала. А у меня штатная Таблица и перелопачивать не одной строчкой придётся
7 Builder
 
01.10.15
09:52
Фиксированная высота строк не всегда помогает.
Есть еще вариант.
Сохранить в MXL.
Установить программу от 1С  - http://v8.1c.ru/metod/fileworkshop/fileworkshopru/fileworkshopru.exe
В ней открыть свой сохраненный файл mxl и пересохранить в Excel.
8 ADirks
 
01.10.15
10:05
Функция СохранитьВExcel() Экспорт
    оСервис = СоздатьОбъект("Сервис");
    Т = 0;
    оСервис.АктивныйКонтекст(Т);
    
    Если ТипЗначенияСтр(Т) <> "Таблица" Тогда
        Предупреждение("Не могу найти таблицу для сохранения", 30);
        Возврат "";
    КонецЕсли;
    
    ИмяФайла = "";
    
    Обл = Т.Область(1, 1); //тут могут быть параметры печатной формы, попробуем воспользоваться
    Расш = Обл.Расшифровка();
    Если ТипЗначенияСтр(Расш) = "СписокЗначений" Тогда
        ИмяФайла = Расш.Получить("ИмяФайла");
    КонецЕсли;
    
    ИмяКаталога = "";
    Если ФС.ВыбратьФайл(1, ИмяФайла, ИмяКаталога, "Сохранить как ...", "(*.xls)|*.xls", "xls") <> 1 Тогда
        Возврат "";
    КонецЕсли;
    ПолноеИмяФайла = СформироватьПутьКФайлу(ИмяКаталога, ИмяФайла);
    
    Попытка
        Йоксель = СоздатьОбъект("ТабличныйДокумент");
    Исключение
        Если ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll") <> 1 Тогда
            Сообщить("Не загрузился Йоксель
            |"+ОписаниеОшибки(), "!");
        КонецЕсли;
        Йоксель = СоздатьОбъект("ТабличныйДокумент");
    КонецПопытки;
    
    Если ФС.СуществуетФайл(ПолноеИмяФайла) = 1 Тогда
        Ответ = Вопрос("Файл <"+ИмяФайла+"> существует.  Заменить его?", "Да+Нет");
        Если Ответ <> "Да" Тогда
            Возврат "";
        КонецЕсли;
    КонецЕсли;
    
    Йоксель.ЗагрузитьИзТаблицы(Т);
    Йоксель.Записать(ПолноеИмяФайла, 1);
    Йоксель = "";
    
    Возврат ПолноеИмяФайла;
КонецФункции


нужны FormEx и Yoksel
9 NikVars
 
01.10.15
10:33
(6) Ваааще ничего не понятно! Куда делать твоя сообразительность?! Что такое штатные шаблоны?!
Я за сохранение в mxl и далее Утилита Работа с файлами, что в (7)
10 trdm
 
01.10.15
10:40
(7) +1 самый шустрый способ.
11 Ёпрст
 
01.10.15
10:54
(0)
вызов этого изделия повесить на кнопку в панели инструментов (можно и с хоткеем) с формулой ОткрытьФорму ("Отчет",,КаталогИБ () + "ExtForms/Быстрое сохранение mxl в xls.ert")

https://cloud.mail.ru/public/8amK/1xyHcTWqQ
12 Ёпрст
 
01.10.15
10:55
в отличие от (8), умеет сохранять открытую таблицу в РВД (или пустую), что важно при открытии любой рег отчетности.
13 Ёпрст
 
01.10.15
10:56
ну и в pdf сохраняет
14 Злопчинский
 
01.10.15
18:41
Можно без йокселя патч от ромикса поставить
http://catalog.mista.ru/public/14186/
15 Djelf
 
01.10.15
23:03
Еще вариант: http://www.1cpp.ru/forum/YaBB.pl?num=1215033727
имхо, получше ромикса работает
16 Maximysis
 
02.10.15
06:01
17 1Сергей
 
02.10.15
08:57
Спасибо всем!