Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> импорт из Word в 1С 8.2 , считывание строки          
I_Stranger Подменю пользователя
сообщение 14.06.13, 14:23
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Всем доброго времени суток.

Столкнулась со следующей проблемой:
есть строка в ворде (ниже)

AL162805 PIN. FASTENER 2 2 1.606 61.63 123.26 (- где "PIN. FASTENER" - одно наименование товара)

которая при считывании делится почему то на 2 строки
1. AL162805 PIN.
2. FASTENER 2 2 1.606 61.63 123.26

На точки между цифрами - никак не реагирует, нормально идес процес. Подскажите, кто знает, по какой причине наличие точки между символами делает перенос строки? и как с этим бороться? :/

код собственно:
WordПриложение = Новый COMОбъект("Word.Application");
Состояние("Открытие файла Microsoft Word...");
WordПриложение.Visible = Истина;
WordПриложение.Documents.Open(Путь);
Документ = WordПриложение.ActiveDocument();
Для н = 1 по Документ.Sentences.Count Цикл
    Текст = Документ.Sentences(н).Text;
.....


Signature
Платформа 8.2.19
УТП 8.2

pablo Подменю пользователя
сообщение 14.06.13, 14:27
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

А между PIN. и FASTENER специальный символ случаем не поставить? например - неразрывный пробел?

Сообщение отредактировал pablo - 14.06.13, 14:28


Signature
Правильно поставленный вопрос содержит до 90% ответа.

I_Stranger Подменю пользователя
сообщение 14.06.13, 14:28
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Пробел есть. Если убрать точку - считывает тоже нормально.


Signature
Платформа 8.2.19
УТП 8.2

pablo Подменю пользователя
сообщение 14.06.13, 14:31
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

извините за оперативную правку собственных сообщений. Вы считываете текст по предложениям, поэтому такая закавыка. Если точка окружена с обеих сторон непробельными символами, то ворд не воспринимает ее, как конец предложения.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: I_Stranger,

I_Stranger Подменю пользователя
сообщение 14.06.13, 14:36
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Вроде поняла. Так, получается, нужно в файле Ворда править позиции с наименованием Товара? При считывании никак исправить нельзя?


Signature
Платформа 8.2.19
УТП 8.2

pablo Подменю пользователя
сообщение 14.06.13, 14:39
Сообщение #6

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

При считывании при помощи Sentences - никак. Можно попытаться через другие свойства, например - Paragraph, но все зависит от того - какой именно у вас там формат входных данных и насколько можно сделать правку в Ворде. Путей много.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: I_Stranger,

I_Stranger Подменю пользователя
сообщение 14.06.13, 14:41
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Спасибо, за развернутый ответ

И если не сложно, прокомментируйте, почему тогда такую строку - не разбивает на части?

"R167971 A21127 US WASHER 1 1 .005 2.34 2.34"

ведь, явные пробелы перед точкой на этом участке присутствуют " 1 .005 "


Signature
Платформа 8.2.19
УТП 8.2

pablo Подменю пользователя
сообщение 14.06.13, 14:53
Сообщение #8

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

точка и потом цифры - ворд воспринимает как дробное число. Например 0.5 == .5


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: I_Stranger,

I_Stranger Подменю пользователя
сообщение 14.06.13, 15:22
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Решение проблемы:
Было
Для н = 1 по Документ.Sentences.Count Цикл
    Текст = Документ.Sentences(н).Text;

Стало
Для н = 1 по Документ.Paragraphs.Count Цикл
    Текст = Документ.Paragraphs(н).Range.Text;


Считывает все также, построчно, теперь уже не смотря, когда там окончание строки у ворда. Правда, это может быть, только для наших типов инвойсов.

Еще раз спасибо smile.gif


Signature
Платформа 8.2.19
УТП 8.2

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 10.06.24, 16:27
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!