Открыть файл из 1С программно (word, excel, pdf и т.д.)
С помощью данного способа можно открывать любые файлы на компьютере из 1С. Открываться файлы будут с помощью программ/приложений выбранных по умолчанию, для запуска данного типа файла. Например .xls файлы будут запускаться с помощью Excel, .doc — с помощью Word, .pptx — с помощью Power point. Word, excel, power point также должны быть установлены на компьютере.
Пример программного кода:
&НаКлиенте Процедура ОткрытьФайл(Команда) ЗапуститьПриложение("G:Руслан и Людмила.xlsx"); КонецПроцедуры
Файл из данного примера запустится в excel.
Также читайте:
- Программное чтение, редактирование word;
- Программное чтение, редактирование excel;
Связанные статьи
GafarovIS 24 / 23 / 0 Регистрация: 10.10.2014 Сообщений: 849 |
||||||
1 |
||||||
13.12.2017, 14:56. Показов 1680. Ответов 11 Метки нет (Все метки)
Здравствуйте!
Вложения
0 |
Capi Модератор 5124 / 2531 / 628 Регистрация: 12.06.2016 Сообщений: 6,753 |
||||
13.12.2017, 15:04 |
2 |
|||
1 |
24 / 23 / 0 Регистрация: 10.10.2014 Сообщений: 849 |
|
13.12.2017, 15:09 [ТС] |
3 |
R = Shell «WINWORD.EXE » & Файл не знаю почему, но эта строка у меня выходит как ошибка
0 |
mobile 26777 / 14456 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
13.12.2017, 15:10 |
4 |
|||
Сообщение было отмечено GafarovIS как решение Решение
1 |
GafarovIS 24 / 23 / 0 Регистрация: 10.10.2014 Сообщений: 849 |
||||
13.12.2017, 15:12 [ТС] |
5 |
|||
так не выдаёт ошибку, но пишет, что нет файла.
0 |
Модератор 5124 / 2531 / 628 Регистрация: 12.06.2016 Сообщений: 6,753 |
|
13.12.2017, 15:12 |
6 |
не знаю почему, но эта строка у меня выходит как ошибка Что значит «как ошибка»?
1 |
24 / 23 / 0 Регистрация: 10.10.2014 Сообщений: 849 |
|
13.12.2017, 15:15 [ТС] |
7 |
Set oDoc = oWApp.Documents.Open(Файл) * * * ‘Открываем найденный документ на этой строке выдаёт ошибку 424 Object Required
0 |
Capi Модератор 5124 / 2531 / 628 Регистрация: 12.06.2016 Сообщений: 6,753 |
||||
13.12.2017, 15:18 |
8 |
|||
пишет, что нет файла. Посмотрите, как называется у Вас файл Ворда (не документа), и укажите правильное имя.
0 |
Eugene-LS 9728 / 4908 / 1195 Регистрация: 05.10.2016 Сообщений: 13,817 Записей в блоге: 1 |
||||
13.12.2017, 15:20 |
9 |
|||
на этой строке выдаёт ошибку 424 Object Required Там одна буковка лишняя
2 |
24 / 23 / 0 Регистрация: 10.10.2014 Сообщений: 849 |
|
13.12.2017, 15:28 [ТС] |
10 |
Shell «WINWORD.EXE » & CurrentProject.Path & «Шаблоны» & Файл эта строка создаёт новый документ Добавлено через 48 секунд Добавлено через 3 минуты
Set oDoc = oApp.Documents.Open(Файл) * * * ‘Открываем найденный документ только одно но… файл открывает для изменения шаблона, а не для создания документа на его основек
0 |
Модератор 5124 / 2531 / 628 Регистрация: 12.06.2016 Сообщений: 6,753 |
|
13.12.2017, 15:29 |
11 |
эта строка создаёт новый документ Не должна бы…
1 |
Eugene-LS 9728 / 4908 / 1195 Регистрация: 05.10.2016 Сообщений: 13,817 Записей в блоге: 1 |
||||
13.12.2017, 15:52 |
12 |
|||
Сообщение было отмечено GafarovIS как решение Решение
файл открывает для изменения шаблона, а не для создания документа на его основек Согласен!
2 |
Если есть необходимость обратиться к данным, хранящимся в текстовом файле приложения Word, или наоборот, передать данные из Excel в такой файл, то возникнет необходимость запуска приложения, в формате которого сохранен файл. Ниже приведен программный код макроса VBA для Microsoft Excel, запускающий приложение Word.
Если для передачи данных из Excel в Word необходим новый документ, можно воспользоваться примером кода, приведенного ниже. Макрос проверяет запущен ли Word и если он запущен, то добавляет новый документ, если же не запущен, то сначала запускает Word, а затем добавляет новый документ.
Sub Zapusk_Word_iz_Excel_01() Dim objWrdApp As Object Dim objWrdDoc As Object On Error Resume Next Set objWrdApp = GetObject(, "Word.Application") If objWrdApp Is Nothing Then Set objWrdApp = CreateObject("Word.Application") Set objWrdDoc = objWrdApp.Documents.Add objWrdApp.Visible = True End If Set objWrdDoc = objWrdApp.Documents.Add Set objWrdDoc = Nothing Set objWrdApp = Nothing End Sub
Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса).
Макрос, запускающий Word из Excel и открывающий существующий документ
Если для передачи данных из Word в Excel, необходимо открыть файл с заданным именем, то можно использовать аналогичный код, в котором вместо добавления нового документа открывается документ существующий:
Sub Zapusk_Word_iz_Excel_02() Dim objWrdApp As Object Dim objWrdDoc As Object On Error Resume Next Set objWrdApp = GetObject(, "Word.Application") If objWrdApp Is Nothing Then Set objWrdApp = CreateObject("Word.Application") Set objWrdDoc = objWrdApp.Documents.Open("C:Doc1.doc") objWrdApp.Visible = True End If Set objWrdDoc = objWrdApp.Documents.Open("C:Doc1.doc") Set objWrdDoc = Nothing Set objWrdApp = Nothing End Sub
При копировании этого кода на свой компьютер, не забудьте изменить путь к файлу и его имя. Запуск приложения можно сделать невидимым, если в коде изменить True на False.
Макрос для передачи данных из Excel в Word
Ниже приведен программный код макроса, копирующий в активной рабочей книге Excel диапазон с данными A1:E2 и вставляющий его в открытый документ Word. После передачи данных из Excel в Word производится закрытие документа с сохранением изменений и выход из приложения.
Sub Peredacha_Dannyh_iz_Excel_v_Word() Dim objWrdApp As Object Dim objWrdDoc As Object On Error Resume Next Set objWrdApp = GetObject(, "Word.Application") If objWrdApp Is Nothing Then Set objWrdApp = CreateObject("Word.Application") Set objWrdDoc = objWrdApp.Documents.Open("C:Doc1.doc") objWrdApp.Visible = False End If Set objWrdDoc = objWrdApp.Documents.Open("C:Doc1.doc") Range("A1:E2").Copy objWrdDoc.Range(0).Paste objWrdDoc.Close True 'True - с сохранением, False - без сохранения objWrdApp.Quit Set objWrdDoc = Nothing Set objWrdApp = Nothing End Sub
Другие материалы по теме:
How to force execute/start of Word Automation Services programmatically?
I need to start/execute once submit a conversion process.
string siteUrl = "http://localhost";
string wordAutomationServiceName = "Word Automation Services";
using (SPSite spSite = new SPSite(siteUrl))
{
ConversionJob job = new ConversionJob(wordAutomationServiceName);
job.UserToken = spSite.UserToken;
job.Settings.UpdateFields = true;
job.Settings.OutputFormat = SaveFormat.PDF;
job.AddFile(siteUrl + "/Shared%20Documents/Test.docx", siteUrl + "/Shared%20Documents/Test.pdf");
job.Start();
}
asked May 2, 2011 at 18:21
Ahmed AtiaAhmed Atia
17.8k25 gold badges91 silver badges133 bronze badges
Yes, you can force the jobs to start immediately from code as well as from the Central Admin UI. See my solution (built on top of the RunNow method of the SPJobDefinition class) here.
You should start the Word Automation Services Timer Job.
For eaxmple, using PowerShell:
$watj = Get-SPTimerJob "Word Automation Service Application"
$watj.RunNow()
or even shorter:
Start-SPTimerJob "Word Automation Services"
answered Aug 30, 2011 at 13:27
Are you asking if there is a way to force the job to execute immediately, rather than waiting for the time interval set in the Word Automations Services admin settings?
Currently, in Word Automation Services for SP 2010, there is no way to do this. All I can think of is to change the time interval to the minimum of 1 minute (as opposed to the default of 15 minutes).
answered May 14, 2011 at 17:18
Запуск и управление приложениями семейства MS Office
Иногда требуется управлять другими приложениями из VBA Excel. Начнем с
приложений семейства Microsoft Office. Например, на основе произведенных
расчетов в Excel надо сформировать текстовый документ в Word-е. Для
начала в нашем проекте надо подключить библиотеку с объектами MS Word:
Tools=>References подключаем последнюю версию библиотеки Microsoft Word Object Library
Пример кода для запуска Word-а из VBA
Dim w As Word.Application
Set w = New Word.Application
w.Visible = True
w.Activate
Вот и все, мы запустили приложение Word.
Аналогичным способом можно запустить любое другое приложение из
семейства Microsoft Office: Access, Outlook, PowerPoint. Можно получить к
любому приложению, которое мы видим списке библиотек.
Для работы с внешним приложением необходимо ознакомиться с объектной моделью,
изучить свойства и методы объектов.
Кроме запуска внешнего приложения, мы имеем полный доступ к объектам
данного приложения. Можно писать макросы, которые будут управлять
объектами Word в данном случае.
Запуск внешнего приложения с помощью скрипта WScript.Shell.
Все очень просто
Sub RunShell()
Set WSShell = CreateObject(«Wscript.Shell»)
WSShell.Run «»»C:Program Files (x86)GoogleGoogle Earthclientgoogleearth.exe»»», 1
End Sub
Главное пишем побольше кавычек (аж три штуки с краю), если путь содержит пробелы и прочие «противные» символы.
К сожалению, в данном случае, мы только запускаем внешнее приложение без доступа к его объектам.
Запуск и управление внешним приложением
В меню VBA=>Tools=>Refernces видно все COM-объекты приложений,
которые установлены на вашем компьютере. Подключаем соответствующую
библиотеку, например, «GrymCore». И мы получаем доступ к ДубльГису. С
документацией API Дубль Гиса можно ознакомиться на их сайте.