|
Сохранить в формате 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 а также внимательно проэкранировать все кавычки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |