18.09.15 — 15:39
Помогите, чет совсем в ступоре. База клиент-серверная.
&НаКлиенте
Процедура СоздатьПечатнуюФормуДоговора(Команда)
Макет = ПолучитьМакетСервер(); //серверная функция, записывает макет в файл и возвращает полное имя файла
Попытка
КомОбъект = ПолучитьCOMОбъект(Макет); //инициализируем COM-объект
Исключение
КомОбъект = 0;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
Падает в исключение!
Функция ПолучитьМакетСервер(КомОбъект)
Об = РеквизитФормыВЗначение(«Объект»);
Макет = Об.ПолучитьМакет(«Макет»);
ИмяФайла = ПолучитьИмяВременногоФайла(«doc»);
Макет.Записать(ИмяФайла);
Возврат ИмяФайла;
КонецФункции
Где туплю, подскажите?
1 — 18.09.15 — 15:41
Текст ошибки?
2 — 18.09.15 — 15:42
{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(1010)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221020(0x800401E4): Синтаксическая ошибка
3 — 18.09.15 — 15:44
(1) , забыл уточнить, в файлом варианте все работает!
4 — 18.09.15 — 15:45
(0) Файловые системы на клиенте и сервере — очень разные вещи. Начиная от расположения файлов и кончая правами доступа.
5 — 18.09.15 — 15:47
(4) , понимаю. Но ведь тут сделано все вроде по инструкции как http://catalog.mista.ru/public/270277/ . Но com объект на клиенте создать не может…
6 — 18.09.15 — 15:51
Windows 32 разрядный?
7 — 18.09.15 — 15:52
(6) не, 64
8 — 18.09.15 — 15:56
(5) Это к автору писульки на нимфостарте, плз. Ты сохраняешь файл по пути для сервера, а потом пытаешся читать его на клиенте. А это возможно только в файловой базе или в случае когда сервер запущен на той же машине.
9 — 18.09.15 — 15:58
(8) , так а как же тогда? читать тоже на сервере что ли?
10 — 18.09.15 — 16:03
(9) Передавать тушку файла, из которого ты создаешь комобъект, через временное хранилище.
11 — 18.09.15 — 16:03
Возвращай Двоичные Данные и записывай на клиенте в папки на которые есть разрешения в Ворде итд.
12 — 18.09.15 — 16:06
(5) Сохраняй файл в общей папке, и отдавай путь типа \serversharefail.doc
13 — 18.09.15 — 16:09
Функция ПолучитьМакетСервер(КомОбъект)
Об = РеквизитФормыВЗначение(«Объект»);
Макет = Об.ПолучитьМакет(«Макет»);
ИмяФайла = ПолучитьИмяВременногоФайла(«doc»);
СтрЗаменить(ИмяФайла, КаталогВременныхФайлов(), «\servershare»);
Макет.Записать(ИмяФайла);
Возврат ИмяФайла;
КонецФункции
14 — 18.09.15 — 16:09
Ессесно надо добавить ИмяФайла=
ИмяФайла = СтрЗаменить(ИмяФайла, КаталогВременныхФайлов(), «\servershare»);
15 — 18.09.15 — 16:10
В папку должен доступ иметь пользователь под которым запущен сервер 1С
16 — 18.09.15 — 16:11
(13) , то есть проблема в том , что на клиенте я не могу обратиться к файлу, у которого путь такой: C:UsersUSR1CV82AppDataLocalTemp ?
17 — 18.09.15 — 16:16
(11) это то есть так делать:
&НаСервере
Функция ПолучитьМакетСервер(АдресФайлаВХранилище)
Об = РеквизитФормыВЗначение(«Объект»);
Макет = Об.ПолучитьМакет(«Макет»);
ИмяФайла = ПолучитьИмяВременногоФайла(«doc»);
Макет.Записать(ИмяФайла);
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
АдресФайлаВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Возврат ИмяФайла;
КонецФункции
И потом на клиенте
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВХранилище );
ДвоичныеДанные.Записать(ПолучитьИмяВременногоФайла(«doc»));
18 — 18.09.15 — 16:23
(16) Путь к файлу, который находится на сервере. А ты или не на сервере, или, если на сервере, у тебя нет доступа к папке пользователя, под которым запущен сервер 1с.
19 — 18.09.15 — 16:27
(18) , да, доступа нет, совершенно верно. Сейчас буду делать как вы сказали. Только хотел бы еще просить взглянуть на (17), что я не так тут сделал, что опять валится в исключение, вот сам код:
Макет = ПолучитьМакетСервер(АдресФайлаВХранилище); //серверная функция, записывает макет в файл и возвращает полное имя файла
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВХранилище );
ИмяФ = ПолучитьИмяВременногоФайла(«doc»);
ДвоичныеДанные.Записать(ИмяФ);
Попытка
КомОбъект = ПолучитьCOMОбъект(ИмяФ); //инициализируем COM-объект
Исключение
КомОбъект = 0;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
20 — 18.09.15 — 16:28
В функцию добавил помещение во временное хранилище:
Функция ПолучитьМакетСервер(АдресФайлаВХранилище)
Об = РеквизитФормыВЗначение(«Объект»);
Макет = Об.ПолучитьМакет(«Макет»);
ИмяФайла = ПолучитьИмяВременногоФайла(«doc»);
Макет.Записать(ИмяФайла);
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
АдресФайлаВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Возврат ИмяФайла;
КонецФункции
21 — 18.09.15 — 16:43
(17) А разве нельзя просто
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
Возврат ДвоичныеДанные ;
22 — 18.09.15 — 16:46
(21) Может быть и так тоже работает! Прошу меня просить, код в (19)-(20) полностью рабочий!! Спасибо больше Serginio1 и ВедущийП за помощь! Воспользовался советом в (11)
Serginio1
23 — 18.09.15 — 16:52
Помогите, чет совсем в ступоре. База клиент-серверная. &НаКлиенте Где туплю, подскажите?
{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(1010)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221020(0x800401E4): Синтаксическая ошибка
, забыл уточнить, в файлом варианте все работает!
Файловые системы на клиенте и сервере — очень разные вещи. Начиная от расположения файлов и кончая правами доступа.
, понимаю. Но ведь тут сделано все вроде по инструкции как . Но com объект на клиенте создать не может…
Это к автору писульки на нимфостарте, плз. Ты сохраняешь файл по пути для сервера, а потом пытаешся читать его на клиенте. А это возможно только в файловой базе или в случае когда сервер запущен на той же машине.
, так а как же тогда? читать тоже на сервере что ли?
Передавать тушку файла, из которого ты создаешь комобъект, через временное хранилище.
Возвращай Двоичные Данные и записывай на клиенте в папки на которые есть разрешения в Ворде итд.
Сохраняй файл в общей папке, и отдавай путь типа serversharefail.doc
Ессесно надо добавить ИмяФайла= ИмяФайла = СтрЗаменить(ИмяФайла, КаталогВременныхФайлов, «servershare»);
В папку должен доступ иметь пользователь под которым запущен сервер 1С
, то есть проблема в том , что на клиенте я не могу обратиться к файлу, у которого путь такой: C:UsersUSR1CV82AppDataLocalTemp ?
это то есть так делать: И потом на клиенте ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВХранилище ); ДвоичныеДанные.Записать(ПолучитьИмяВременногоФайла(«doc»));
Путь к файлу, который находится на сервере. А ты или не на сервере, или, если на сервере, у тебя нет доступа к папке пользователя, под которым запущен сервер 1с.
, да, доступа нет, совершенно верно. Сейчас буду делать как вы сказали. Только хотел бы еще просить взглянуть на , что я не так тут сделал, что опять валится в исключение, вот сам код:
В функцию добавил помещение во временное хранилище:
Может быть и так тоже работает! Прошу меня просить, код в — полностью рабочий!! Спасибо больше Serginio1 и ВедущийП за помощь! Воспользовался советом в
Тэги:
Комментарии доступны только авторизированным пользователям
Доброго времени суток! Уважаемые форумчане
.
Беда, просто беда. Записываю скрип и потом пытаюсь его запустить встроив в макрос на VBA. При запуске в локальной сети всё работает. Но при удаленном подключении ч/з Инет…
. Не определяется активное окно САП. выводится сообщение «Run-time error ‘-2147221020 (800401e4) Automation error invalid syntax».
В этом сегменте кода.
| Visual Basic | ||
|
Отдельно записанный скрипт запускается.
Собственно вопрос. Как запустить его из макроса в Excel, в случае запуска удаленно, через интернет?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Ошибка получения объекта COM
Модератор: Дмитрий Юхтимовский
Ошибка получения объекта COM
При запуске тестов TPC-1C и G1C появляется следующая ошибка.
{ОбщийМодуль.Глобальный(51)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
по причине:
Ошибка получения объекта COM: COM-объекты поддерживается только в операционных системах Windows
Сервер 1С — линукс, сервер баз аналогично, клиент запущен на сервере терминалов.
Подскажите, пожалуйста, в чем проблема.
- selfin
- Сообщений: 1
- Зарегистрирован: 21 мар 2014, 08:11
Re: Ошибка получения объекта COM
fwhr » 22 мар 2014, 15:20
с COM ушла ошибка, а с этой можно как-то побороться, или до следующей обновы ждать?
- Код: выделить все
{Обработка.TCP_1C_GILV.Форма.Форма(458)}: Значение не является значением объектного типа (ПроцессорНаименование)
ПроцессорНаименование = ФизическиеПараметры.ПроцессорНаименование;
- fwhr
- Сообщений: 2
- Зарегистрирован: 22 мар 2014, 13:33
Re: Ошибка получения объекта COM
ssavel » 24 мар 2014, 17:21
fwhr писал(а):с COM ушла ошибка, а с этой можно как-то побороться, или до следующей обновы ждать?
- Код: выделить все
{Обработка.TCP_1C_GILV.Форма.Форма(458)}: Значение не является значением объектного типа (ПроцессорНаименование)
ПроцессорНаименование = ФизическиеПараметры.ПроцессорНаименование;
Прошу загрузить кандидат на новую версию теста по ссылке
ftp://isinka.gilev.ru/GILV_TPC_G1C.dt
(пользователь g1c, пароль g1c)
и сообщить, сохраняется ли ошибка.
- ssavel
- Сообщений: 7
- Зарегистрирован: 21 мар 2014, 15:30
Re: Ошибка получения объекта COM
fwhr » 24 мар 2014, 17:54
Загрузил, версия в Справка — О программе отображается как 2.0.2.7
Стартует без ошибок. Оба теста выполняются. Спасибо.
ЗЫ: По тесту рекомендуемое кол-во пользователей: 231. «Мои» 30-50 юзеров могут быть спокойны? ![]()
- fwhr
- Сообщений: 2
- Зарегистрирован: 22 мар 2014, 13:33
Вернуться в Нагрузочное тестирование
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1