Вход | Регистрация


1С:Предприятие ::

Метки: 

v7: Открытие файлов различного типа

Я
   AliAksA
 
13.06.18 - 10:40
Привет всем !

Подскажите, пожалуйста, как штатными средствами открыть для просмотра из 7-ки Вордовские и Экселевские файлы? (есть полный путь к файлам)
Особо буду благодарен за фрагменты кода либо ссылки на почитать.
 
 
   Cool_Profi
 
1 - 13.06.18 - 10:41
командаСистемы("Start " + ИмяФайла)
   AliAksA
 
2 - 13.06.18 - 10:52
(1) спасибо, на локальном взлетело, на серваке - мимо, ещё варианты есть?
   AliAksA
 
3 - 13.06.18 - 10:53
+(0) реализую возможность передачи сообщений с прикрепленным файлом - нужно его открыть - все на удаленном подключении
   YaFedor
 
4 - 13.06.18 - 10:54
(3) А приложения для открытия файлов на сервере есть?
   Cool_Profi
 
5 - 13.06.18 - 10:56
(2) А кому ты на сервере просматривать документы собираешься? Или У тебя терминал? Так ставь нужные приложения и открывай по сети. Или копируй их туда...
   AliAksA
 
6 - 13.06.18 - 10:58
Проблема с пробелами в именах папок - надо в кавычки имя файла взять, не подскажете, как правильно это сделать? (а то туплю че-та)
   Cool_Profi
 
7 - 13.06.18 - 11:01
(6) """c:\program files\"""
   AliAksA
 
8 - 13.06.18 - 11:03
(7) а вот сюда командаСистемы("Start " + ИмяФайла) а то у меня не фига не выходит)
   AliAksA
 
9 - 13.06.18 - 11:07
ыыыыыыыыыыыыыыыыыыыыы и вордовсике не хочет открывать ентой командой (((
   Cool_Profi
 
10 - 13.06.18 - 11:27
(8) КомандаСистемы("start "" + ИмяФайла + """");

Смысл - завдвоить кавычки
 
 
   Cool_Profi
 
11 - 13.06.18 - 11:27
(9) У ворда нет такой команды...
   AliAksA
 
12 - 13.06.18 - 11:30
(11) спасибо, буду колдовать дальше - попробую вызвать ворд.exe через командную строку + имя файла
   Cool_Profi
 
13 - 13.06.18 - 11:35
(12) А может, для начала задачу опишешь?
   Остап Сулейманович
 
14 - 13.06.18 - 11:42
(2) "на локальном взлетело, на серваке - мимо"
1. Сам файл на сервер передал?
2. Путь к файлу на сервере проверил?

ЗЫ. И вообще такая ошибка ка "мимо" может родиться только в мозгу программиста. И не может в 1С.
   AliAksA
 
15 - 13.06.18 - 11:43
(13) в (3) описана - передать сообщения с прикрепленным файлом  пользователю через 1Ску и открыть его внешним приложением: текстовые, вордовские или экселевские доки
   Остап Сулейманович
 
16 - 13.06.18 - 11:43
+ (14)
3. На сервере установлено приложение для обработки файла?
4. Зарегистрировано ли приложения для обработки файла "по умолчанию"?
   AliAksA
 
17 - 13.06.18 - 11:44
(14) проблема с пробелами в именах папок, а так и на серваке взлетает
   AliAksA
 
18 - 13.06.18 - 11:45
(16) все там есть, вот только командаСистемы("Start " + ИмяФайла) с вордом и экселем не получается
   Остап Сулейманович
 
19 - 13.06.18 - 11:46
(15) Что используется для "передать сообщения с прикрепленным файлом  пользователю через 1Ску"? Оно вообще так умеет? Могу понять "по сети", "по ftp", "по мылу" тоже могу понять.
Но как можно передать "через 1Ску"? ИМХО - набор несвязных слов.
   AliAksA
 
20 - 13.06.18 - 11:53
да капец даже тут не получается: КомандаСистемы("start "" + ИмяФайла + """") + либо ошибку выдает, либо не хватает ...
Кто нить подскажет какой Симв() кавычки?
   Cool_Profi
 
21 - 13.06.18 - 11:56
(20) стр = "start "" + ИмяФайла + """";
Сообщить("" + стр);

что скажет?
   AliAksA
 
22 - 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();
            Предупреждение(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
    
КонецПроцедуры

ИмяФайла - строка, полный путь.
   1Сергей
 
24 - 13.06.18 - 11:59
(22) голову включай. ВСего одна кавычка пропущена
   AliAksA
 
25 - 13.06.18 - 12:00
(23) вай, то что доктор прописал, пасибки огромное
   AliAksA
 
26 - 13.06.18 - 12:00
(24) а вот сам попробуй, там синтаксическая или лажа выходит)
   AliAksA
 
27 - 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;
        Исключение
            Предупреждение("Не удалось открыть данный файл !");
        КонецПопытки;
    Иначе
        Предупреждение("Файлы данного типа программой не обрабатываются !");
    КонецЕсли;
    
КонецПроцедуры// ОткрытьФормула()
   linoblack
 
28 - 13.06.18 - 16:44
txt, doc, xls - вы из какого года будете? ))))))))
   HawkEye
 
29 - 13.06.18 - 16:48
(23) (27) объект создаете в попытке, а  мWord.Quit() - в исключении....
   Duke1C
 
30 - 13.06.18 - 16:51
(0) (27) Выкинь свой говнокод и не слушай никого -
ЗапуститьПриложение(Путь); где Путь и есть твоё  полное имя файла.
   Масянька
 
31 - 13.06.18 - 16:54
(30) И где ты был раньше?
Спасибо.
   Duke1C
 
32 - 13.06.18 - 16:58
(31) Да я всегда здесь:) Просто вы меня редко слушаете
   Масянька
 
33 - 13.06.18 - 16:59
(32) Я впервые услышала про ЗапуститьПриложение.
"Сегодня, чтобы тебя услышали - недостаточно похлопать по плечу." (С)
 
  Рекламное место пустует
   Duke1C
 
34 - 13.06.18 - 17:04
Читаем внематочно СП:

ЗапуститьПриложение(<?>);
Синтаксис:
ЗапуститьПриложение(<СтрокаКоманды>)
Назначение:
Выполняет запуск любого приложения. В отличие от функции 'КомандаСистемы' запуск приложения выполняется непосредственно, минуя командный интерпретатор. Процедура, кроме того, может открыть файл с помощью ассоциированного для данного вида файлов приложения. (При условии, что таковое установлено на данном компьютере).
Параметры:
<СтрокаКоманды> - командная строка запуска приложения или имя файла, чтобы открыть его с помощью ассоциированного для данного вида файлов приложения.
Последовательность поиска программы (если не задан путь):
  текущий системный каталог;
  каталог Windows;
  системный каталог Windows;
  все каталоги, указанные в переменной PATH.
   trad
 
35 - 13.06.18 - 17:17
(33) вот это поворот
   trad
 
36 - 13.06.18 - 17:18
(35) + источник знаний не только епрст
   AliAksA
 
37 - 13.06.18 - 17:29
(34) зачет, принято, проверено, взлетело, спасибо)
   Duke1C
 
38 - 13.06.18 - 17:34
(37) ну ебстественно, куды ж оно денется:)
в любых Виндах работает, за Линух не скажу



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует