|
Вопрос по клиент-серверу | ☑ | ||
---|---|---|---|---|
0
murzo1
18.07.12
✎
17:19
|
Если в процедуре на сервере добавить такой код:
&НаСервере Функция ПолучитьШаблон() ВремФайл = ПолучитьИмяВременногоФайла("doc"); то имя временно файла сформируется на сервере? |
|||
1
х86
18.07.12
✎
17:22
|
>>Если в процедуре на сервере
ключевое слово "в процедуре на сервере", тогда а где оно еще может отработать? |
|||
2
murzo1
18.07.12
✎
17:31
|
(1) ясно, тогда вопрос есть такой:
{Документ.ЗаказНаАвтомобиль.Форма.ФормаДокументаУправляемая.Форма(1356)}: Ошибка при вызове метода контекста (SaveAs) Документ.SaveAs(ВремФайл); по причине: Произошла исключительная ситуация (Microsoft Word): Ошибка команды Почему на сервере не сохраняет? |
|||
3
murzo1
18.07.12
✎
17:34
|
если сервер на томже компе что и клиенская часть то сохраняет на ура
|
|||
4
murzo1
18.07.12
✎
17:37
|
в файловом варианте тоже сохраняет
|
|||
5
andrewks
18.07.12
✎
17:38
|
скорее всего, нет прав у юзера, под которым запущены процессы сервера 1С
|
|||
6
х86
18.07.12
✎
17:39
|
(2)не видно всего кода, смотри где что присваевается и каким переменным/реквизитам. Отладчик тебе в помощь )
|
|||
7
murzo1
18.07.12
✎
17:41
|
(6) зачем весь код, я же описал что файловый работает, если сервер на томже кампе работает, если сервер на другом компе не работает, ну вот:
&НаКлиенте Процедура ПечатьДКП_Физ(Команда) Адрес = ПолучитьШаблон(); ВремФайл = ПолучитьИмяВременногоФайла("doc"); Данные = ПолучитьИзВременногоХранилища(Адрес); Данные.Записать(ВремФайл); УстановитьРасширениеРаботыСФайлами(); ПодключитьРасширениеРаботыСФайлами(); ЗапуститьПриложение(ВремФайл); КонецПроцедуры &НаСервере Функция ПолучитьШаблон() АктивныйДокумент = Объект.Ссылка.ПолучитьОбъект().ПолучитьМакет("ПечатьДКПФиз"); Попытка КомОбъект = АктивныйДокумент.Получить(); Исключение Сообщить("Ошибка создания шаблона договора"); КонецПопытки; ВремФайл = ПолучитьИмяВременногоФайла("doc"); Документ = КомОбъект.Application.Documents(1); Документ.Activate(); Попытка Документ.Content.Find.Execute("1cPFIO", Ложь,Истина,Ложь,,,Истина,,Ложь, Объект.Контрагент.Наименование); Исключение КонецПопытки; Документ.SaveAs(ВремФайл); Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВремФайл)); УдалитьФайлы(ВремФайл); Возврат Адрес; КонецФункции |
|||
8
murzo1
18.07.12
✎
17:43
|
может есть какой-то секрет к обращению на сервер который на др. компе, которым никто не делится ))
может чето дописать нужно или просто прав нету или я хз... опытные люди, подскажите |
|||
9
EvgeniuXP
18.07.12
✎
17:44
|
либо прав, либо ворда нет на сервере.
|
|||
10
andrewks
18.07.12
✎
17:46
|
(9) ага, ворда нет, а Activate(), Execute() отрабатывает? права, и только права. либо имя файла. выведи, что возвращает ПолучитьИмяВременногоФайла("doc"), проверь права
|
|||
11
murzo1
18.07.12
✎
17:52
|
(10) да, отрабатывают.
Права одмин говорит что все админские... у того юзера под которым запущен сервак... А какие правда и под кем там должны быть? Путь стандартный, диск C:\Users\... |
|||
12
hhhh
18.07.12
✎
17:59
|
(11) ну видимо сервак под одним пользователем запущен, а сервер1С под другим.
|
|||
13
andrewks
18.07.12
✎
18:04
|
(11) ищешь rphost'ы, смотришь юзера (или в службах, под кем стартует агент сервера 1С), смотришь путь, который возвращает ПолучитьИмяВременногоФайла("doc"), проверяешь корректность пути, права, свободное место, квоты и т.п.
|
|||
14
murzo1
18.07.12
✎
18:04
|
(12) а как определить под каким юзером пытается сохранится этот файл?
|
|||
15
andrewks
18.07.12
✎
18:09
|
попробуй записать по этому пути обычный текстарь мегабайт на несколько
|
|||
16
murzo1
19.07.12
✎
09:25
|
Попробовал сохранить на другой компьютер, локальный, но через сетевое имя, ошибка таже самая:
&НаКлиенте Процедура ПечатьДКП_Физ(Команда) СетевоеИмяКомпьютера = ИмяКомпьютера(); Путь = "\\" + СетевоеИмяКомпьютера + "\шаблоны\word.doc"; Адрес = ПолучитьШаблон(Путь); ВремФайл = ПолучитьИмяВременногоФайла("doc"); Данные = ПолучитьИзВременногоХранилища(Адрес); Данные.Записать(ВремФайл); УстановитьРасширениеРаботыСФайлами(); ПодключитьРасширениеРаботыСФайлами(); ЗапуститьПриложение(ВремФайл); КонецПроцедуры &НаСервере Функция ПолучитьШаблон() АктивныйДокумент = Объект.Ссылка.ПолучитьОбъект().ПолучитьМакет("ПечатьДКПФиз"); Попытка КомОбъект = АктивныйДокумент.Получить(); Исключение Сообщить("Ошибка создания шаблона договора"); КонецПопытки; Документ = КомОбъект.Application.Documents(1); Документ.Activate(); Попытка Документ.Content.Find.Execute("1cPFIO",Ложь,Истина,Ложь,,,Истина,,Ложь, Объект.Контрагент.Наименование); Исключение КонецПопытки; Документ.SaveAs(ВремФайл); Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВремФайл)); УдалитьФайлы(ВремФайл); Возврат Адрес; КонецФункции Здесь полюбому есть какой то секрет, по сохранению файлов на сетевой компьютер! Наверно в коде надо добавить какую то строчку и будет счастье... Неужели никто не делал такого и не знает как сделать? |
|||
17
murzo1
19.07.12
✎
10:15
|
АктивныйДокумент.Записать(ВремФайл); - такой командой файл сохраняется на сервере...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |