Форум программистов, компьютерный форум, киберфорум 1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
1

Редактирование COM объекта Word

17.09.2019, 18:14. Показов 6696. Ответов 7

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Ребята подскажите пожалуйста как мне вот эту функцию работающею с объектом Документ Word (ДокументВорд = ОбъектВорд.ActiveDocument, переписать так чтобы она могла работать с COM-объектом Word (ОбъектВорд = Новый COMОбъект("Word.Application"); ):

1C Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Функция ВыполнитьЗамену(знач Object, Параметр, Значение)
  СтрокаПоиска = "{" + Параметр + "}";
  СтрокаЗамены = Строка(Значение);
//Необходимо выделить областей, в которой мы осуществляем замену
  Object.Select();
//Получаем выделенную область
  Selection = Object.Application.Selection;
//Найдем все вхождения параметра и заменим его на нужное нам значение
  FindObject = Selection.Find;
  FindObject.ClearFormatting();
  Пока FindObject.Execute(СтрокаПоиска) Цикл
    Если ПустаяСтрока(СтрокаЗамены) Тогда
      Selection.Delete();
    Иначе
      Selection.TypeText(СтрокаЗамены);
    КонецЕсли;
  КонецЦикла;
//Отменим выделение
  Selection.Collapse();
  
  Возврат Object;
КонецФункции
Она работает, если в неё отправить объект преобразованный:
1C Скопировано
1
2
3
4
5
6
7
/Создаем COM-объект для работы с Word
    ОбъектВорд = Новый COMОбъект("Word.Application");
    ОбъектВорд.Documents.Add(ИмяФайла,,, Истина);
    ОбъектВорд.ActiveWindow.Caption = Макет.Наименование;
 
    Object = ОбъектВорд.ActiveDocument;
     ВыполнитьЗамену(знач Object, Параметр, Значение);
А если отправить просто COMОбъект, то она уже не находит у него нужные функции
1C Скопировано
1
2
3
ОбъектВорд = Новый COMОбъект("Word.Application");
    ОбъектВорд.Documents.Add(ИмяФайла,,, Истина);
        ВыполнитьЗамену(ОбъектВорд, Параметр, Значение)
А мне по задаче нужно редактировать COMОбъект, а в документ Word преобразовывать его уже перед просмотром и печатью.

Или ссылочку на материал, где доступно описываются методы работы с COMОбъект.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2019, 18:14
Ответы с готовыми решениями:

Общие макеты Word, Редактирование
Добрый вечер, извиняюсь за занудство, но повесили на меня 1с без знания и нормального обучения. Обучился на "Введение в...

Неудачная попытка создания объекта Word.application
1C v 7.7 Подскажите, пожалуйста, в чем ошибка? Пытаюсь создать объект World, выдается ошибка: "Неудачная попытка создания объекта...

Редактирование объекта
Вообщем то идея такая, существует класс TKlient объект которого инициализируемый в функции int main в нем такие поля: int Code;//код...

7
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
18.09.2019, 15:41  [ТС] 2
Просто у меня дальше после этой функции идёт другая функция, которая принимает COMобъект.

Добавлено через 3 часа 25 минут
Возможно ли, с начало отредактировать документ в функции, а потом снова преобразовать документ в COMОбъект, чтобы в нем сохранились все сделанные изменения?
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
20.09.2019, 10:04  [ТС] 3
Вопрос решён. Решение:

1C Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Функция ВыполнитьЗамену(Object, Параметр, Значение)
  СтрокаПоиска = "{" + Параметр + "}";
  СтрокаЗамены = Строка(Значение);
//Необходимо выделить областей, в которой мы осуществляем замену
 // Object.Select();
 Object.ActiveDocument.Select();
//Получаем выделенную область
 // Selection = Object.Application.Selection;
 Selection = Object.Selection;
//Найдем все вхождения параметра и заменим его на нужное нам значение
  FindObject = Selection.Find;
  FindObject.ClearFormatting();
  Пока FindObject.Execute(СтрокаПоиска) Цикл
    Если ПустаяСтрока(СтрокаЗамены) Тогда
      Selection.Delete();
    Иначе
      Selection.TypeText(СтрокаЗамены);
    КонецЕсли;
  КонецЦикла;
//Отменим выделение
  Selection.Collapse();
  
  Возврат Object;
КонецФункции
1
Модератор
 Аватар для Yulunga
2441 / 855 / 248
Регистрация: 22.04.2013
Сообщений: 6,240
Записей в блоге: 1
20.09.2019, 10:24 4
спасибо. а то разговариваешь сам с собой, как-то неудобно даже
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
23.09.2019, 07:22  [ТС] 5
Цитата Сообщение от Yulunga Посмотреть сообщение
спасибо. а то разговариваешь сам с собой, как-то неудобно даже
да я вообще в 1С профан, поэтому иногда получаются вопросы, на которые никто отвечать не хочет )
0
Модератор
 Аватар для Yulunga
2441 / 855 / 248
Регистрация: 22.04.2013
Сообщений: 6,240
Записей в блоге: 1
23.09.2019, 07:50 6
ну я вот ворд не любю, поэтому как там чего - сказать не могу. а посмотреть в общем и целом полезно. мало ли кому что вздумается. хоть обычно на екселе, но случаи разные бывают (с)
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
23.09.2019, 08:55  [ТС] 7
Цитата Сообщение от Yulunga Посмотреть сообщение
хоть обычно на екселе, но случаи разные бывают
ексель мне тоже скоро понадобится, если у тебя есть ссылка на какой-нибудь хороший ресурс, кинь пожалуйста
0
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
23.09.2019, 09:47 8
Volodya_, в интернете полно статей по работе с этим механизмом, стоит только попробовать грамотно сформировать запрос для поиска. На том же самом инфостарте их наверно штук очень много.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.09.2019, 09:47
Помогаю со студенческими работами здесь

Редактирование и сохранение объекта
Уважаемые форумчане, помогите написать код к задаче. При обращении к Url "xxx/Edit/n" выводится информация об объекте, у которого...

Редактирование сетки объекта
Здравствуйте, как изменять положение вершин сетки в Unity? Необходимо взять одну точку, допустим, у куба и присвоить ей новые координаты....

Редактирование в Word
Всем привет!. Ребят, есть вот такое дело: Word.Paragraph а = doc.Paragraphs.Add(ref range); ...

PowerPoint блокировка объекта на редактирование
Добрый день! Не могу отредактировать объект, только удалить. На знаках поворота, изменении размеров стоит перечеркнутый знак. Скрин...

Редактирование Exel из Word
Всем привет! Я, врач, пытаюсь автоматизировать свою писанинскую работу. Есть база данных в Exel , данные постоянны, кроме одного столбца...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
bytestream 05.03.2025
В эпоху цифровизации безопасность веб-приложений становится не просто рекомендацией, а жизненной необходимостью. Если вы разрабатываете приложения на JavaScript, вам наверняка знакома эта. . .
Project Loom против классических потоков: революция многопоточности в Java
bytestream 05.03.2025
Многопоточность в Java всегда была палкой о двух концах. С одной стороны, она даёт нам возможность создавать высокопроизводительные приложения, обрабатывающие множество задач параллельно. С другой —. . .
Работа с Reactive Kafka Stream и Java Spring WebFlux
bytestream 05.03.2025
Реактивное программирование — это парадигма, которая представляет собой мощный подход к работе с асинхронными потоками данных, где все вычисления выполняются неблокирующим способом. В основе. . .
Как работать с PostgreSQL JSON в Java Hibernate 6
bytestream 05.03.2025
PostgreSQL, будучи одной из самых мощных реляционных СУБД, предлагает отличную поддержку JSON-данных, а Hibernate 6 значительно улучшает взаимодействие с этим форматом для Java-разработчиков. JSON. . .
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер