Работа с COM-объектами
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 6 из 6
  1. #1
    Гость форума

    Регистрация
    19.09.2014
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Работа с COM-объектами

    Подскажите пожалуйста, как можно определить номер страницы, на которой находится определенная строка? Платформа 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(Объект.Страница). Rectangles(1).Range.Select();" вместо "Объект.Страница", я хочу подставлять номер страницы, на которой находится строка "Объект.ЧастьСтрокиОстанов ы".

  2. #2
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

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

  3. #3
    Гость форума

    Регистрация
    19.09.2014
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

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

  4. #4
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

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

  5. #5
    Гость форума

    Регистрация
    19.09.2014
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

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

  6. #6
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию

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

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •