PDA

Просмотр полной версии : Работа с COM-объектами



Radiy311
03.03.2015, 07:14
Подскажите пожалуйста, как можно определить номер страницы, на которой находится определенная строка? Платформа 8.3. Открываю документ следующим образом:

&НаСервере
Процедура ПрочитатьНаСервере()

Если ТипЗнч(Объект.СсылкаНаХран илище.Хранилище) <> Тип("ДвоичныеДанные") Тогда
ДвоичныеДанные = Объект.СсылкаНаХранилище.Х ранилище.Получить();
Иначе
ДвоичныеДанные = Объект.СсылкаНаХранилище.Х ранилище;
КонецЕсли;

файл1 = Новый Файл(КаталогВременныхФайл� �в() + Объект.НаименованиеФайла);
Если Не Файл1.Существует() Тогда
Попытка
ДвоичныеДанные.Записать(Ка талогВременныхФайлов() + Объект.НаименованиеФайла);
Исключение
Сообщить("Не удалось выгрузить файл для чтения.");
Возврат;
КонецПопытки;
КонецЕсли;

Попытка
Word = Новый COMОбъект("Word.Application");
Исключение
Сообщить("Не удалось открыть объект, возможно на данном компьютере не установлен ""Microsoft Word"".");
Возврат;
КонецПопытки;
Word.Visible = Истина;
Попытка
Документ = Word.Documents.Open(КаталогВременны хФайлов() + Объект.НаименованиеФайла);
Документ.Activate();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Попытка
Если ЗначениеЗаполнено(Объект.Ч астьСтрокиОстановы) Тогда
myRange = Документ.Content;
// Поиск текста для выделения
myRange.Find.Execute(Объект.ЧастьСтр окиОстановы, Истина);
isFind = myRange.Find.Found;
Если isFind Тогда
// Выделения текста цветом
myRange.Font.ColorIndex = 3;
myRange.Find.Execute(Объект.ЧастьСтр окиОстановы, Истина);
isFind = myRange.Find.Found;
Документ.Save();
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;

Документ.ActiveWindow.View.ReadingLayout = Истина;

Если Объект.Страница <= Документ.ActiveWindow.ActivePane.Pages.Cou nt Тогда

WordЛист = Документ.ActiveWindow.ActivePane.Pages;
WordЛист.Item(Объект.Страница).R ectangles(1).Range.Select();

Word.Activate();
Иначе

Сообщить("Введенный номер страницы превышает количество страниц в книге", СтатусСообщения.Важное);

КонецЕсли;

Элементы.Прочитать.Доступн ость = Ложь;

КонецПроцедуры


Вот в этой строке "WordЛист.Item(Объект.Страница).R ectangles(1).Range.Select();" вместо "Объект.Страница", я хочу подставлять номер страницы, на которой находится строка "Объект.ЧастьСтрокиОстанов� �".

avm3110
03.03.2015, 09:53
как можно определить номер страницы, на которой находится определенная строка? Платформа 8.3.
Насколько я понял вопрос, он имеет отношение к MS VBA, но никаким боком не касается платформы 1С.

Radiy311
04.03.2015, 09:26
Это да, но работать в таком ключе можно и в 1с. Тогда, почему бы не помочь, если кто-то знает?

avm3110
04.03.2015, 10:01
но работать в таком ключе можно и в 1с
Так вначале пишите и отлаживаете алгоритм на MS VBA и только потом уже переносите на 1С, а так пытаетесь одновременно усидеть на нескольких стульях

Radiy311
06.03.2015, 08:03
Знаний моих недостаточно чтобы на VBA отладить, поэтому и прошу помощи у форума.

avm3110
06.03.2015, 08:32
Знаний моих недостаточно чтобы на VBA отладить
Так с вопросами по VBA нужно и обращаться "по адресу". Причем тут 1С? Вы ещё спросите тут по диагнозу "почечная недостаточность" только лишь на основании того, что истории болезни вы ведёте на платформе 1С.