| 
    
        
     
     | 
    
  | 
Сохранить в формате XLS на сервере | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        ssserg    
     24.12.14 
            ✎
    09:11 
 | 
         
        Добрый день.
 
        Как известно в 8.1 нет возможности сохранить на сервере(вызов метода осуществляется через фоновое задание) табличный документ в формате XLS Можно только в MXL или в TXT. А нужно сохранять в XLS Кто то на форуме советовал запускать отдельный сеанс через COM-соединение, в котором и сохранять в XLS Я так попробовал сделать, но, по какой то причине, табличный документ по-прежнему сохраняется в формате MXL. Вызов COM-соединения на сервере производится так: // формируем табличный документ ДокументРезультат = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); // Путь к файлу ФайлВФорматеMXL = ПутьКПапкеОтчетов+ИмяОтчета; ДокументРезультат.Вывод=ИспользованиеВывода.Разрешить; СохранитьВXLS(ДокументРезультат,ФайлВФорматеMXL); Процедура СохранитьВXLS(ДокументРезультат,ФайлВФорматеMXL) V8 = Новый COMObject("V81.COMConnector"); СтрокаСоединенияИБ = "File=D:\dummy;"; Соединение = V8.Connect(СтрокаСоединенияИБ); Обработка = Соединение.Обработки.MXL2XLS.Создать(); Обработка.СконвертироватьВXLS(ДокументРезультат, ФайлВФорматеMXL); КонецПроцедуры В базе, которая находится по пути D:\dummy; (тоже 8.1) есть одна обработка MXL2XLS с процедурой в модуле объекта СконвертироватьВXLS, код которой следующий: Процедура СконвертироватьВXLS(ДокументРезультат, ФайлВФорматеMXL) Экспорт ДокументРезультат.Записать(ФайлВФорматеMXL,ТипФайлаТабличногоДокумента.xls); // Рабочий вариант КонецПроцедуры  | 
|||
| 
    1
    
        Галахад    
     гуру 
    24.12.14 
            ✎
    09:31 
 | 
         
        Наверное весь смысл делать через COM, что бы запустить на другой платформе.
 
        Т.е. D:\dummy; (должна быть 8.2 или 8.3)  | 
|||
| 
    2
    
        b_ru    
     24.12.14 
            ✎
    09:43 
 | 
         
        На сервере можно Ёксель установить? Если да, то
 
        Yoksel.exe ТвойФайл.mxl --output_file ТвойФайл.xls --output_format xls --close  | 
|||
| 
    3
    
        Biker    
     24.12.14 
            ✎
    09:56 
 | 
         
        в последней бсп есть функция сохранения без использования кома,сохраняет в xlsx     
         | 
|||
| 
    4
    
        ssserg    
     24.12.14 
            ✎
    13:52 
 | 
         
        > Наверное весь смысл делать через COM, что бы запустить на другой платформе. 
 
        Нет, смысл в том, что выполнить процедуру сохранения На клиенте, а не на сервере т.к. на клиенте доступно сохранение в xls(проверял - работает,а перестает работать при использовании COM-соединения) > Т.е. D:\dummy; (должна быть 8.2 или 8.3) Даже в таком случае не срабатывает правильно.  | 
|||
| 
    5
    
        Jaap Vduul    
     24.12.14 
            ✎
    13:57 
 | 
         
        Надо не COMConnector, а Application     
         | 
|||
| 
    6
    
        ssserg    
     24.12.14 
            ✎
    14:00 
 | 
         
        > На сервере можно Ёксель установить? Если да, то
 
        Yoksel.exe ТвойФайл.mxl --output_file ТвойФайл.xls --output_format xls --close Вариант standalone? Версия 1.1.02? когда запускаю, то ругается на параметры: "ошибка при анализе командной строки: unknown option output_file". Эта ошибка выходит даже при запуске yoksel из командной строки.  | 
|||
| 
    7
    
        ssserg    
     24.12.14 
            ✎
    14:07 
 | 
         
        > в последней бсп есть функция сохранения без использования кома,сохраняет в xlsx
 
        гляну, но боюсь, что там какая нить фигня будет, которая поддерживается последними версиями платформы.  | 
|||
| 
    8
    
        ssserg    
     24.12.14 
            ✎
    14:22 
 | 
         
        (5) 
 
        > Надо не COMConnector, а Application Выходит ошибка: "Ошибка при вызове конструктора (COMObject): Интерфейс не поддерживается V8 = Новый COMObject("V81.Application"); по причине: Интерфейс не поддерживается."  | 
|||
| 
    9
    
        Jaap Vduul    
     24.12.14 
            ✎
    14:26 
 | 
         
        (8)Прав не хватает.     
         | 
|||
| 
    10
    
        ssserg    
     24.12.14 
            ✎
    14:33 
 | 
         
        (9)
 
        Добавил "Все" в список пользователей папки, где лежит база dummy. Не помогает.  | 
|||
| 
    11
    
        Jaap Vduul    
     24.12.14 
            ✎
    14:37 
 | 
         
        (10)Не файловые права, DCOM.
 
        dcomcnfg.exe  | 
|||
| 
    12
    
        ssserg    
     24.12.14 
            ✎
    14:47 
 | 
         
        (11) нда уж, нашел dllку, но что то на добавлять пользователй я к ней не могу, хоть и под юзером с админскими правами.     
         | 
|||
| 
    13
    
        ssserg    
     24.12.14 
            ✎
    14:54 
 | 
         
        (7) (3) 
 
        сделал поиск xlsx по всей конфигурации БСП(версия 2.2.4.45) - ничего подходящего не нашел. Есть только обработка ЗагрузкаДанныхИзФайла а про выгрузку или сохранение ни слова.  | 
|||
| 
    14
    
        Jaap Vduul    
     24.12.14 
            ✎
    14:58 
 | 
         
        (12)Попробуй запустить dcomcnfg.exe "именем администратора".     
         | 
|||
| 
    15
    
        ssserg    
     24.12.14 
            ✎
    15:29 
 | 
         
        Добавил все галочки для пользователя USR1CV81 но безрезультатно
 
        https://dl.dropboxusercontent.com/u/15525241/DCOM.png  | 
|||
| 
    16
    
        ssserg    
     24.12.14 
            ✎
    15:34 
 | 
         
        (15) на всякий случай те же действия проделал и для пользователя ОС, из под которого запускаю 1C- эффекта нет. Хотя по идее этого делать не нужно.     
         | 
|||
| 
    17
    
        Jaap Vduul    
     24.12.14 
            ✎
    15:47 
 | 
         
        (15)
 
        На картинке галочки добавлены для пользователя System  | 
|||
| 
    18
    
        ssserg    
     24.12.14 
            ✎
    16:06 
 | 
         
        (17) неправильный скриншот сделал, для USR1CV81 то же самое.
 
        https://dl.dropboxusercontent.com/u/15525241/DCOM.png  | 
|||
| 
    19
    
        ssserg    
     24.12.14 
            ✎
    16:09 
 | 
         
        (2) (6) Похоже я просто какую то левую версию скачал(хотя качал с sourceforge последнюю)
 
        Надо было качать с http://yoksel.net.ru/Hotfixes файлик: http://yoksel.net.ru/files/release/yoksel_stand_alone_hotfix_2012_04_20.rar по крайней мере через командную строку он работает, сейчас попробую через 1С-ку  | 
|||
| 
    20
    
        ssserg    
     25.12.14 
            ✎
    09:06 
 | 
         
        Сделал через yoksel, который запускается через ком-объект "wScript.Shell", однако, там тоже не всё просто. Нужно запускать через cmd /C  а также внимательно проэкранировать все кавычки.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |