|
Интерфейс не поддерживается | ☑ | ||
---|---|---|---|---|
0
fantomask
22.05.12
✎
08:20
|
Добрый день!
Есть клиент серверная база 1С 8.2 при загрузке эксель файла, на моменте создания соm объекта выходит ошибка "no such interface supported" или по русски интерфейс не поддерживается. Док = новый COMОбъект("Excel.Application"); Сообщить("Создан объект"); Док.Workbooks.Open(файл); Сообщить("Файл открыт"); Причем в файловом варианте все работает! версия платформы 8.2.15.294 Поискал на форуме, но ответа так и не нашел. |
|||
1
andrewks
22.05.12
✎
08:22
|
эксель на сервере установлен? права на ком-объекты есть?
|
|||
2
fantomask
22.05.12
✎
08:31
|
(1) ексель установлен
а как проверить права на ком объекты? странно ведь в файловом варианте на сервере то работает... |
|||
3
Klesk
22.05.12
✎
08:32
|
проверь права пользователя от которого сервер 1с стартует
|
|||
4
shuhard
22.05.12
✎
08:33
|
(2)[странно ведь в файловом варианте на сервере то работает..]
странно, что ты не нашёл ответа на этот вопрос на форуме |
|||
5
andrewks
22.05.12
✎
08:38
|
сервер 1с х64?
|
|||
6
fantomask
22.05.12
✎
08:40
|
(5) да
|
|||
7
andrewks
22.05.12
✎
08:42
|
а эксел х32
|
|||
8
fantomask
22.05.12
✎
08:43
|
(7) да
|
|||
9
andrewks
22.05.12
✎
08:45
|
(8) это был не вопрос
|
|||
10
fantomask
22.05.12
✎
08:46
|
(9) так что можно сделать с этим?
|
|||
11
MSII
22.05.12
✎
08:49
|
А зачем ком на сервере создавать? Читать/писать в эксельный файл чисто клиентская задача.
|
|||
12
Ranger_83
22.05.12
✎
08:49
|
(0)создать COMОбъект("Excel.Application") на клиенте?
|
|||
13
Ranger_83
22.05.12
✎
08:49
|
(11):)
|
|||
14
fantomask
22.05.12
✎
08:50
|
(12) на &сервере
|
|||
15
Ranger_83
22.05.12
✎
08:52
|
(14)это был не вопрос
|
|||
16
andrewks
22.05.12
✎
08:54
|
(10) где-то в инете валялась инструкция, как сделать х64 стаб для х32 объекта. лично не пробовал, но вроде говорят, что работает
|
|||
17
fantomask
22.05.12
✎
09:00
|
Дал права на USR1CV82 теперь ругается на строке Док.Workbooks.Open(файл); на путь файла
|
|||
18
andrewks
22.05.12
✎
09:00
|
кстати, и на мисте есть: Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С
|
|||
19
Пеппи
22.05.12
✎
09:01
|
(17) какой путь у файла?
|
|||
20
fantomask
22.05.12
✎
09:02
|
на рабочем столе. Вызываю диалог выбора файла
|
|||
21
Пеппи
22.05.12
✎
09:04
|
(20) извини, но файлу не место быть на конкретном рабочем столе. )
|
|||
22
fantomask
22.05.12
✎
09:05
|
(21) я вызываю диалог выбора файла, пользователь сам выбирает путь к файлу
|
|||
23
andrewks
22.05.12
✎
09:07
|
(22) шо, прямо на сервере?
|
|||
24
andrewks
22.05.12
✎
09:10
|
(16) по-ходу, тут я загнался, это не ком, а оле
|
|||
25
fantomask
22.05.12
✎
09:12
|
(23),(21) Вот полный код
&НаКлиенте Процедура ЗагрузитьИзФайла(Команда) Режим = РежимДиалогаВыбораФайла.Открытие; Длг = новый ДиалогВыбораФайла(Режим); Фильтр = "Файл excell (*.xls)|*.xls"; ДЛГ.Фильтр = Фильтр; ДЛГ.Выбрать(); Файлик = ДЛГ.ПолноеИмяФайла; Если ЗначениеЗаполнено(файлик) Тогда ЗагрузитьДанныеИзФайла(Файлик); КонецЕсли; КонецПроцедуры &НаСервере Процедура ЗагрузитьДанныеИзФайла(Файл) СчСтроки = 2; ТекНомер=1; Док = новый COMОбъект("excel.Application"); Сообщить("Создан объект"); Док.Workbooks.Open(файл); Сообщить("Файл открыт"); Пока ТекНомер=1 ЦИкл Если Док.Sheets(1).Cells(счСтроки,1).Value = Неопределено Тогда Прервать; КонецЕсли; |
|||
26
andrewks
22.05.12
✎
09:14
|
(25) прав нет на файл у USR1CV82
|
|||
27
fantomask
22.05.12
✎
09:15
|
Вообще есть мысль что путь к файлу между клиентом и сервером передавать нельзя или нужно как то иначе это дело реализовать
|
|||
28
shuhard
22.05.12
✎
09:16
|
(27) т.е. файл на рабочем столе юзера - феерично
|
|||
29
andrewks
22.05.12
✎
09:16
|
(25) и вообще, сама идея плоха
|
|||
30
ДенисЧ
22.05.12
✎
09:17
|
мда....
Файл лежит на компе у пользователя... Путь передаётся на другой комп... И странно, почему это он не открывается... |
|||
31
fantomask
22.05.12
✎
09:17
|
(26) в таком случае возникает трудности. USR1CV82 пользователь локальной машины и у него нет админских прав на домен
(29) а как можно сделать лучше? |
|||
32
Ranger_83
22.05.12
✎
09:18
|
(31)на клиенте открывай
|
|||
33
Wobland
22.05.12
✎
09:18
|
(25) немного не в тему. что случится, если юзер откажется от выбора файла?
|
|||
34
fantomask
22.05.12
✎
09:20
|
(33) ничего
(32) А на клиенте будет работать Док.Workbooks.Open(файл);? |
|||
35
el-gamberro
22.05.12
✎
09:21
|
феерично просто
|
|||
36
el-gamberro
22.05.12
✎
09:21
|
(34) будет конечно
|
|||
37
el-gamberro
22.05.12
✎
09:22
|
Когда это будет переносится на промышленную базу ТС будут ждать новые сюпризы
|
|||
38
fantomask
22.05.12
✎
09:24
|
(37) какие сюрпризы?
|
|||
39
Ranger_83
22.05.12
✎
09:25
|
(38)Для чего файл прогонять через сервер?Количество вызовов сервера лучше минимизировать
|
|||
40
el-gamberro
22.05.12
✎
09:25
|
||||
41
Ranger_83
22.05.12
✎
09:28
|
Еще добавлю,что если не нужные данные формы,то лучше использовать внеконтекстный(&НаСервереБезКонтекста)серверный вызов
|
|||
42
fantomask
22.05.12
✎
09:38
|
блин, не получается. Я на сервере создаю ком объект, потом его передаю на клиент, чтобы открыл файл и начал его обрабатывать.
Вот на моменте передачи ком объекта из сервера на клиент вылетает ошибка |
|||
43
fantomask
22.05.12
✎
09:49
|
оказывается ком объекты можно создавать на клиенте. всё сделал, работает! Всем спасибо за участие и помошь!
|
|||
44
Ranger_83
22.05.12
✎
09:53
|
(43)Тебе об ентом еще с (11) еще намекали
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |