30.12.13 — 00:02
Здравствуйте. Пишу такой код (привожу фрагмент) по созданию договоров и их сохранению в Word
Договор = Документы.ЗаказПокупателя.ПолучитьМакет(«ДоговорНаОборудование1»);
MSWord = Договор.Получить();
Попытка
Doc = MSWord.Application.Documents(1);
Doc.Activate();
Replace = Doc.Content.Find;
FindText = «<Директор>»;
MatchCase = Ложь;
MatchWholeWord = Истина;
MatchWildcards = Ложь;
MatchSoundsLike = Неопределено;
MatchAllWordForms = Неопределено;
Forward = Истина;
Wrap = Неопределено;
Format_ = Ложь;
РезультатСклонения=Падеж(Фио,-1 ,3,»231″);
ReplaceWith = РезультатСклонения;
Replace.Execute(FindText,MatchCase,MatchWholeWord,MatchWildcards,MatchSoundsLike,MatchAllWordForms,Forward,Wrap,Format_,ReplaceWith);
MSWord.Application.Visible = Истина;
MSWord.Activate();
ИмяФайла = Результат.Контрагент.НаименованиеПолное;
Каталог = «D:LocalDogovorOborudovanie»;
MSWord.SaveAS(Каталог + «» + ИмяФайла + «(оборудование)»,16);
Исключение
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();
КонецПопытки;
Иногда меня выкидывает с ошибкой, что {Документ.ЗаказПокупателя.МодульМенеджера(11636)}: Ошибка при вызове метода контекста (SaveAS): Произошла исключительная ситуация (Microsoft Word): Ошибка команды
В чём тут дело, может кто подскажет? Если контрагент — ИП или розничный покупатель, договор нормально сохраняется; если ООО — через раз. Конфигурация «Управление небольшой фирмой» ред.1.4. Заранее спасибо.
1 — 30.12.13 — 00:08
(0) ну наверно что то не нравиться в имени файла, может какой ни будь странный символ, или вовсе NULL приходит
Поставь в сообщение с ошибкой ещё и ИмяФайла
2 — 30.12.13 — 00:09
(1) Пробовал кавычки убирать у ООО-шек — пока толку нет
3 — 30.12.13 — 00:12
Например, ООО «ИТБ-Семигорье» меня выкидывает, а ООО «Ланч» сохраняет…
4 — 30.12.13 — 00:15
Иду в отладчик, получаю, что когда меня выкидывает, программа пишет: метод объекта не обнаружен SaveAs. Куда смотреть далее, ведь такое не на всех контрагентах?
5 — 30.12.13 — 00:19
(4) Так мож обращайся к объекту документа а не приложения.
Я через метод объекта документа делаю сохранение а не через метод приложения (я даж честно говоря и не задумывался и не смотрел что у приложения ворда тож такой метод есть), и удаляю все запрещенные виндой символы в имени файла перед сохранением
6 — 30.12.13 — 00:24
(4)Извини за глупый вопрос, это как? Я пока начинающий, набираюсь опыта. Примеров не надо, просто объясни
7 — 30.12.13 — 00:54
Doc.SaveAS(…)
8 — 30.12.13 — 00:56
(7) И вообще вроде метод не SaveAS а SaveAs
9 — 30.12.13 — 01:00
10 — 30.12.13 — 01:01
(9) Спасибо. сейчас смотрю. Пока и так выкинуло.
11 — 30.12.13 — 01:07
Ссылка полезная. Если вычисляю выражение MSWord = Договор.Получить(), то мне на MSWord выдаёт свойства, а не методы…
12 — 30.12.13 — 01:18
(11) А ты какбудто у какогонить объекта видел чтоб отладчик методы подсказвал?
13 — 30.12.13 — 01:19
(11) А табличные части как заполнять будешь? или у тебя их нет?
14 — 30.12.13 — 01:23
(12) Не видел. Пока ещё первый раз так печать реализую.
(13) Нет
15 — 30.12.13 — 01:27
Какие символы виндой недопустимы?
16 — 30.12.13 — 01:39
(15) Создай файл на рабочем столе, начни его переименовывать и попытайся поставить двоеточие, винда те покажет
17 — 30.12.13 — 01:40
(14) Чот я у т в коде печати не вижу
18 — 30.12.13 — 01:43
(17) пока не написал печать
19 — 30.12.13 — 01:50
(17)Что программе не понравилось? Написал так:
Doc.SaveAS(Каталог + «» + ИмяФайла,16);
Сохранила!
20 — 30.12.13 — 01:57
Рано радовался
21 — 30.12.13 — 02:23
Сделал так:
ИмяФайла = Результат.Контрагент.Наименование;
И так как наименование — это краткое наименование контрагента, винда не пропускала кавычки в нём. Убрал кавычки в кратком наименовании в контрагенте, в полном оставил. Сохраняет.
22 — 30.12.13 — 02:26
(21) Ты чо тупишь, сделай отдельную функцию типа :
Функция ПреобразоватьСтрокуВИмяФайла(ВходнаяСтрока)
ВходнаяСтрока = СтрЗаменить(ВходнаяСтрока,»:»,»»);
ВходнаяСтрока = СтрЗаменить(ВходнаяСтрока,»»»»,»»);
……..
Возврат ВходнаяСтрока;
КонецФункции
23 — 30.12.13 — 02:27
(22) И Соответственно
ИмяФайла = ПреобразоватьСтрокуВИмяФайла(Результат.Контрагент.Наименование);
24 — 30.12.13 — 02:27
(22) Ток в объявлении вот так
Функция ПреобразоватьСтрокуВИмяФайла(Знач ВходнаяСтрока)
25 — 30.12.13 — 11:21
(24)Сработало. Спасибо. С наступающим Новым Годом!
alexei366
26 — 30.12.13 — 11:31
(25) Ага давай, тя тоже
- Remove From My Forums
-
Общие обсуждения
-
Здравствуйте. Пытаюсь создать и сохранить документ в нужном мне месте.
Word.Application wordapp; wordapp = new Word.Application(); Word.Table table; wordapp.Visible = false; object missing = System.Reflection.Missing.Value; wordapp.Documents.Add(ref missing, false, Word.WdNewDocumentType.wdNewBlankDocument, true); Word.Document document = wordapp.Documents[1]; Word.Paragraph wordparagraph = (Word.Paragraph)document.Paragraphs[1]; wordparagraph.Range.Text = "lalalala"; object fileName = @"c:1privetprivet.doc"; document.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);после команды SaveAs открывается окно word «Сохранение файла», где нужно указать
вручную местоположение файла (хотя я явно указал куда нужно сохранять). пробовал и параметры функции менять и местоположение файла, но толку 0.Подскажите как мне сохранить выбранный мной документ в нужное место?
Microsoft.Office.Interop.Word v 12.0.0
Office 2010
.net 4.0
-
Изменен тип
31 марта 2014 г. 7:47
Тема неаткина
-
Изменен тип
Using
MS Office 2007
VS 2010 — Pointing frame work to 3.5
Windows 7
referenced NET Component Word 12.0 dll in C# code
——————————————————-
I wrote a console application to create PDF ..when I am running this application from my user (like double click) it is creating PDFs
But when I configured the same console application as Windoows Service (run as User (me), as SYSTEM, As Local same result)..I am getting exception from SaveAs command
Can any body help me? Obviously it is missing some thing when the application is running as a Windows Service. What it is?
Some dll? DCOM settings? another security? what it is I can’t think straungt? Help me!!!
Exception:
System.Runtime.InteropServices.COMException (0x800A1066): Command failed
at Microsoft.Office.Interop.Word.DocumentClass.SaveAs(Object& FileName, Object& FileFormat, Object& LockComments, Object& Password, Object& AddToRecentFiles, Object& WritePassword, Object& ReadOnlyRecommended, Object&
EmbedTrueTypeFonts, Object& SaveNativePictureFormat, Object& SaveFormsData, Object& SaveAsAOCELetter, Object& Encoding, Object& InsertLineBreaks, Object& AllowSubstitutions, Object& LineEnding, Object& AddBiDiMarks)
at SnapshotReportGenerator.reportWrkThread.createReports(ArrayList ScreenData, String newStorePath, Int64 jobId, Int64 recId, String ifileName, Int64 queueId) in C:C#SnapshotReportGeneratorSnapshotReportGeneratorreportWrkThread.cs:line 224
Code:
object fileFormat = Word.WdSaveFormat.wdFormatPDF;
oDoc.SaveAs(ref fileName,
ref fileFormat,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing);
-
Moved by
Saturday, July 28, 2012 1:16 PM
not using VSTO technology (From:Visual Studio Tools for Office)
Using
MS Office 2007
VS 2010 — Pointing frame work to 3.5
Windows 7
referenced NET Component Word 12.0 dll in C# code
——————————————————-
I wrote a console application to create PDF ..when I am running this application from my user (like double click) it is creating PDFs
But when I configured the same console application as Windoows Service (run as User (me), as SYSTEM, As Local same result)..I am getting exception from SaveAs command
Can any body help me? Obviously it is missing some thing when the application is running as a Windows Service. What it is?
Some dll? DCOM settings? another security? what it is I can’t think straungt? Help me!!!
Exception:
System.Runtime.InteropServices.COMException (0x800A1066): Command failed
at Microsoft.Office.Interop.Word.DocumentClass.SaveAs(Object& FileName, Object& FileFormat, Object& LockComments, Object& Password, Object& AddToRecentFiles, Object& WritePassword, Object& ReadOnlyRecommended, Object&
EmbedTrueTypeFonts, Object& SaveNativePictureFormat, Object& SaveFormsData, Object& SaveAsAOCELetter, Object& Encoding, Object& InsertLineBreaks, Object& AllowSubstitutions, Object& LineEnding, Object& AddBiDiMarks)
at SnapshotReportGenerator.reportWrkThread.createReports(ArrayList ScreenData, String newStorePath, Int64 jobId, Int64 recId, String ifileName, Int64 queueId) in C:C#SnapshotReportGeneratorSnapshotReportGeneratorreportWrkThread.cs:line 224
Code:
object fileFormat = Word.WdSaveFormat.wdFormatPDF;
oDoc.SaveAs(ref fileName,
ref fileFormat,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing);
-
Moved by
Saturday, July 28, 2012 1:16 PM
not using VSTO technology (From:Visual Studio Tools for Office)
|
Ermak27 4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
||||
|
1 |
||||
|
1C 8.x 25.06.2019, 11:26. Показов 8332. Ответов 17 Метки нет (Все метки)
Добрый день!
__________________
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
25.06.2019, 12:42 |
2 |
|
Процедура клиент, сервер ?
0 |
|
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
|
25.06.2019, 14:39 [ТС] |
3 |
|
1. Процедура сервер
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
25.06.2019, 16:17 |
4 |
|
Нельзя сохранять фалы на сервере, нужно перенести на клиент.
0 |
|
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
|
25.06.2019, 16:18 [ТС] |
5 |
|
можешь показать
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
25.06.2019, 16:24 |
6 |
|
Ermak27, полностью процедуру всю переноси на клиент. А данные для заполнения вытаскивай через функции на сервере несли понадобится. Перед процедурой у тебя написано &НаСервере, меняй это на &НаКлиенте. Повалятся ошибки, такие как обращение к константе например и начинай их исправлять потихоньку.
0 |
|
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
|
25.06.2019, 16:44 [ТС] |
7 |
|
Я тебя не так понял на счёт сервера. У меня вообщем ничего не стоит перед процедурой. Нет &НаСервере и &НаКлиенте. У меня база крутиться на sql сервере
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
25.06.2019, 16:52 |
8 |
|
Ermak27, хорошо. Напиши тогда где находится процедура. В модуле формы или модуле объекта ?
0 |
|
Ermak27 4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
||||
|
25.06.2019, 17:06 [ТС] |
9 |
|||
|
Модуле формы. Процедура срабатывает при нажатии кнопки
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
25.06.2019, 18:16 |
10 |
|
Попробуй так прописать Докум.Documents.SaveAs(ИмяФайла);
0 |
|
1117 / 671 / 195 Регистрация: 22.04.2013 Сообщений: 5,072 Записей в блоге: 1 |
|
|
25.06.2019, 22:48 |
11 |
|
У меня вообщем ничего не стоит перед процедурой. Нет &НаСервере и &НаКлиенте. ну не стоит и не стоит. где процедура выполняется, когда не стоит? в воздухе? вряд ли.
0 |
|
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
|
26.06.2019, 08:40 [ТС] |
12 |
|
dggrom, выдаёт ошибку Поле объекта не обнаружено (Documents) Добавлено через 2 минуты
0 |
|
198 / 158 / 45 Регистрация: 23.08.2014 Сообщений: 807 |
|
|
26.06.2019, 10:02 |
13 |
|
Yulunga, у него метод записи самой не видет. Ermak27, что за конфигурация, какие формы, управляемые или нет ?
0 |
|
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
|
26.06.2019, 10:05 [ТС] |
14 |
|
dggrom, Не управляемые, Обычное приложение
0 |
|
1117 / 671 / 195 Регистрация: 22.04.2013 Сообщений: 5,072 Записей в блоге: 1 |
|
|
26.06.2019, 13:01 |
15 |
|
по мне так проблема в этом: запутал с какой-то целью. поэтому и нет там сейвас, что применяется не к тому к чему надо. чехарда. имена переменных закончились?
0 |
|
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
|
26.06.2019, 13:51 [ТС] |
16 |
|
Yulunga, я закомментировал Word=Докум;, теперь выдаёт ошибку Метод объекта не обнаружен (Range)
0 |
|
Yulunga 1117 / 671 / 195 Регистрация: 22.04.2013 Сообщений: 5,072 Записей в блоге: 1 |
||||
|
26.06.2019, 17:47 |
17 |
|||
ну вот чем не код для рыбы. сейвас должен быть для активного документа
0 |
|
Ermak27 4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
||||
|
27.06.2019, 11:22 [ТС] |
18 |
|||
|
Yulunga, как мне мой код поправить? Код который в самом начале, он так и выводит как надо, но встала задача сохранить эти вордовские документы по индексу, вот тут проблема и появилась у меня. Вчера я переделал немного код
Можете подсказать как мне сделать чтобы два значения выводила. Миниатюры
0 |
I continually get «Command Fail» at either the saveas, saveas2 or save calls when trying to save a new programmatically created .docx. I know that the file is being created. works fine offline.
Visual Studio 2013
Microsoft.Office.Interop.Word 15
Microsoft Office 10 on server and dev machine
test code:
myInfo_lbl.Text = ""
Dim word As New Microsoft.Office.Interop.Word.Application
word.Visible = True
Dim doc As Microsoft.Office.Interop.Word.Document
doc = word.Documents.Add()
Try
Dim insertText As String = "This thing needs to start fn working. Damn it!"
Dim range As Microsoft.Office.Interop.Word.Range = doc.Range(Start:=0, End:=0)
range.Text = insertText
doc.SaveAs2("D:myCVCOL_Filestest2.doc")
'doc.Save()
'doc.SaveAs2("D:myCVCOL_Filestest2.doc")
Catch ex As COMException
myInfo_lbl.Text = ex.ErrorCode & " ~ " & ex.HResult & " ~ " & ex.Message & " ~ try 6"
Finally
Dim save_changes As Object = False
doc.Close(save_changes)
word.Quit(save_changes)
End Try
![]()
ɢʀᴜɴᴛ
31.4k15 gold badges111 silver badges108 bronze badges
asked Aug 16, 2017 at 20:05
![]()
Looks like you didn’t set the format. Try this code
Imports System.Runtime.InteropServices
Module Module1
Sub Main()
CreateDoc()
End Sub
Public Sub CreateDoc()
Dim wordApp As New Microsoft.Office.Interop.Word.Application
Dim wordDoc As Microsoft.Office.Interop.Word.Document
Dim range As Microsoft.Office.Interop.Word.Range
Dim fileName As String
Dim insertText As String
Dim format As Microsoft.Office.Interop.Word.WdSaveFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument
wordApp = New Microsoft.Office.Interop.Word.Application()
wordDoc = New Microsoft.Office.Interop.Word.Document()
insertText = "Some text"
wordApp.Visible = True
fileName = "D:ProjectsSandboxStackOverflowConsoleVBtest2.doc"
wordDoc = wordApp.Documents.Add()
range = wordDoc.Range(Start:=0, End:=0)
range.Text = insertText
wordDoc.SaveAs2(fileName, Format)
wordDoc.Close(Nothing, Nothing, Nothing)
wordDoc = Nothing
wordApp = Nothing
End Sub
End Module
answered Aug 16, 2017 at 21:54
![]()
AeroradishAeroradish
3711 gold badge5 silver badges11 bronze badges
1
I had for many months an 80% error when converting a word to a pdf using the function SaveAs(WordDocFilePath & WordDocName & ".pdf", Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF) in VB.NET 2013 in a Windows 10 environment. I tried many things but this very simple change resolved just everything :
WordApp.ScreenUpdating = False (whether it was true before)
![]()
Suraj Rao
29.3k11 gold badges96 silver badges103 bronze badges
answered Feb 4, 2021 at 11:27
Добрый день! Почитала про это в инете, нашла что это возможно, пишут пример такой команды MSWord.SaveAS(Путь + ИмяФайла, 17); У меня команда вызывает ошибку. Причем, если сохранять как MSWord.SaveAS(Путь + ИмяФайла, 16); — в формате word, все ок. Почему в pdf не сохраняет? Потому что у меня Word 2007? А 2010 будет сохранять?
Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Word): Ошибка команды
этот код исполняется на сервере или на клиенте у тебя?
На клиенте. Если я все правильно понимаю)
Вопросы 1. В MSWORD у тебя точно документ? обычно так называют application 2. Открой у себя на компе ворд и сохрани любой док в pdf — ошибок нет? 3. точно убедись что этот код исполняется на клиенте.
Варианты 1. Нет поддержки PDF 2. Кривые руки программиста 🙂
А какая разница Где? Главное что бы На клиенте или на Сервере был Офис с поддержкой сохранения PDF. И так же, что бы правильно был передан параметр выбора типа файла для сохранения. «Не каждый Офис в PDF пишет», так для справки 🙂
А я разве параметр неправильно передала?)
А ты проверь. Откуда ты взяла, что 17 — это тип PDF? Что за упертая уверенность ,что Офис вообще 2010 и выше? 🙂
+ Макрос показал совсем другой подход 🙂 Sub Макрос1 ‘ ‘ Макрос1 Макрос ‘ ‘
+ Используй «ExportAsFixedFormat»
Так было в примере 16-ворд, 17-pdf, так в примерах было написано)) Я не говорила что у меня офис 2010, я написала что он 2007
Ну, елки-моталки… Попробуй в ворде сохранить в pdf. Даст?
Нет, пробовала, я просто интересуюсь, стоит ли ставить 2010, будет ли там сохранять или проблема не в этом
Блондинка блондинку не понимает 🙁
Не сохраняет из форда в пдф. Надо ставить 2010?) Я видимо блондинистей)
Поставь pdf-принтер и сохраняй в pdf из почти любой программы.
Мне это не подходит, я из 1с программно сохраняю при выводе документа на печать
ты что не понял? ТС хотела программно, а ты ей какой-то принтер пропихиваешь 🙂 если из ворда не сохраняет в пдф, то и из 1С не сохранит — поверь.
MSWord.SaveAS(«C:1.pdf», 17);
В 2010 офисе есть функция сохранения в пдф.
она иногда кривит, например, с залоченными объектами в экселе. пришлось ставить doPDF.
если на компе Вин ХР то сначала её надо переставить
libreoffice convert to pdf совсем не подходит?
Тэги:
Комментарии доступны только авторизированным пользователям
