|
Сохранение в Word | ☑ | ||
---|---|---|---|---|
0
nikolas2605
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:\Local\Dogovor\Oborudovanie"; MSWord.SaveAS(Каталог + "\" + ИмяФайла + "(оборудование)",16); Исключение Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; Иногда меня выкидывает с ошибкой, что {Документ.ЗаказПокупателя.МодульМенеджера(11636)}: Ошибка при вызове метода контекста (SaveAS): Произошла исключительная ситуация (Microsoft Word): Ошибка команды В чём тут дело, может кто подскажет? Если контрагент - ИП или розничный покупатель, договор нормально сохраняется; если ООО - через раз. Конфигурация "Управление небольшой фирмой" ред.1.4. Заранее спасибо. |
|||
1
Vexcel
30.12.13
✎
00:08
|
(0) ну наверно что то не нравиться в имени файла, может какой ни будь странный символ, или вовсе NULL приходит
Поставь в сообщение с ошибкой ещё и ИмяФайла |
|||
2
nikolas2605
30.12.13
✎
00:09
|
(1) Пробовал кавычки убирать у ООО-шек - пока толку нет
|
|||
3
nikolas2605
30.12.13
✎
00:12
|
Например, ООО "ИТБ-Семигорье" меня выкидывает, а ООО "Ланч" сохраняет...
|
|||
4
nikolas2605
30.12.13
✎
00:15
|
Иду в отладчик, получаю, что когда меня выкидывает, программа пишет: метод объекта не обнаружен SaveAs. Куда смотреть далее, ведь такое не на всех контрагентах?
|
|||
5
alexei366
30.12.13
✎
00:19
|
(4) Так мож обращайся к объекту документа а не приложения.
Я через метод объекта документа делаю сохранение а не через метод приложения (я даж честно говоря и не задумывался и не смотрел что у приложения ворда тож такой метод есть), и удаляю все запрещенные виндой символы в имени файла перед сохранением |
|||
6
nikolas2605
30.12.13
✎
00:24
|
(4)Извини за глупый вопрос, это как? Я пока начинающий, набираюсь опыта. Примеров не надо, просто объясни
|
|||
7
alexei366
30.12.13
✎
00:54
|
Doc.SaveAS(...)
|
|||
8
alexei366
30.12.13
✎
00:56
|
(7) И вообще вроде метод не SaveAS а SaveAs
|
|||
9
alexei366
30.12.13
✎
01:00
|
||||
10
nikolas2605
30.12.13
✎
01:01
|
(9) Спасибо. сейчас смотрю. Пока и так выкинуло.
|
|||
11
nikolas2605
30.12.13
✎
01:07
|
Ссылка полезная. Если вычисляю выражение MSWord = Договор.Получить(), то мне на MSWord выдаёт свойства, а не методы...
|
|||
12
alexei366
30.12.13
✎
01:18
|
(11) А ты какбудто у какогонить объекта видел чтоб отладчик методы подсказвал?
|
|||
13
alexei366
30.12.13
✎
01:19
|
(11) А табличные части как заполнять будешь? или у тебя их нет?
|
|||
14
nikolas2605
30.12.13
✎
01:23
|
(12) Не видел. Пока ещё первый раз так печать реализую.
(13) Нет |
|||
15
nikolas2605
30.12.13
✎
01:27
|
Какие символы виндой недопустимы?
|
|||
16
alexei366
30.12.13
✎
01:39
|
(15) Создай файл на рабочем столе, начни его переименовывать и попытайся поставить двоеточие, винда те покажет
|
|||
17
alexei366
30.12.13
✎
01:40
|
(14) Чот я у т в коде печати не вижу
|
|||
18
nikolas2605
30.12.13
✎
01:43
|
(17) пока не написал печать
|
|||
19
nikolas2605
30.12.13
✎
01:50
|
(17)Что программе не понравилось? Написал так:
Doc.SaveAS(Каталог + "\" + ИмяФайла,16); Сохранила! |
|||
20
nikolas2605
30.12.13
✎
01:57
|
Рано радовался
|
|||
21
nikolas2605
30.12.13
✎
02:23
|
Сделал так:
ИмяФайла = Результат.Контрагент.Наименование; И так как наименование - это краткое наименование контрагента, винда не пропускала кавычки в нём. Убрал кавычки в кратком наименовании в контрагенте, в полном оставил. Сохраняет. |
|||
22
alexei366
30.12.13
✎
02:26
|
(21) Ты чо тупишь, сделай отдельную функцию типа :
Функция ПреобразоватьСтрокуВИмяФайла(ВходнаяСтрока) ВходнаяСтрока = СтрЗаменить(ВходнаяСтрока,":",""); ВходнаяСтрока = СтрЗаменить(ВходнаяСтрока,"""",""); ........ Возврат ВходнаяСтрока; КонецФункции |
|||
23
alexei366
30.12.13
✎
02:27
|
(22) И Соответственно
ИмяФайла = ПреобразоватьСтрокуВИмяФайла(Результат.Контрагент.Наименование); |
|||
24
alexei366
30.12.13
✎
02:27
|
(22) Ток в объявлении вот так
Функция ПреобразоватьСтрокуВИмяФайла(Знач ВходнаяСтрока) |
|||
25
nikolas2605
30.12.13
✎
11:21
|
(24)Сработало. Спасибо. С наступающим Новым Годом!
|
|||
26
alexei366
30.12.13
✎
11:31
|
(25) Ага давай, тя тоже
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |