|
Ошибка в Веб-интерфейсе | ☑ | ||
---|---|---|---|---|
0
Rodinyr
22.08.11
✎
10:04
|
Есть кусок кода
ВременныйФайл=ПолучитьИмяВременногоФайла("doc"); АктивныйДокумент=ПолучитьОбщийМакет("Договор"); АктивныйДокумент.Записать(ВременныйФайл); попытка КомОбъект=ПолучитьCOMОбъект(ВременныйФайл); исключение Сообщить("Ошибка Создания Шаблона Договора"); возврат неопределено; конецПопытки; В Тонком клиенте команда "ПолучитьCOMОбъект" отрабатывается отлично, но в веб-клиенте вылетает. может как-то эту проблему решить? |
|||
1
Rodinyr
22.08.11
✎
10:08
|
Помогите пожалуйста! срочно нужно.
|
|||
2
Rodinyr
22.08.11
✎
10:15
|
В синтаксис помощнике Метод должен выполняться как в тонком клиенте так и в веб-интерфейсе, но при выполнении этого метода вылетает ошибка.
|
|||
3
trdm
22.08.11
✎
10:20
|
Скорее всего ошибка в документации.
Веб-клиент должен работать в разных осях. Какой же в лине ком-объект???? |
|||
4
Rodinyr
22.08.11
✎
10:24
|
А какже мне тогда в веб-клиенте запустить Макет который создан как Active Document?
|
|||
5
Rodinyr
22.08.11
✎
10:24
|
Я на форумах натыкался только на подобный прием решения задачи
|
|||
6
vde69
22.08.11
✎
10:31
|
(4) зачем тебе это?
идеология управляемых форм - формирование формы на сервере а использование на клиенте |
|||
7
vde69
22.08.11
✎
10:33
|
по сабжу - скорее всего безопасность режет сом
ихмо сом в веб клиенте = банке вазелина для того кто это придумал |
|||
8
Rodinyr
22.08.11
✎
10:37
|
(6)Попросил клиент чтобы макет из word заполнялся данными базы. Ну я его засунул в active document от туда вызываю.
в тонком клиенте отлично работает. а вот в веб как раз как ты сказал безопасность и режет. пишет ошибка доступа. и как обойти это я не знаю. |
|||
9
Rodinyr
22.08.11
✎
10:43
|
Вот и мучаюсь с СОМ объектом
|
|||
10
Саныч
22.08.11
✎
10:50
|
Попробуй узел в местную сеть добавить.
|
|||
11
vde69
22.08.11
✎
10:54
|
(8) формируй word документ на сервере и потом уже готовый ФАЙЛ передовай клиенту
|
|||
12
Rodinyr
22.08.11
✎
11:16
|
(11)Так Функция вызывается на сервере, а передается в веб
&НаСервере Функция ПечатьДоговора(ссылка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Договор.Дата, | Договор.ДатаВозврата, | Договор.Закрыт, | Договор.Код, | Договор.Коментарий, | Договор.МаксСрок, | Договор.МаксСумма, | Договор.Менеджер, | Договор.ПоднятыйПроцент, | Договор.Процент, | Договор.Срок, | Договор.СтатусЗаявки, | Договор.СтатусПроверки, | Договор.Сумма, | Договор.Штраф, | Договор.Владелец.Наименование КАК фио, | Договор.Владелец.ПаспортСерияНомер КАК ПаспортСерияНомер, | Договор.Владелец.ПаспортДата КАК ПаспортДата, | Договор.Владелец.ПаспортКемВыдан КАК Выдан, | Договор.Владелец.АдресРегистрацииКлиента КАК Регистрация, | Договор.Владелец.АдресПроживанияКлиента КАК проживание, | Договор.Владелец.Пол как пол |ИЗ | Справочник.Договор КАК Договор |ГДЕ | Договор.Ссылка В(&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ВременныйФайл=ПолучитьИмяВременногоФайла("doc"); АктивныйДокумент=ПолучитьОбщийМакет("Договор"); АктивныйДокумент.Записать(ВременныйФайл); попытка КомОбъект=ПолучитьCOMОбъект(ВременныйФайл); исключение Сообщить("Ошибка Создания Шаблона Договора"); возврат неопределено; конецПопытки; Пока Выборка.Следующий() Цикл Паспорт=" ,паспорт "+Выборка.ПаспортСерияНомер+" выдан "+Формат(ВЫборка.ПаспортДата,"ДФ=дд.ММ.гггг")+" "+Выборка.Выдан; если Выборка.Пол=перечисления.ПолФизическогоЛица.Женский тогда Паспорт=паспорт+", зарегистрирована: "+Выборка.Регистрация+" фактически проживающая по адресу:"+Выборка.Проживание; иначе Паспорт=паспорт+", зарегистрирован: "+Выборка.Регистрация+" фактически проживающий по адресу:"+Выборка.Проживание; КонецЕсли; Док=КомОбъект.Application.Documents(1); Заменить=док.Content.Find; Заменить.ClearFormatting(); Заменить.Replacement.ClearFormatting(); Заменить.Forward = True; //Selection.Find.Wrap = wdFindContinue; Заменить.Format = False; Заменить.MatchCase = False; Заменить.MatchWholeWord = False; Заменить.MatchWildcards = False; Заменить.MatchSoundsLike = False; Заменить.MatchAllWordForms = False; Заменить.Execute("LOAN_NUMBER",,,,,,,,,Выборка.Код,00000002); Заменить.Execute("DATE_START",,,,,,,,,Формат(Выборка.Дата,"ДФ=дд.ММ.гггг"),00000002); Заменить.Execute("FIO",,,,,,,,,Выборка.фио,00000002); Заменить.Execute("SUM1",,,,,,,,,Формат(Выборка.Сумма,"ЧЦ=10; ЧДЦ=2; ЧРД=."),00000002); Заменить.Execute("SUM3",,,,,,,,,ЧислоПрописью(Выборка.Сумма, "Л = ru_RU; ДП = Истина", "рубль, рубля, рублей, м,копейка, копейки, копеек, ж, 2"),00000002 ); Заменить.Execute("PERCENT",,,,,,,,,Формат(Выборка.Процент,"ЧЦ=3"),00000002); Заменить.Execute("DURATION",,,,,,,,,Выборка.Срок,00000002); Заменить.Execute("DATEEND",,,,,,,,,Выборка.ДатаВозврата,00000002); Заменить.Execute("SUM2",,,,,,,,,Формат(Выборка.Сумма+Выборка.Сумма*Выборка.Процент*Выборка.Срок/100,"ЧЦ=10;ЧДЦ=2;ЧРД=."),00000002); Заменить.Execute("FINE",,,,,,,,,Выборка.Штраф,00000002); Заменить.Execute("RAISED",,,,,,,,,Выборка.ПоднятыйПроцент,00000002); Заменить.Execute("DEBTOR",,,,,,,,,Выборка.фио+" "+Паспорт,00000002); док.SaveAs(ВременныйФайл); КонецЦикла; КомОбъект.Application.Quit(); КомОбъект=Неопределено; Адрес=ПоместитьВоВременноеХранилище(новый ДвоичныеДанные(ВременныйФайл)); УдалитьФайлы(ВременныйФайл); Возврат Адрес; КонецФункции вот весь код |
|||
13
Rodinyr
22.08.11
✎
11:18
|
(10) какой узел? Если человек веб запускает не в локальной сети а удалленно в др городе
|
|||
14
Rodinyr
22.08.11
✎
11:31
|
в Этой теме говорились проверить настроийки и разрешить доступ: v8: Не могу получить ComОбъект
но где и какие, я так и не понял |
|||
15
vde69
22.08.11
✎
11:34
|
(12) описание огибки в студию!
а то сейчас выяснится что ошибка возникает на ПоместитьВоВременноеХранилище(новый ДвоичныеДанные(ВременныйФайл)) |
|||
16
Саныч
22.08.11
✎
11:39
|
В (8) ты утверждаешь что режет безопастность браузера. Чтобы убедится что это так, можно попробовать запустить веб-клиент в локалке предварительно добавив в браузере узел в местную сеть.
|
|||
17
Rodinyr
22.08.11
✎
11:43
|
(16)сейчас постараюсь!!
(15) вылетает и именно на попытке создать сом объект |
|||
18
Rodinyr
22.08.11
✎
11:51
|
(17) добавил узлы в доверенные, но при запуске через веб вылетает ошибка доступа
|
|||
19
Rodinyr
22.08.11
✎
11:51
|
Может попробовать полный путь к временному файлу прописать?
|
|||
20
Rodinyr
22.08.11
✎
12:01
|
Все ровно полный путь не получилось!!! и узлы добавлены в доверенные.
|
|||
21
Rodinyr
22.08.11
✎
12:09
|
Может в настройках IIS нужно дать доступ какой-нибудь узлу?
|
|||
22
Rodinyr
22.08.11
✎
12:25
|
Мыслей не у кого нет Как сделать так чтоб веб заработал коректно
|
|||
23
vde69
22.08.11
✎
12:31
|
(22)ты уверен, что данный код выполняется именно на сервере 1с? что-то у меня есть сомнения.
по тому как для серверного выполнения пофигу какой клиент... ps &НаСервере - далеко не везде работает... |
|||
24
Rodinyr
22.08.11
✎
12:44
|
ну а где же он должен выполняться?
Я при получении Временного файла вывожу сообщение с путем. так он выводит путь к папке на сервере!!! |
|||
25
Rodinyr
22.08.11
✎
12:49
|
Тем более запрос на клиенте не выполняется!!!
|
|||
26
vde69
22.08.11
✎
12:55
|
(24) дай описание ошибки (в логе должно быть)
|
|||
27
Rodinyr
22.08.11
✎
13:37
|
(26)Ошибка Создания Шаблона Договора{Справочник.Договор.Команда.ПечатьДоговора.МодульКоманды(61)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Не удается открыть файл при помощи специального имени
|
|||
28
Rodinyr
22.08.11
✎
13:50
|
ВОт такую ошибку выдает
|
|||
29
Rodinyr
22.08.11
✎
13:51
|
точнее вот такую
Ошибка Создания Шаблона Договора{Справочник.Договор.Команда.ПечатьДоговора.МодульКоманды(61)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Отказано в доступе. |
|||
30
Rodinyr
22.08.11
✎
14:11
|
Ну что? есть Мысли?
Я уже все настройки по-моему перебрал в IIS!!!! |
|||
31
vde69
22.08.11
✎
14:38
|
(30) у тебя точно сервер 1с? или файловая база?
|
|||
32
Rodinyr
22.08.11
✎
14:42
|
Прошу прощения, файловая система!!!
|
|||
33
Rodinyr
22.08.11
✎
14:42
|
Настроил веб сервер
|
|||
34
Rodinyr
22.08.11
✎
14:43
|
все что реализовал работает прекрасно, но вот тут заткнулся
|
|||
35
vde69
22.08.11
✎
14:43
|
(29) такая ошибка возникает из-за 3х причин
1. права на DCOM 2. файловые права к файлу (или блокировка файла) 3. файловые права к темповым директориям екселя (и шаблонам) но если ты под тонким запускал и все работает - то эти причины отпадают. |
|||
36
vde69
22.08.11
✎
14:43
|
(32) база 1с файловая?????
|
|||
37
Undefined
22.08.11
✎
14:46
|
Попробуй в разных браузерах запустить.
|
|||
38
Undefined
22.08.11
✎
14:47
|
Иногда то что в IE не работает в мозиле работает на ура
|
|||
39
Rodinyr
22.08.11
✎
14:49
|
во всез браузерах не работает
|
|||
40
Rodinyr
22.08.11
✎
14:52
|
Я попробовал заменить
КомОбъект=ПолучитьCOMОбъект(ВременныйФайл); на КомОбъект=АктивныйДокумент.Получить(); теперь вот что выдает: Ошибка Создания Шаблона Договора{Справочник.Договор.Команда.ПечатьДоговора.МодульКоманды(60)}: Ошибка при вызове метода контекста (Получить) |
|||
41
Rodinyr
22.08.11
✎
14:52
|
(36) да!!
|
|||
42
Rodinyr
22.08.11
✎
14:57
|
Уже все что можно разрешил!!! Даже не знаю где нужно открыть доступ
|
|||
43
vde69
22.08.11
✎
15:02
|
(41) тогда поздравляю, для файловой 1с &НаСервере = &НаКлиенте
в данном случае тебе нужно сделать 1. Для пользователя под которым запускются сенсы на веб сервере (если разрешен ананимус - то это встроеный типа user_a...) разрешить запуск DCOM (лучше не всего а только екселя), но имей в виду это ДЫРИЩА в безопасности. 2. Дать права на темповые каталоги (какие конкретно - не знаю) для пробы можешь дать на весь диск а потом урезать |
|||
44
Rodinyr
22.08.11
✎
15:08
|
Прошу Прощение за тупость, но разрешение запуска DCOM делается в настройках IIS? Или я ошибаюсь?
|
|||
45
vde69
22.08.11
✎
15:13
|
(44)нет, самое простое включить в локальную группу "Пользователи DCOM"
|
|||
46
vde69
22.08.11
✎
15:14
|
все ушел работать, думаю дальше и так все понятно
|
|||
47
Rodinyr
22.08.11
✎
16:29
|
Ну... тогда я пас... уже все включил. все разрешил.
|
|||
48
Rodinyr
22.08.11
✎
17:39
|
Теперь такая ошибка:
Ошибка Создания Шаблона Договора{Справочник.Договор.Команда.ПечатьДоговора.МодульКоманды(51)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Ошибка при выполнении приложения-сервера |
|||
49
Serginio1
22.08.11
✎
18:24
|
Посмотри параметры WORD\Центр Управления Безоапастностью\Параметры Центра Безопасности\Надежные расположения. Может это касается не только макросов
|
|||
50
Rodinyr
22.08.11
✎
20:50
|
ага! хорошо попробую!!!
|
|||
51
Rodinyr
24.08.11
✎
20:47
|
Поднимаю старую тему!!!
вевозможные разрешения открыл. Все ровно при работе ПолучитьСОМОбъект ругается. Выдает ошибку выполнения приложения-сервера. Я пошел по другому пути я стал создавать новый ком объект и в нем открывать нужный файл. Вот так: КомОбъект = Новый COMОбъект("Word.Application"); КомОбъект.Documents.Open("C:\Temp\Temp.doc"); но программа зависает на методе open, причем мертво зависает. Вчем проблема не могу догнать!!! |
|||
52
Nexux
24.08.11
✎
21:09
|
расширение работы с файлами может
|
|||
53
Rodinyr
24.08.11
✎
21:13
|
Расширение работы с файлами у меня отрабатываються на стороне клиента, аэт две функции на стороне сервера и до расширения файла еще долеко!!! функция должна открыть файл, запольнить параметры и передать файл на клиент, а она даже файл открыть по человечески не может. вот в чем проблема.
|
|||
54
Rodinyr
24.08.11
✎
21:14
|
(53) + я коментил функцию эту смотрел трудоспособность расширения файлов, там без проблем.
|
|||
55
Serginio1
24.08.11
✎
21:38
|
У меня такая проблема была (а может и сейчас есть) с Экселем на 64 битном сервере. Приходилось в 8.1 запускать клиента передавать ему mxl фыйл который конвертировал в XLS
|
|||
56
Rodinyr
24.08.11
✎
21:47
|
Тут все четко. ОС 32 битная
|
|||
57
Rodinyr
24.08.11
✎
22:43
|
что интересно, если после запуска прогаммы посмотреть во временную папку то можно увидеть что файл вроде открылся, но процесс висит!!!
|
|||
58
Rodinyr
24.08.11
✎
22:45
|
и с екселем получитьСОМобъект как то быстрее справляется чем с вордом
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |