Заполнение таблицы в MS Word

1. Vladiimir 19.09.19 11:17 Сейчас в теме
Доброго времени суток, ребята!

Подскажите пожалуйста почему при таком алгоритме заполнения таблицы, строка таблицы почему-то добавляется не ниже как планировалось, а вообще в начало документа

Если НЕ ВыборкаТеговКолонок.Количество() = 0 И НЕ МассивСтрок.Количество() = 0 И 
			рбсПроверитьНаличие(ОбъектВорд,"{НачалоТаблицыОбязательныйПрефикс1}", "")=Истина Тогда
			
			ОбъектВорд.Selection.MoveDown();
			ОбъектВорд.Selection.SelectRow();
			ОбъектВорд.Selection.Cut(); //вырезаем строку  тегов строк
						
			Попытка  //строки итогов может не быть
				ОбъектВорд.Selection.SelectRow();
			Исключение
			КонецПопытки;
			
			Ном = 0;	
			Для Каждого Строка Из МассивСтрок Цикл
											
				Ном = Ном + 1;
				ВыборкаТеговКолонок.Сбросить();
				Пока ВыборкаТеговКолонок.Следующий() Цикл
															
					Результат = ПолучитьРезультатВыполненияДействия(ВыборкаТеговКолонок.Действие, Строка, Параметры);
					//Результат=ВыборкаТеговКолонок.Результат;
					Если ТипЗнч(Результат) = Тип("Структура") Тогда						
						
					Иначе
						ОбъектВорд=ВыполнитьЗамену(ОбъектВорд, Выборка.Представление, Результат);
						
					КонецЕсли;
				КонецЦикла;
				
				ОбъектВорд.Selection.MoveDown();
				
				ОбъектВорд.Selection.Paste(); //вставляем строку тегов строк
				
				Попытка //если есть строка итогов, нужно ее выделить перед вставкой новой строки
					ОбъектВорд.Selection.SelectRow();
				Исключение
				КонецПопытки;
				
			КонецЦикла;
			
		КонецЕсли;

Показать


Функция ВыполнитьЗамену(Object, Параметр, Значение)
  СтрокаПоиска = "{" + Параметр + "}";
  СтрокаЗамены = Строка(Значение);
//Необходимо выделить областей, в которой мы осуществляем замену
 // Object.Select();
 Object.ActiveDocument.Select();
//Получаем выделенную область
 // Selection = Object.Application.Selection;
 Selection = Object.Selection;
//Найдем все вхождения параметра и заменим его на нужное нам значение
  FindObject = Selection.Find;
  FindObject.ClearFormatting();
  Пока FindObject.Execute(СтрокаПоиска) Цикл
    Если ПустаяСтрока(СтрокаЗамены) Тогда
      Selection.Delete();
    Иначе
      Selection.TypeText(СтрокаЗамены);
    КонецЕсли;
  КонецЦикла;
//Отменим выделение
  Selection.Collapse();
  
  Возврат Object;
КонецФункции
Показать
Прикрепленные файлы:
Сформированный_Word.docx
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vladiimir 19.09.19 14:12 Сейчас в теме
Почему-то курсор после окончания цикла перемещается в начало документа

После цикла:

Пока ВыборкаТеговКолонок.Следующий() Цикл
                                                            
                    Результат = ПолучитьРезультатВыполненияДействия(ВыборкаТеговКолонок.Действие, Строка, Параметры);
                    //Результат=ВыборкаТеговКолонок.Результат;
                    Если ТипЗнч(Результат) = Тип("Структура") Тогда                        
                        
                    Иначе
                        ОбъектВорд=ВыполнитьЗамену(ОбъектВорд, Выборка.Представление, Результат);
                        
                    КонецЕсли;
                КонецЦикла;
Показать
3. Scop 62 20.09.19 16:37 Сейчас в теме
Не выбрана таблица, для заполнения таблиц надо обращаться к Document.Tables(НомерТаблицы)
4. Vladiimir 25.09.19 10:32 Сейчас в теме
(3) У меня в 1-ой строке есть специальный Тег, поэтому он таблицу находит и строку нужную выделяет. Проблема в том, что потом он её вставляет не туда куда нужно
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот