Имя: Пароль:
1C
 
Зависает при создании COMОбъекта на стороне сервера
0 jk3
 
07.04.11
12:42
При исполнении такого кода в модуле менеджера документа серверной базы, сеанс соединения с базой зависает.

   // dll-ка склонения
   Declension = 0;

   Попытка    
       Declension = Новый COMОбъект("Padeg.Declension");
   Исключение
       Сообщить(ОписаниеОшибки());    
       Сообщить("Функции склонения недоступны! ", СтатусСообщения.Важное);
       //Возврат Неопределено;
   КонецПопытки;

На локальной файловой базе всё проходит прекрасно.

regsvr32 Padeg.dll
на сервере сделал

Что еще надо сделать, чтобы взлетело?
1 jk3
 
07.04.11
14:24
Ап
2 jk3
 
07.04.11
16:21
Проблема не надуманна.

Хочу сделать, чтобы ФИО склонялось на сервере и передавалось уже в нужном падеже в веб-браузер клиента.

Если бы хоть какая-то ошибка выдавалась, было бы полегче.
А так вообще не понятно, Help.
3 zladenuw
 
07.04.11
16:23
Сообщить(ОписаниеОшибки());    
       Сообщить("Функции склонения недоступны! ", СтатусСообщения.Важное);
       //Возврат Неопределено;
Вот это заключи в условие что бы на клиенте написало.
Может из за этого.
4 jk3
 
07.04.11
16:51
(3) Пускай оно написало в никуда, согласен.
Но управление не возвращается из серверной процедуры.

Во внешней обработке написал:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   Попытка    
       Declension = Новый COMОбъект("Padeg.Declension");
   Исключение
   КонецПопытки;
   
   Declension = 0;

КонецПроцедуры


Эффект тот же. Зависает при запуске через Файл-Открыть.
5 Serginio1
 
07.04.11
17:46
Сервер 64 разрядный?
6 vde69
 
07.04.11
17:57
пользовате под которым запускается служба 1с добавить в группу АД завуска DCOM, и рестарт службы
7 vde69
 
07.04.11
17:58
(6)+  и путь где лежит Padeg.dll  должен быть доступен для этого пользователя
8 jk3
 
07.04.11
18:01
(5) 32-х
(6)(7) ага, завтра с утра попробую

Еще в этой теме v8: 1С 8.2 зависает при подключении dll с опцией /CLR
говорилось, что:
"Подключение с использованием COM ВК доступно только на тонком клиенте, сервер признает только Native API. COM ВК сейчас запускать нельзя."

Это правда?
9 vde69
 
07.04.11
18:03
(8) вранье!!! нормально ексель на сервере по сому работает,

просто большенство вк на 64к сервере не регистрирутся :) тоесть это проблемма регистрации а не импользования
10 jk3
 
08.04.11
09:37
(6) Посмотрел.
Агент сервера 1С:Предприятия 8.2
Вход в систему: С системной учетной записью
(галочка "Разрешить взаимодействие с рабочим столом" не стоит)

Какого пользователя добавлять в группу пользователей DCOM?
11 vde69
 
08.04.11
10:15
(10) SYSTEM

но я-бы рекомендовал завести своего пользователя и под ним все установить, разшаривать систем не гуд.

кроме того не понятно как ты ставил сервер, 1с по дефолту устанавливаент СВОЕГО пользователя
12 jk3
 
08.04.11
10:58
(11) Не я устанавливал сервер 1СПредприятия.

Т.е. сначала попробовать добавить System в группу пользователей DCOM.

Если это поможет, то переделывать старт сервиса под отдельного юзера?
13 jk3
 
08.04.11
11:41
(11) Добавили в группу пользователей DCOM учётку System.
Не помогло. Всё так же зависает при запуске.

Правда платформа на сервере не самая последняя -- 8.2.13.205

В этом дело?
14 vde69
 
08.04.11
11:45
сервер 1с перезапусти, что-бы рхосты знали что у них уже новые права
15 jk3
 
08.04.11
11:52
(14) Это же сеансы всех пользователей отвалятся.
Народу сидит много.
Только ближе к вечеру смогу.
16 vde69
 
08.04.11
11:54
(15) тогда перегрузи весь сервер :)
17 jk3
 
08.04.11
12:31
Выяснил, что при таком варианте создания COMОбъектов нужно обязательно указывать имя компьютера в конструкторе COMОбъекта.

Declension = Новый COMОбъект("Padeg.Declension", ИмяКомпьютера());

Теперь отваливается с ошибкой:
Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован

Хотя "regsvr32 Padeg.dll" на сервере делал и соответствующий класс в реестре винды есть.
18 jk3
 
08.04.11
12:44
Еще раз сделали на сервере под админом:
regsvr32 <полный_локальный_путь>\Padeg.dll

Не помогает.
19 jk3
 
08.04.11
14:48
Создали COM+ приложение для этой dll, как описал Максим Радченко здесь: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=555004  (2-ой пост сверху)

Теперь ошибка
Ошибка при вызове конструктора (COMОбъект): Отказано в доступе.
Ни под пользователем Локальная служба, ни Сетевая служба, ни даже под учёткой админа домена не работает.

Всё тот же Отказ в доступе.
20 jk3
 
08.04.11
16:33
Помогла вот эта тема: v8: COM объект на сервере

Всё сделал так же, только п.4 не делал, и так работает.

>>Обязательно нужно для папки, в которой лежит Padeg.dll и файл словаря, который эта длл использует, разрешить чтение и выполнение сетевой службе (Network Service).
Без этого будет точно такая же ошибка с отказом в доступе.

После изменения прав NTFS обязательно Завершение и Пуск COM+ приложения.

vde69, кстати, если агент сервера запущен под системной учёткой, то никаких пользователей добавлять в группу DCOM не надо.


P.S. Пока всё работает, будет весело, если в пн работать перестанет =))
21 vde69
 
08.04.11
17:40
>>>После изменения прав NTFS обязательно Завершение и Пуск COM+ приложения.

(20) пост 7 читал?

по поводу второго параметра "имя компа" - не обязательно, только права нужно правильно на DCOM+ установить
22 oleg_km
 
08.04.11
17:51
(21) OFF: DCOM+ - это что-то новенькое (из старенького). А DCOM++ нет случаем? (шутка)
23 Septera
 
08.04.11
18:08
(20) очень рад что пригодилось =)