#0
by Angellisa
1. Есть справочник "Слова". В него занесено 10 слов. 2. Есть справочник "Обработка документа Ворд". 3. Есть справочник "Слова из документа". Подчинен справочнику "Обработка документа Ворд". На форме элемента справочник "Обработка документа Ворд" есть кнопка "Обработать". Открывается нужный вордовский файл, идет поиск слов из справочника "Слова" по указанному документу. При нахождении - вопрос:" Нашли вхождение... Заполнить справочник "Слова из документа"?" Если да, то заполняется подчиненный справочник. Все работает отлично, но хотелось добавить 2 вещи: 1. Вытащить через команду "Сообщить" все предложение (или абзац), содержащее искомый шаблон. 2. Посчитать количество слов в этом документе ворд. ActiveDocument.Words.Count работает криво, возвращает слова с учетом переносов и пр. На ComputeStatistics(wdStatisticWords) - ругается 1С. В процедуре:
#3
by Angellisa
Как зачем? Мне не нужно хранить в 1С текст вордовского файла, а только найденные вхождения определенных слов из него. Мухи и котлеты отдельно))
#5
by Garykom
ну так берете просто весь текст из файлов ворд по очереди и анализируем прямо в 1С... ворд то зачем для анаиза?
#8
by Garykom
+ для избавления от "переносов" слов можно глянуть какой символ переноса в полученном из ворда в 1С тексте и СтрЗаменить(...)
#15
by Garykom
код можно упростить и все что делается через word вынести в 1С будет слегка надежнее, в вашем примере пока не ответили на вопрос документ ворда висит открытый если попробовать открыть другой документ ворда возможны разные глюки или если 1С вылетает то ворд то остается в памяти и мешается
#16
by Garykom
+ самый главный + код получается не привязан совсем к типу файлов (word) можно его будет использовать почти для любого текста к примеру без проблем с документами libreoffice и прочими
#17
by Angellisa
Я же говорю - все отлично работает. Но нужно еще: 1. Вытащить через команду "Сообщить" все предложение (или абзац), содержащее искомый шаблон. Т.е. когда идет предупреждение, что слово найдено, хотелось бы посмотреть в каком предложении и уже тогда отвечать заносить это слово в справочник или нет. 2. Посчитать количество слов в этом документе ворд. ActiveDocument.Words.Count работает криво, возвращает слова с учетом переносов и пр. На ComputeStatistics(wdStatisticWords) - ругается 1С.
#18
by Angellisa
А как "все что делается через word вынести в 1С"? Скопипастить в текстовый реквизит? А если там 500 стр?
#19
by Смотрящий
код Текст_Найти дай На ComputeStatistics(wdStatisticWords) - ругается 1С. Как вызывается ? дословно что пищет 1С ?
#20
by Garykom
1. абзац это либо символ конца строки 2. статистика по словам банально убрать смиволы переноса, заменит " " на "РазделительСтрок" затем циклом обойти и добавить все слова в ТЗ, добавить колонку "Количество", заполнить ее "1" и ТЗ.Свернуть("Слова", "Количество") без разницы сколько там страниц, программно же начало кода будет такое же
#21
by Garykom
+ 1. абзацы банально находятся при поиске слов сразу не в целом тексте, а в каждом абзаце искать в цикле и если нашли то его выводить куда надо
#22
by Angellisa
Переменная не определена (wdStatisticWords) При проверке модуля обнаружены синтаксические ошибки!
#25
by Смотрящий
wdStatisticWords определено в VBA как wdStatisticWords = $0 попробуй использовать Сообщить(Оле.ActiveDocument.ComputeStatistics);
#26
by Angellisa
Вау!!! Заработало! Мерси,мерси)) Теперь бы еще вторую задачку решить и будет мне счастье))
#27
by Смотрящий
я нетверезв, а вба был настолько давно что с ходу не изменю код в - вспоминать надо, и читать опять по новой
#28
by Смотрящий
По идее Текст_Найти должна третьим параметром возвращать предложение в которм найден текст
#29
by Garykom
да не надо ничего копипастить то )) просто целиком текст из ворда получаем из каждого файла кодом и далее в 1С его крутим (этот полученный текст)
#30
by Angellisa
Нашла в инете: 'получить текст слова 2, в предложении 1,в параграфе 2 WordApp.ActiveDocument.Paragraphs.Range.Sentences.Words.Text Крутила по-всякому, но никак.
#31
by Смотрящий
У тебя в Текст_Найти(Оле, аТекст) оператор Оле.Selection.Find.Found возвращает найдено/ненайдено. А вот где найдено, в каком параграфе/строке - неизвестно. Надо искать как выдрать средствами вба предложение в котором найдено - условно: сканировать строку к началу до точки (до начала параграфа) и к концу до точки (до начала параграфа)
#32
by Garykom
а не проще по очереди брать каждый параграф из ворда в 1С и в нем искать? но есть, есть любители преодолевать трудности.... "стоя и в гамаке"
#33
by Смотрящий
ну на первом десятке параграфов перебор, может и будет иметь смысл. а вот на сотне - будет виснуть нхрен; надолго
#34
by Angellisa
"Expand — расширить выделение на слово, предложение, абзац и т.п. — в зависимости от переданного параметра. Метод Extend позволяет расширить выделение (вместо слова — предложение, вместо предложения — абзац и т.п.). Метод, обратный методу Expand — Shrink." И как это прикрутить?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: Поиск документа
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Перенос данных Бухгалтерия из v7 в v8
- Полнотекстовый поиск - Превышено допустимое количество слов поиска
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- Помогите пропустить через фаервол ОтправкаДоставляемыхУведомлений.Отправить
- Изменить имя файла при сохранении печатной формы
- Отсутствие отрицательных остатков сумм НДС, предъявленных поставщиками
- обмен данными с укм в формате csv
- Пропала кнопка "История изменений" УНФ
- В pgadmin 3 отсутствует пункт Резервное копирование, что делать???
- Помогите найти решебник по сборнику задач для подготовки к экзамену 1С:Спец УТ11
- Актуализация правил обмена при изменения в структуре конфигурации приемника
- Как программно создать кнопки в командной панели
- Перенос документов 1с 7.7 Комплексная в УТП
- Не удается снизить приоритет виртуальной машины Oracle VM VirtualBox
- OFF: Геополитика. Россия выводит войска из Сирии (490)
- Информационная база была перемещена или восстановлена из резервной копии
- параметр КонецПериода в СКД (Толстый клиент)
- 1С:Библиотека подключаемого оборудования для мобильных приложений, редакция 1.4
- Не начислять зарплату по сдельным нарядам у некоторых сотрудников
- Цена для номенклатуры на дату документа
- Пропадает значение в реквизите табличного поля (8.3)
- Получить значение переменной из другой процедуры
- Сохранить пользовательские настройки Принтера в 1С