|
Работа с ActiveDocument | ☑ | ||
---|---|---|---|---|
0
новичок12345
27.12.12
✎
10:03
|
Добрый день, подскажите пожалуйста!
Хочу вывести в Ворд после определенной строки Таблицу Значений. Стандартно - поиск и замена не знаю как вывести ТаблицуЗначений. Поэтому решил найти строку, после которой нужно вставлять ТЗ: Замена = Документ.Content.Find; Замена.Execute("Строка поиска"); Для каждого Строка Из Товары Цикл Text.MoveRight(,1); Text.EndKey(); Text.TypeParagraph(); Text.TypeText("Текст"); КонецЦикла; Но курсор остается в начале, соответсвенно выводится не там где нужно моя ТЗ. Подскажите, как поместить курсор в конец найденной строки? |
|||
1
новичок12345
27.12.12
✎
10:15
|
ап
|
|||
2
новичок12345
27.12.12
✎
10:22
|
Помогите!!! Все утро мозг взрываю себе)
|
|||
3
ДайтеДайте Сказать
27.12.12
✎
10:25
|
Вот так таблица значений выводится
// Табличная часть ВсегоТЧ = УПН_ОбщиеПроцедуры.ПолучитьКоличествоТЧ(СсылкаНаОбъект); Для WordDocTableNuber = 1 По WordDoc.Tables.Count() Цикл TC = WordDoc.Tables(WordDocTableNuber); // Обходим все строки таблицы в документе Ворд НомерСтрокиДок = 1; Попытка СтрокаТаблицы = TC.Rows(НомерСтрокиДок); Исключение // Есть строки объединеные по вертикали Продолжить; КонецПопытки; //Для Каждого СтрокаТаблицы Из TC.Rows Цикл Пока НомерСтрокиДок <= TC.Rows.Count() Цикл СтрокаТаблицы = TC.Rows(НомерСтрокиДок); // Ищем реквизит ТЧ НашлиРеквизитТЧ = Ложь; КоличествоПолей = СтрокаТаблицы.Range.Fields.Count; Если КоличествоПолей > 0 Тогда Для Инд = 1 По КоличествоПолей Цикл Ном = КоличествоПолей - Инд + 1; СтрокаТаблицы.Range.Fields(Ном).Select(); ИмяРеквизита = WD.Selection.Text; Если ПустаяСтрока(ИмяРеквизита) Тогда Продолжить; КонецЕсли; // Получим имя ТЧ ПозицияТочки = Найти(ИмяРеквизита, "."); Если ПозицияТочки > 0 Тогда ИмяТЧ = Лев(ИмяРеквизита, ПозицияТочки - 1); Иначе Продолжить; КонецЕсли; Если Не УПН_ОбщиеПроцедуры.ОбъектСодержитТЧ(СсылкаНаОбъект, ИмяТЧ) Тогда Продолжить; Иначе НашлиРеквизитТЧ = Истина; КонецЕсли; //ТабличнаяЧасть = УПН_ОбщиеПроцедуры.ПолучитьТаблицуЗначенийИЗТЧ(СсылкаНаОбъект, ИмяТЧ); Прервать; КонецЦикла; КонецЕсли; Если Не НашлиРеквизитТЧ Тогда НомерСтрокиДок = НомерСтрокиДок + 1; Продолжить; КонецЕсли; // Добавляем пустые строки по количеству строк в ТЧ документа ПерваяСтрока = Истина; КоличествоСтрокТЧ = УПН_ОбщиеПроцедуры.ПолучитьКоличествоСтрокТЧ(СсылкаНаОбъект, ИмяТЧ); Если КоличествоСтрокТЧ = 0 Тогда Если TC.Rows.Count() = 1 Тогда Иначе СтрокаТаблицы.Range.Cut(); КонецЕсли; Иначе Для Сч = 1 По КоличествоСтрокТЧ Цикл Если ПерваяСтрока Тогда ПерваяСтрока = Ложь; СтрокаТаблицы.Range.Copy(); Иначе СтрокаТаблицы.Range.Paste(); КонецЕсли; КонецЦикла; КонецЕсли; // Обход таблицы документа по столбцам и заполняем строки Для Сч = 1 По КоличествоСтрокТЧ Цикл НомерСтрокиТЧ = НомерСтрокиДок + Сч - 1; СтрокаТаблицы = TC.Rows(НомерСтрокиТЧ); КоличествоПолей = СтрокаТаблицы.Range.Fields.Count; Если КоличествоПолей > 0 Тогда Для Инд = 1 По КоличествоПолей Цикл Ном = КоличествоПолей - Инд + 1; СтрокаТаблицы.Range.Fields(Ном).Select(); ИмяРеквизита = WD.Selection.Text; Если ПустаяСтрока(ИмяРеквизита) Тогда Продолжить; КонецЕсли; Если ИмяТЧ = Лев(ИмяРеквизита, СтрДлина(ИмяТЧ)) Тогда // Это реквзит ТЧ ИмяРеквизита = Сред(ИмяРеквизита, СтрДлина(ИмяТЧ) + 2); Значение = УПН_ОбщиеПроцедуры.ПолучитьЗначениеРеквизитаТЧДляWord(СсылкаНаОбъект, ИмяТЧ, Сч, ИмяРеквизита, ПолучитьСсылкуНаЗащищеннуюОбработку()); Если Значение <> Неопределено И ЗначениеЗаполнено(Значение) Тогда // М.С.Р. изменил 10.12.2012 16:14:25 Wd.ActiveWindow.View.ShowFieldCodes = -1; Wd.Selection.Text = Строка(Значение); Wd.ActiveWindow.View.ShowFieldCodes = 0; Иначе Wd.Selection.Font.Color = 255; КонецЕсли; Иначе // Это реквизит документа Значение = УПН_ОбщиеПроцедуры.ПолучитьЗначениеРеквизитаДляWord(СсылкаНаОбъект, ИмяРеквизита, ПолучитьСсылкуНаЗащищеннуюОбработку()); Если Значение <> Неопределено И ЗначениеЗаполнено(Значение) Тогда // М.С.Р. изменил 10.12.2012 16:14:25 Wd.ActiveWindow.View.ShowFieldCodes = -1; Wd.Selection.Text = Строка(Значение); Wd.ActiveWindow.View.ShowFieldCodes = 0; Иначе Wd.Selection.Font.Color = 255; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
4
Lelic
27.12.12
✎
10:26
|
недавно этим же мучалась. Я поставила метку в файле Word, там, где д.б. моя таблица
|
|||
5
новичок12345
27.12.12
✎
10:30
|
(3), (4) спасибо. Сейчас попробую
|
|||
6
новичок12345
27.12.12
✎
10:34
|
(4) а подскажи пожалуйста, как найти закладку нужную мне?
|
|||
7
Lelic
27.12.12
✎
10:35
|
У меня в документе таблицы не было, я ее добавляла
// вставим таблицу ТОВАРЫ //находим свою закладку в документе Word MSWord.Bookmarks("МояЗакладка").Select(); //MSWord.Application.Selection.TypeText(НарушенияТекст); Документ.Paragraphs.Add(); //подготовка таблицы: Rng = Word.Selection.Range; //Формируем заголовок: Rng.InsertAfter("№ *Наименование товара*Ед.изм.*Кол-во*Цена,руб*Стоимость,руб."); Rng.InsertParagraphAfter(); //сама таблица НумераторСтрок=0; СуммаИтого=0; КолСтрок=ЗапросТовары.Количество(); Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Если ВыборкаСтрокТовары.КоличествоТовара = 0 Тогда Продолжить; КонецЕсли; Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; НумераторСтрок = НумераторСтрок + 1; Товар = СокрП(ВыборкаСтрокТовары.НаименованиеПолное) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары) + ?(ВыборкаСтрокТовары.НомерТЧ = 3, " (возвратная тара)", ""); Rng.InsertAfter(Строка(НумераторСтрок)+"*"+Товар+"*"+ Строка(ВыборкаСтрокТовары.ЕдиницаИзмерения)+"*"+ Строка(ВыборкаСтрокТовары.КоличествоТовара)+"*"+ Формат(ВыборкаСтрокТовары.Цена,"ЧЦ=9; ЧДЦ=2; ЧГ=")+"*"+ Формат(ВыборкаСтрокТовары.Сумма,"ЧЦ=10; ЧДЦ=2")); Rng.InsertParagraphAfter(); СуммаИтого=СуммаИтого+ВыборкаСтрокТовары.Сумма; КонецЦикла; Rng.InsertAfter("* * *ИТОГО: * *"+Формат(СуммаИтого,"ЧЦ=10; ЧДЦ=2")); Rng.InsertParagraphAfter(); Rng.ConvertToTable("*"); |
|||
8
новичок12345
27.12.12
✎
10:36
|
(7) оу, спасибо!!! Очень выручила!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |