Имя: Пароль:
1C
1C 7.7
v7: Обработка Документа Word Текст+Таблицы и загрузка в 1С
,
0 Geroy
 
08.04.14
14:41
Как с документа в котором есть таблицы и текст , выбрать только текст?
Док.Paragraphs().Range.Text   не подходит так как он выбирает все и содержимое таблиц и обычный текст

Мне нужно
Найти Текст , его взять за название папки в справочнике,после текста идут таблицы с них нужно выгрузить в справочник.нашасозданная папка
И так выгружать каждую таблицу пока не дойдем до следующего текста,с следующим текстом снова создаем новую папку и в нее грузим все таблицы после второго текста и так до третьего
1 Масянька
 
08.04.14
14:50
Текст - как обозначается (выделяется) в файле?
2 Geroy
 
08.04.14
15:03
(1)
http://rghost.ru/53878095.view
Вот пример

Мне надо найти сначало текст Aaa1 и создать папку в справочнике с названием "Ааа1" и потом выгрузить все таблицы после него и так до текста "Вавыавыавыа..." потом снова создать папку но уже "Вавыавыавыа..." и потом выгрузить таблицы после этого текста
3 Масянька
 
08.04.14
15:06
(2) Так и обозначается текст "Ааа1", "Вавыаы.."?
4 Geroy
 
08.04.14
15:06
мне нужно определить текст + сделать проверка есть ли перед ним таблица и есть ли после него таблица)))
5 Geroy
 
08.04.14
15:08
(3)  ну я пример скинул на скорую руку но документ будет похожей структуры


Текст
Таблица
Таблица
таблица

Текст2
таблица

Текст3
Таблица
Таблица

и таких таблиц порядка 40-60 и в каждоый по 30-40 строк и по 5-10 колонок
6 Масянька
 
08.04.14
15:08
(4) Определить текст по каким признакам?! Просто текста, который не должен никуда грузиться, нет?
7 Geroy
 
08.04.14
15:10
(6) лишнее я уберу руками оставлю только Текст который буду передавать  как название папки
8 Масянька
 
08.04.14
15:17
(7) Бред (сама задача).
9 Geroy
 
08.04.14
15:20
(8) http://www.consultant.ru/document/cons_doc_LAW_104953/

Вот этот документ нужно выгрузить в Справочник 1С

При этом автоматически создать Папки и Подпапки по разделам
А Лишний текст не трогать)

Вполне нормальная задача
Вы мне подскажите как  в документе в котором есть и Текст и Таблицы определить только текст)
10 Масянька
 
08.04.14
15:21
(9) И где там таблицы?
11 Geroy
 
08.04.14
15:22
(10) посмотрите внимательнее , полистайте страницы
12 Масянька
 
08.04.14
15:25
(11) Во-первых, это не Word.
Во-вторых, зачем это нужно в 1С?
В-третьих, распечатать, сесть за клаву и набить руками - "Дешево, надежно и практично" (С).
13 Geroy
 
08.04.14
15:36
(12) у меня на руках такой же документ только word
работаю на крупном химической предприятии и это мне надо загрузить в 1С

Те кто работали до меня именно руками и вносили
Я не собираюсь это все вносить руками, смысл тогда от этого всего?:)
14 Масянька
 
08.04.14
15:38
(13) Ну, так - вперед.
15 Geroy
 
08.04.14
15:40
(14) так бы сразу и сказали что не знаете ))

отдельно обработать файл doc с таблицами и отдельно обработать файл doc с текстом я могу, а вот как обработать файл в котором и текст и таблицы)

как с документа doc в котором текст+таблицы выбрать только текст ? вот это мне надо)
16 Масянька
 
08.04.14
15:43
(15) Странно.... Так же, как и по отдельности (текст и таблицы), только вместе.
17 Geroy
 
08.04.14
15:46
(16) ну вот как определить текст ? не через параграф
Док.Paragraphs(к).Range.Text
я это спрашиваю
18 Масянька
 
08.04.14
15:48
(17) Так же, как ты обрабатываешь файл с текстом.
19 Geroy
 
08.04.14
15:52
я его по параграфам и обрабатываю)))) но это мне не подходит
так как если использовать параграф то он обрабатывает и текст из таблиц тоже
При чем 1 параграф это 1 ячейка таблицы например R1C1

А мне надо что-то другое)
20 Масянька
 
08.04.14
15:59
(19) Какие параграфы?!

Я бы на твоем месте открыла букварь по Word'у (в инете есть) - и внимательно читала.

// подставляем значения по тексту договора - признак замены []
мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
21 Масянька
 
08.04.14
16:01
// верхний колонтитул
мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);

    // подставляем значения в реквизиты покупателя: надпись, признак замены []
    // надпись - РАГРУППИРОВАН
    СчетчикЦикла = 0;
    КолВоНадписей = мДок.Shapes.Count;
    Для СчетчикЦикла = 1 По КолВоНадписей Цикл
        мНашли = мДок.Shapes.Item(СчетчикЦикла).Select();
        Если Число(мДок.Application.Selection.ShapeRange.Type) = 17 Тогда
            мДок.Application.Selection.Range.Find.Execute("[ПечПокупательРеквизиты]",0,0,,,,,,,СокрЛП(мПокупатель),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечЮрАдресПокупателя]",0,0,,,,,,,СокрЛП(мЮрАдресПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечПочтАдресПокупателя]",0,0,,,,,,,СокрЛП(мПочтПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечТелефонПокупателя]",0,0,,,,,,,СокрЛП(мТелефонПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечИННПокупателя]",0,0,,,,,,,СокрЛП(мИННПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечКПППокупателя]",0,0,,,,,,,СокрЛП(мКПППокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечРСПокупателя]",0,0,,,,,,,СокрЛП(мРСчетПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечБанкПокупателя]",0,0,,,,,,,СокрЛП(мБанкПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечКСПокупателя]",0,0,,,,,,,СокрЛП(мКСчетПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечБИКБанкаПокупателя]",0,0,,,,,,,СокрЛП(мБИКПокупателя),2);
            мДок.Application.Selection.Range.Find.Execute("[ПечПокупательПодпись]",0,0,,,,,,,СокрЛП(ПодписьОтветственногоЛица),2);


        // заполнение таблицы номенклатуры        
        
        Для СчетчикЦикла = 1 По Счет.КоличествоСтрок() Цикл
            
            мОбъект.Tables(1).Rows.Add();        // добавляем строку в конец таблицы
            
            Счет.ПолучитьСтрокуПоНомеру(СчетчикЦикла);
            
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,1).Range.Text = Счет.НомерСтроки;
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,2).Range.Text = СокрЛП(Счет.Номенклатура.ПолнНаименование);
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,3).Range.Text = СокрЛП(Формат(Счет.Количество, "Ч010.2"));
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,4).Range.Text = Строка(Счет.Единица);
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,5).Range.Text = глФрм(Счет.Цена);
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,6).Range.Text = глФрм(Счет.СуммаНДС);
            мОбъект.Tables(1).Cell(СчетчикЦикла + 2,7).Range.Text = глФрм(Счет.Сумма);
22 Масянька
 
08.04.14
16:03
А вообще: это не кошерно - грузить большие объемы инфы из Word'а. Для этого есть Excel.
23 Geroy
 
08.04.14
16:09
(22)да я знаю ну а что делать)
Ничего не понятно с вашего примера)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс