|
v7: Открытие файлов различного типа | ☑ | ||
---|---|---|---|---|
0
AliAksA
13.06.18
✎
10:40
|
Привет всем !
Подскажите, пожалуйста, как штатными средствами открыть для просмотра из 7-ки Вордовские и Экселевские файлы? (есть полный путь к файлам) Особо буду благодарен за фрагменты кода либо ссылки на почитать. |
|||
1
Cool_Profi
13.06.18
✎
10:41
|
командаСистемы("Start " + ИмяФайла)
|
|||
2
AliAksA
13.06.18
✎
10:52
|
(1) спасибо, на локальном взлетело, на серваке - мимо, ещё варианты есть?
|
|||
3
AliAksA
13.06.18
✎
10:53
|
+(0) реализую возможность передачи сообщений с прикрепленным файлом - нужно его открыть - все на удаленном подключении
|
|||
4
YaFedor
13.06.18
✎
10:54
|
(3) А приложения для открытия файлов на сервере есть?
|
|||
5
Cool_Profi
13.06.18
✎
10:56
|
(2) А кому ты на сервере просматривать документы собираешься? Или У тебя терминал? Так ставь нужные приложения и открывай по сети. Или копируй их туда...
|
|||
6
AliAksA
13.06.18
✎
10:58
|
Проблема с пробелами в именах папок - надо в кавычки имя файла взять, не подскажете, как правильно это сделать? (а то туплю че-та)
|
|||
7
Cool_Profi
13.06.18
✎
11:01
|
(6) """c:\program files\"""
|
|||
8
AliAksA
13.06.18
✎
11:03
|
(7) а вот сюда командаСистемы("Start " + ИмяФайла) а то у меня не фига не выходит)
|
|||
9
AliAksA
13.06.18
✎
11:07
|
ыыыыыыыыыыыыыыыыыыыыы и вордовсике не хочет открывать ентой командой (((
|
|||
10
Cool_Profi
13.06.18
✎
11:27
|
(8) КомандаСистемы("start "" + ИмяФайла + """");
Смысл - завдвоить кавычки |
|||
11
Cool_Profi
13.06.18
✎
11:27
|
(9) У ворда нет такой команды...
|
|||
12
AliAksA
13.06.18
✎
11:30
|
(11) спасибо, буду колдовать дальше - попробую вызвать ворд.exe через командную строку + имя файла
|
|||
13
Cool_Profi
13.06.18
✎
11:35
|
(12) А может, для начала задачу опишешь?
|
|||
14
Остап Сулейманович
13.06.18
✎
11:42
|
(2) "на локальном взлетело, на серваке - мимо"
1. Сам файл на сервер передал? 2. Путь к файлу на сервере проверил? ЗЫ. И вообще такая ошибка ка "мимо" может родиться только в мозгу программиста. И не может в 1С. |
|||
15
AliAksA
13.06.18
✎
11:43
|
(13) в (3) описана - передать сообщения с прикрепленным файлом пользователю через 1Ску и открыть его внешним приложением: текстовые, вордовские или экселевские доки
|
|||
16
Остап Сулейманович
13.06.18
✎
11:43
|
+ (14)
3. На сервере установлено приложение для обработки файла? 4. Зарегистрировано ли приложения для обработки файла "по умолчанию"? |
|||
17
AliAksA
13.06.18
✎
11:44
|
(14) проблема с пробелами в именах папок, а так и на серваке взлетает
|
|||
18
AliAksA
13.06.18
✎
11:45
|
(16) все там есть, вот только командаСистемы("Start " + ИмяФайла) с вордом и экселем не получается
|
|||
19
Остап Сулейманович
13.06.18
✎
11:46
|
(15) Что используется для "передать сообщения с прикрепленным файлом пользователю через 1Ску"? Оно вообще так умеет? Могу понять "по сети", "по ftp", "по мылу" тоже могу понять.
Но как можно передать "через 1Ску"? ИМХО - набор несвязных слов. |
|||
20
AliAksA
13.06.18
✎
11:53
|
да капец даже тут не получается: КомандаСистемы("start "" + ИмяФайла + """") + либо ошибку выдает, либо не хватает ...
Кто нить подскажет какой Симв() кавычки? |
|||
21
Cool_Profi
13.06.18
✎
11:56
|
(20) стр = "start "" + ИмяФайла + """";
Сообщить("" + стр); что скажет? |
|||
22
AliAksA
13.06.18
✎
11:58
|
(21) синтаксическая ошибка в коде)))
|
|||
23
Масянька
13.06.18
✎
11:58
|
(20) Процедура ОткрытьДоговор()
// определим расширение файла - можно doc или pdf мТочка = Найти(ИмяФайла, "."); РасширениеФайла = Сред(ИмяФайла, мТочка + 1); Если (РасширениеФайла = "pdf") Тогда // открываем файл Попытка КомОбъект = СоздатьОбъект("shell.application"); КомОбъект.Open(ИмяФайла); Исключение Предупреждение(ОписаниеОшибки()); КонецПопытки; ИначеЕсли (РасширениеФайла = "doc") Тогда // открываем файл Попытка мWord = СоздатьОбъект("Word.Application"); мДок = мWord.Documents.Open(ИмяФайла); // активируем Word мWord.Visible = 1; мWord.Application.WindowState = 2; мWord.Application.WindowState = 1; Исключение мWord.Quit(); Предупреждение(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецПроцедуры ИмяФайла - строка, полный путь. |
|||
24
1Сергей
13.06.18
✎
11:59
|
(22) голову включай. ВСего одна кавычка пропущена
|
|||
25
AliAksA
13.06.18
✎
12:00
|
(23) вай, то что доктор прописал, пасибки огромное
|
|||
26
AliAksA
13.06.18
✎
12:00
|
(24) а вот сам попробуй, там синтаксическая или лажа выходит)
|
|||
27
AliAksA
13.06.18
✎
12:17
|
ВСЕМ СПАСИБО !!! Масяньке - отдельное!
вот это работает: Процедура ОткрытьФормула() ИмяФайла = СокрЛП(Сообщение.ИмяФайла); Расширение = Прав(ИмяФайла, 3); Если Расширение = "txt" Тогда Попытка КомандаСистемы("start " + ИмяФайла); Исключение Предупреждение("Не удалось открыть данный файл !"); КонецПопытки; ИначеЕсли Расширение = "pdf" Тогда Попытка КомОбъект = СоздатьОбъект("shell.application"); КомОбъект.Open(ИмяФайла); Исключение Предупреждение("Не удалось открыть данный файл !"); КонецПопытки; ИначеЕсли Расширение = "doc" Тогда Попытка мWord = СоздатьОбъект("Word.Application"); мДок = мWord.Documents.Open(ИмяФайла); мWord.Visible = 1; мWord.Application.WindowState = 2; мWord.Application.WindowState = 1; Исключение мWord.Quit(); Предупреждение("Не удалось открыть данный файл !"); КонецПопытки; ИначеЕсли Расширение = "xls" Тогда Попытка Эксель = CreateObject("Excel.Application"); Док = Эксель.Workbooks.Open(ИмяФайла); Эксель.Visible = 1; Исключение Предупреждение("Не удалось открыть данный файл !"); КонецПопытки; Иначе Предупреждение("Файлы данного типа программой не обрабатываются !"); КонецЕсли; КонецПроцедуры // ОткрытьФормула() |
|||
28
linoblack
13.06.18
✎
16:44
|
txt, doc, xls - вы из какого года будете? ))))))))
|
|||
29
HawkEye
13.06.18
✎
16:48
|
(23) (27) объект создаете в попытке, а мWord.Quit() - в исключении....
|
|||
30
Duke1C
13.06.18
✎
16:51
|
(0) (27) Выкинь свой говнокод и не слушай никого -
ЗапуститьПриложение(Путь); где Путь и есть твоё полное имя файла. |
|||
31
Масянька
13.06.18
✎
16:54
|
(30) И где ты был раньше?
Спасибо. |
|||
32
Duke1C
13.06.18
✎
16:58
|
(31) Да я всегда здесь:) Просто вы меня редко слушаете
|
|||
33
Масянька
13.06.18
✎
16:59
|
(32) Я впервые услышала про ЗапуститьПриложение.
"Сегодня, чтобы тебя услышали - недостаточно похлопать по плечу." (С) |
|||
34
Duke1C
13.06.18
✎
17:04
|
Читаем внематочно СП:
ЗапуститьПриложение(<?>); Синтаксис: ЗапуститьПриложение(<СтрокаКоманды>) Назначение: Выполняет запуск любого приложения. В отличие от функции 'КомандаСистемы' запуск приложения выполняется непосредственно, минуя командный интерпретатор. Процедура, кроме того, может открыть файл с помощью ассоциированного для данного вида файлов приложения. (При условии, что таковое установлено на данном компьютере). Параметры: <СтрокаКоманды> - командная строка запуска приложения или имя файла, чтобы открыть его с помощью ассоциированного для данного вида файлов приложения. Последовательность поиска программы (если не задан путь): текущий системный каталог; каталог Windows; системный каталог Windows; все каталоги, указанные в переменной PATH. |
|||
35
trad
13.06.18
✎
17:17
|
(33) вот это поворот
|
|||
36
trad
13.06.18
✎
17:18
|
(35) + источник знаний не только епрст
|
|||
37
AliAksA
13.06.18
✎
17:29
|
(34) зачет, принято, проверено, взлетело, спасибо)
|
|||
38
Duke1C
13.06.18
✎
17:34
|
(37) ну ебстественно, куды ж оно денется:)
в любых Виндах работает, за Линух не скажу |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |