![]() |
![]() |
![]() |
|
Word, глюки с количеством страниц | ☑ | ||
---|---|---|---|---|
0
Икогнито
17.11.09
✎
09:41
|
Получаю количество страниц из 1С
КоличествоЛистовWord = СокрЛП(WordApplication.ActiveDocument.BuiltInDocumentProperties(14).Value); Фигня следующая: - если контролирую это в отладчике = 6 (правильно) - если отключаю точку останова = 3 (не правильно) Что за фигня может быть? |
|||
1
Икогнито
17.11.09
✎
09:45
|
гз
|
|||
2
Aprobator
17.11.09
✎
09:46
|
Значит ошибка в чем-то другом. Не в этом месте кода. Может где позже КоличествоЛистовWord переопределяется. Для контроля. Сделай Сообщить(КоличествоЛистовWord ) после этой строчки кода.
|
|||
3
Икогнито
17.11.09
✎
09:49
|
(2)
В случае, если в отладчике точка останова стоит, сообщает 6 (правильно), если точка не стоит - сообщает 3(не правильно) В аналогичной ситуации если документ из 5 листов, то сообщает 2 без точки останова |
|||
4
Икогнито
17.11.09
✎
09:50
|
WordApplication = MSWord.Application;
ЗаменаВWord(WordApplication.ActiveDocument,Параметры); //прописываем верхний колонтитул WordApplication.ActiveDocument.Sections(1).Headers(1).Range.Text=?(Защищать,"типовой","нетиповой"); WordApplication.ActiveDocument.Sections(1).Headers(1).Range.Font.Italic = 9999998; WordApplication.ActiveDocument.Sections(1).Headers(1).Range.Font.Underline = 1; //прописываем нижний колонтитул Текст = WordApplication.ActiveDocument.Sections(1).Footers(1).Range.Text; Текст = СтрЗаменить(Текст,"{КраткоеФизическоеЛицоПерваяСторона}",Параметры.КраткоеФизическоеЛицоПерваяСторона); Текст = СтрЗаменить(Текст,"{КраткоеФизическоеЛицоВтораяСторона}",Параметры.КраткоеФизическоеЛицоВтораяСторона); //MSR *** 16.11.09 добавил //{ КоличествоЛистовWord = СокрЛП(WordApplication.ActiveDocument.BuiltInDocumentProperties(14).Value); Параметры.Очистить(); Параметры.Вставить("КоличествоСтраницДокумента",КоличествоЛистовWord); ЗаменаВWord(WordApplication.ActiveDocument,Параметры); //} //MSR ***** 16.11.09 конец правки WordApplication.ActiveDocument.Sections(1).Footers(1).Range.Text=Текст; WordApplication.ActiveDocument.Sections(1).Footers(1).PageNumbers.Add(2, Истина); Если Защищать Тогда //устанавливаем защиту WordApplication.ActiveDocument.Protect(2,Ложь,СокрЛП(ТекущаяДата()),Ложь,Ложь); КонецЕсли; WordApplication.ActiveDocument.Save(); MSWord.ActiveWindow.Visible = Истина; //делаем окно видимым WordApplication.PrintPreview = Истина; MSWord.ActiveWindow.ActivePane.View.Zoom.Percentage = 120; |
|||
5
smaharbA
17.11.09
✎
09:54
|
сперва весь код выкин на
|
|||
6
Икогнито
17.11.09
✎
09:59
|
Попытка
MSWord = ПолучитьCOMОбъект("","Word.Application"); MSWord.Documents.Open(ИмяВремФайлаШаблонаДоговора); Исключение MSWord = 0; Сообщить("Не удалось подключиться к MSWord!",СтатусСообщения.Внимание); Возврат; КонецПопытки; Попытка WordApplication = MSWord.Application; ЗаменаВWord(WordApplication.ActiveDocument,Параметры); //прописываем верхний колонтитул WordApplication.ActiveDocument.Sections(1).Headers(1).Range.Text=?(Защищать,"типовой","нетиповой"); WordApplication.ActiveDocument.Sections(1).Headers(1).Range.Font.Italic = 9999998; WordApplication.ActiveDocument.Sections(1).Headers(1).Range.Font.Underline = 1; //прописываем нижний колонтитул Текст = WordApplication.ActiveDocument.Sections(1).Footers(1).Range.Text; Текст = СтрЗаменить(Текст,"{КраткоеФизическоеЛицоПерваяСторона}",Параметры.КраткоеФизическоеЛицоПерваяСторона); Текст = СтрЗаменить(Текст,"{КраткоеФизическоеЛицоВтораяСторона}",Параметры.КраткоеФизическоеЛицоВтораяСторона); //MSR *** 16.11.09 добавил //{ КоличествоЛистовWord = СокрЛП(WordApplication.ActiveDocument.BuiltInDocumentProperties(14).Value); Параметры.Очистить(); Параметры.Вставить("КоличествоСтраницДокумента",КоличествоЛистовWord); ЗаменаВWord(WordApplication.ActiveDocument,Параметры); //} //MSR ***** 16.11.09 конец правки WordApplication.ActiveDocument.Sections(1).Footers(1).Range.Text=Текст; WordApplication.ActiveDocument.Sections(1).Footers(1).PageNumbers.Add(2, Истина); Если Защищать Тогда //устанавливаем защиту WordApplication.ActiveDocument.Protect(2,Ложь,СокрЛП(ТекущаяДата()),Ложь,Ложь); КонецЕсли; WordApplication.ActiveDocument.Save(); MSWord.ActiveWindow.Visible = Истина; //делаем окно видимым WordApplication.PrintPreview = Истина; MSWord.ActiveWindow.ActivePane.View.Zoom.Percentage = 120; Исключение Сообщить("Не удалось сформировать договор! Обратитесь в службу поддержки!",СтатусСообщения.Важное); Сообщить(ОписаниеОшибки()); WordApplication.ActiveDocument.Close(); КонецПопытки; WordApplication = 0; MSWord = 0; |
|||
7
Aprobator
17.11.09
✎
10:02
|
а WordApplication.ActiveDocument.Lists.Count что выдает?
|
|||
8
Икогнито
17.11.09
✎
10:11
|
(7) 1 выдает
|
|||
9
Икогнито
17.11.09
✎
10:22
|
up
|
|||
10
Aprobator
17.11.09
✎
10:26
|
попробуй принтер определить перед получением количества страниц.
|
|||
11
Икогнито
17.11.09
✎
10:50
|
(10) от лукавого это
|
|||
12
smaharbA
17.11.09
✎
12:38
|
(9) код целиком переписывай сперва, потом будет разговор...
код очень плохой |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |