Имя: Пароль:
1C
 
Не работает с Word по WEB-клиенту
,
0 lim9
 
17.12.14
15:30
Попытка
            Приложение = Новый COMОбъект("Word.Application");
        Исключение             
            Сообщить("Не удалось создать объект Microsoft Office Word!");
            Возврат Ложь;            
        КонецПопытки;        
        Приложение.Visible = 0;
        Документ = Приложение.Documents.Open(пПолноеИмяФайла,, 0);
        
        //Обработка параметров
        Поиск = Приложение.Selection.Find;
1 lim9
 
17.12.14
15:32
отладчиком иду:
На тонком клиенте переменные: 'Документ' и 'Приложение.Selection' - имеют свои значения,
а на WEB клиенте они - Неопределено
2 lim9
 
17.12.14
15:35
перед процедурой конечно: &НаСервере
3 lim9
 
17.12.14
15:50
плиз! Хелп!
4 lim9
 
17.12.14
16:04
подниму
5 КнОпка
 
17.12.14
16:09
Если ПодключитьРасширениеРаботыСФайлами() Тогда
// ОК
Иначе
// Работа с файлами в вэб-клиенте будет невозможна.
КонецЕсли;
6 lim9
 
18.12.14
10:38
Сделал даже вот так, не помогает:
#Если ВебКлиент Тогда
Если не    ПодключитьРасширениеРаботыСФайлами() Тогда
            
УстановитьРасширениеРаботыСФайлами();
            
ПодключитьРасширениеРаботыСФайлами();
            
КонецЕсли;
....
#КонецЕсли
7 vde69
 
18.12.14
10:40
эммммм.... вообще web клиент не должен иметь доступа к COM обьектам....
8 lim9
 
18.12.14
10:43
нет вы не поняли,
там где ... - там идет вызов серверной процедуры НаСервере, а в ней уже все делается.
На тонком клиенте все ОК, а тут НЕТ!
10 lim9
 
18.12.14
11:59
плиз, хелп!
11 DrZombi
 
гуру
18.12.14
12:11
(0) Используй другую нишу HTML :)
12 DrZombi
 
гуру
18.12.14
12:12
(8) Читай еще раз в (7) и думай :)
13 DrZombi
 
гуру
18.12.14
12:13
+(8) Покажи полный код, вызова "Приложение = Новый COMОбъект("Word.Application");"

с командой &НаКлиенте или &НаСервере
14 lim9
 
24.12.14
13:11
&НаКлиенте
Процедура СоздатьДоговор()
    #Если ВебКлиент Тогда
    Если не    ПодключитьРасширениеРаботыСФайлами() Тогда       
        УстановитьРасширениеРаботыСФайлами();        
        ПодключитьРасширениеРаботыСФайлами();        
    КонецЕсли;
    #КонецЕсли
    СоздатьДоговораПоАнкете(Элементы.Список.ТекущаяСтрока)
КонецПроцедуры

&НаСервере
Функция СоздатьДоговораПоАнкете(Анкета_)
    Возврат  Договора.СоздатьДоговораПоАнкете(Анкета_);  
КонецФункции

&НаСервере
Функция СоздатьДоговораПоАнкете(Анкета) Экспорт
    дог=справочники.Договоры.НайтиПоРеквизиту("Анкета",Анкета).Ссылка;
    СтруктураПараметров=ЗаполнитьПараметры(Наименование,дог.Ссылка);
    ПолноеИмяФайла=ПолучитьИмяФайла(Анкета);
    Попытка
        Приложение = Новый COMОбъект("Word.Application");
    Исключение             
        Сообщить("Не удалось создать объект Microsoft Office Word!");
        Возврат Ложь;            
    КонецПопытки;        
    Приложение.Visible = 0;
    Документ = Приложение.Documents.Open(ПолноеИмяФайла,, 0);                
    //Обработка параметров                
    Поиск = Приложение.Selection.Find;
    Приложение.Selection.Find.ClearFormatting();
    Приложение.Selection.Find.Replacement.ClearFormatting();
    Для Каждого лПараметр Из СтруктураПараметров Цикл
        Попытка
            Если ЗначениеЗаполнено(лПараметр.Значение) Тогда
                Приложение.Selection.Find.ClearFormatting();
                Приложение.Selection.Find.Replacement.ClearFormatting();
                Поиск.Execute("{"+лПараметр.Ключ+"}",,,,,,1,2,, лПараметр.Значение, 2);
            КонецЕсли;
        Исключение
            Возврат Ложь;
        КонецПопытки;
    КонецЦикла;
    Приложение.DisplayAlerts=0;
    Документ.Save();
    Документ.Close();
    Приложение.Quit();
КонецФункции
15 lim9
 
24.12.14
13:13
еще раз повторю: на Тонком клиенте - все ОК, не работает только на WEB-клиенте!
16 Escander
 
24.12.14
13:20
(15) на том-же компе?
17 lim9
 
24.12.14
13:26
(16) да
18 Escander
 
24.12.14
13:27
каталог Desktop ?
19 lim9
 
24.12.14
13:27
WEB-клиенте, имею  виду что когда работаешь с браузера - выпадает ошибка на Ворде, отладчик показвает что  строка
Документ = Приложение.Documents.Open(ПолноеИмяФайла,, 0)
не срабатывает
20 lim9
 
24.12.14
13:28
нет,
C:\www
21 vde69
 
24.12.14
13:57
база файловая?
22 lim9
 
24.12.14
13:58
(21) - да
23 vde69
 
24.12.14
13:59
тогда все понятно...
24 vde69
 
24.12.14
14:00
твой код для файловой базы тонкий клиент выполняется с правами пользователя
а веб клиент с правами пользователя под которым запущен веб сервер
25 vde69
 
24.12.14
14:01
тебе дорога в поиск искать как настраивать DCOM и файловые права для твоей конфигурации
26 lim9
 
24.12.14
14:59
(25) а если сделаю базу на SQL ? - поможет ??
27 vde69
 
24.12.14
15:26
(26) у тебя не будет работать и в тонком клиенте то-же, по тому, что будет выполнятся с правами пользователя службы 1с
28 lim9
 
24.12.14
15:54
(27) если установить нужного пользователя у службы, поможет?
29 vde69
 
24.12.14
16:00
(28) поможет если у него будут нужные права... но это дырка в безопасности...
30 lim9
 
24.12.14
16:04
да.... дела, и что тогда подскажите? DCOM ? простоя с ним совсем не знаком
31 lim9
 
24.12.14
16:18
Служба "Модуль запуска процессов DCOM-сервера" не доступная для редактирования
32 Fragster
 
гуру
24.12.14
16:27
вангую:
доступ тонким клиентом осуществляется по строке подключения вида File="\server\shara\" а не по http:\, соответственно тонкий - не тонкий, а толстый. и ворд запускается не на сервере, а на локальном компе. А на сервере МСофис вообще забыли поставить.
33 lim9
 
24.12.14
16:27
Какую службу надо пофиксить то?
34 lim9
 
24.12.14
16:30
(32) вы ошибаетесь. Офис стоит и там и там. Процедура с Вордом запускается &НаСервере, и т.е. должна сделаться на серваке
35 Fragster
 
гуру
24.12.14
16:33
(34) при использовании тонкого со строкой подключения вида File="\server\shara\" он не тонкий. и &НаСервере - это на том компе, на котором запущен "тонкий" толстый клиент. А при доступе через http:\ все по честному
36 Fragster
 
гуру
24.12.14
16:34
если по РДП зайти на сервер и там уже запустить "тонкий" с локальной папкой все работает?
37 lim9
 
24.12.14
16:43
(36) как тогда на Тонком быть с Ворд ??
38 Fragster
 
гуру
24.12.14
16:49
(37) тонкий тоже может работать по http:\ и тогда все тоже будет честно. и в случае файловой базы и нескольких пользователей - еще и быстрее многократно.