Radiy311
03.03.2015, 08: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();" вместо "Объект.Страница", я хочу подставлять номер страницы, на которой находится строка "Объект.ЧастьСтрокиОстанов� �".
&НаСервере
Процедура ПрочитатьНаСервере()
Если ТипЗнч(Объект.СсылкаНаХран илище.Хранилище) <> Тип("ДвоичныеДанные") Тогда
ДвоичныеДанные = Объект.СсылкаНаХранилище.Х ранилище.Получить();
Иначе
ДвоичныеДанные = Объект.СсылкаНаХранилище.Х ранилище;
КонецЕсли;
файл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();" вместо "Объект.Страница", я хочу подставлять номер страницы, на которой находится строка "Объект.ЧастьСтрокиОстанов� �".