Имя: Пароль:
1C
 
Шаблон Word. Замена текста в шаблоне на таблицу
0 Pashkaa
 
31.05.07
11:20
Есть шаблон в определнной области которого есть текст <Таблица>, мне его надо заменить на таблицу с количеством столбцов и строк определнных в 1С.

Как найти и заменить текст я нашел в поиске, как создать таблицу тоже, но вот как вставить таблицу вместо текста не пойму.

Подскажите кто знает
1 Pashkaa
 
31.05.07
12:06
Ну неужели ни кто не работал с Word
2 smaharbA
 
31.05.07
12:08
(1) ищи, тут много раз было... Народу некогда, 100 тыр делят и очередь в молитвомат занимают
3 Pashkaa
 
31.05.07
12:14
Я же говорю что смог найти только то что написал в первом посте.

Мож кто знает как вставить Картинку в определенную область документа??
4 smaharbA
 
31.05.07
12:16
Таблицы.Add(Поиск.Parent,10,10);
5 Pashkaa
 
31.05.07
12:22
А Поиск это что??

Дак вот как раз я не знаю что мне вставить вместо 10 и 10.

У меня в Шаблоне есть Слово вместо которого надо вставить Таблицу
6 Pashkaa
 
01.06.07
13:31
Мож кто появился из тех кто плотно работал с WORD-ом
7 у лю 427
 
01.06.07
13:34
огласите сумму в графе "итого"
8 у лю 427
 
01.06.07
13:35
(5) а потом еще и колонки...
9 rom
 
01.06.07
13:40
Товары из заказа покупателя переносит в текущую позицию курсора ms word

Table = Товары.Выгрузить();
   
Doc = GetCOMObject (FileName);
App = Doc.Application;
Sel = Doc.Application.Selection;    
App.ActiveDocument.Tables.Add (Sel.Range,Table.Количество()+1,5);    

Sel.TypeText ("№");
Sel.MoveRight (12);
Sel.TypeText ("Наименование");
Sel.MoveRight (12);
Sel.TypeText ("Кол-во,шт");
Sel.MoveRight (12);
Sel.TypeText ("Цена, руб");
Sel.MoveRight (12);
Sel.TypeText ("Стоимость, руб");
Sel.MoveRight (12);

for i = 0 to Table.Количество() - 1 do
       Sel.TypeText (string(Table[i].НомерСтроки));
   Sel.MoveRight (12);
   Sel.TypeText (string(Table[i].Номенклатура));
   Sel.MoveRight (12);
   Sel.TypeText (string(Table[i].Количество));
   Sel.MoveRight (12);
   Sel.TypeText (string(Table[i].Цена));
   Sel.MoveRight (12);
   Sel.TypeText (string(Table[i].Сумма));
enddo;
10 vde69
 
01.06.07
14:01
как вариант (не с таблицами)

ПечатнаяФорма.Variables("ДовереноеЛицо").Value = НаименованиеДоверенногоЛица;

а в ворде

{ DOCVARIABLE  ДовереноеЛицо \* MERGEFORMAT }
11 у лю 427
 
01.06.07
14:04
бред какой то....
12 Pashkaa
 
04.06.07
07:48
Блин это все не то. Перефразирую по другому, может так будет понятнее что мне надо:
Как найдя слово <Таблица> в шаблоне ворд, установить на него курсор ворда что бы вставляемая программно таблица встала на место курсора??
13 smaharbA
 
04.06.07
07:56
За это - Sel = Doc.Application.Selection; - по  рукам надо линейкой...
(12) см (4)
14 smaharbA
 
04.06.07
07:57
+ "установить на него курсор ворда что бы вставляемая программно таблица встала на место курсора" - за это тоже по рукам...
15 Pashkaa
 
04.06.07
09:57
(14) а как тогда сказать правильнее??
16 Pashkaa
 
04.06.07
10:02
У меня есть вот такой пример поиска

// Получить объект, который будем использовать для поиска и замены.
Замена = Документ.Content.Find;

// Заменить заранее определенные ключевые конструкции на требуемый текст.
Замена.Execute("<Номенклатура>", Ложь, Истина, Ложь, , , Истина, , Ложь, ЭлементыФормы.Номенклатура.Значение.Наименование);


и вот так сейчас вставляю таблицу

//// Добавляем таблицу
MSWord.Paragraphs.Add();
Tab = MSWord.Tables.Add(MSWord.Paragraphs.Last.Range(),Результат.Количество() + 1, 2);


Что такое Поиск в (4)??
17 smaharbA
 
04.06.07
11:16

//*******************************************
Процедура Сформировать()
   Ворд=СоздатьОбъект("Word.Application");
   Док=Ворд.Documents.Add("C:\Шаблон дока.dot");
   Поиск=Док.Range().Find();
   Поиск.Text = "<Таблица>";
   Поиск.MatchCase = 0;
   Поиск.Execute();
   Таблицы=Док.Tables;
   Если Поиск.Found=-1 Тогда
       Таблица = Таблицы.Add(Поиск.Parent, 10, 10);
   КонецЕсли;
   Ворд.Visible=-1;
КонецПроцедуры
18 Pashkaa
 
04.06.07
11:24
Вот теперь пасиба, разобрался :)

А еще может знаешь ответ на вот такой вопрос,вставляю картинку из каталога номенклатуры в документ, фактический размер картинки 400х400 пикселей а вставляется в ворд где то 30х30, приходится растягивать руками.

вставляю так

MSWord.InlineShapes.AddPicture(КаталогВременныхФайлов() + ИмяФайла,, Истина, ПозицияРисунка.Parent);

Как можно задать что то типа автоформата??
19 smaharbA
 
04.06.07
11:27
Шейп=MSWord.InlineShapes.AddPicture(КаталогВременныхФайлов() + ИмяФайла,, Истина, ПозицияРисунка.Parent);
Шейп.Width=400;
Шейп.Height=400;
20 Pashkaa
 
04.06.07
11:30
Ага до этого уже сам допер. Поиск дал результаты. SmaharbA спасибо еще раз.
21 Pashkaa
 
04.06.07
11:37
А нет методов определить размер фотки что бы мне пропорционально подогнать размер, т.к. он не всегда 400х400.

В 1С встроенных я не нашел, может как нить средствами WORD можно
22 smaharbA
 
04.06.07
11:44
.ScaleHeight = 100
.ScaleWidth = 100
23 Pashkaa
 
04.06.07
13:35
А как обращаться в wdAlign и т.д. из 1С?? для того что бы выровнять текст в ячейке Таблицы
Независимо от того, куда вы едете — это в гору и против ветра!