Печатная форма в Ворд

1. user1226970 23.03.21 10:30 Сейчас в теме
Помогите разобраться!
Есть форма документа с ТЧ сотрудников,необходимо вывести в печатной форме эту таблицу .
пишу
	Word = Новый COMОбъект("Word.Application");
		Макет.Записать(ИмяВрем);
		ДокументВорд = Word.Documents.Open(ИмяВрем);
		Замена = ДокументВорд.Content.Find;

		    ДокументВорд.Tables(2).Select();
			ДокументВорд.Application.Selection.Copy();
			ДокументВорд.Application.Selection.MoveDown();
            а=1;   
		
		
		Для каждого Соответствие Из СтруктураДанныхПечати Цикл
			
			
			Если ТипЗнч(Соответствие.Значение) = тип("Структура") Тогда							
					Замена.Forward = false;
					Если НЕ  а=1 Тогда 
						ДокументВорд.Application.Selection.Paste();
						
					КонецЕсли;
					а=а+1;
				КонецЕсли;
				Для каждого СоответствиеСотр из Соответствие.Значение Цикл
					Замена.Execute("{"+СоответствиеСотр.Ключ+"}",,,,,,,,,Строка(СоответствиеСотр.Значение),2);
				КонецЦикла;
				Продолжить;
			
			Если НЕ Соответствие.Ключ = "ИмяМакета" Тогда
				
				Замена.Execute("{"+Соответствие.Ключ+"}",,,,,,,,,Строка(Соответствие.Значение),2);
				
			КонецЕсли;
		КонецЦикла;
Показать


Структура-содержит данные по сотруднику.Таблица заполняется несколькими строками шапки и одной строкой сотрудника.Что не так?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 23.03.21 10:43 Сейчас в теме
(1)
Таблица заполняется несколькими строками шапки
Может потому что вы всю таблицу копируете? Копируйте только вторую строку таблицы:
ДокументВорд.Tables(2).Rows(2).Range().Copy();
5. user1226970 23.03.21 10:48 Сейчас в теме
(2)
ДокументВорд.Tables(2).Rows(2).Range().Copy();

так выходит ошибка
Ошибка при вызове метода контекста (Rows): Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует.
10. user1226970 23.03.21 11:16 Сейчас в теме
(5)
ДокументВорд.Tables(2).Rows(2).Range().Copy();

Переделала макет(таблицу вновь добавила),без изменения кода -теперь выходит шапка для каждого сотрудника и он сам))
11. user1226970 23.03.21 11:19 Сейчас в теме
(5)Если подставить ДокументВорд.Tables(2).Rows(2).Range().Copy(); то теперь ошибка
Ошибка при вызове метода контекста (Copy): Произошла исключительная ситуация (Microsoft Word): Метод или свойство недоступны, поскольку выделенный текст отсутствует.
3. soft_wind 23.03.21 10:45 Сейчас в теме
(1) а простые варианты не предлагать?
типа с помощью макета сформировать обычный ТабличныйДокумент
с шапками с таблицами итогами и т.д.
и сохранить его в Ворд .docx!!!
а???
4. user1226970 23.03.21 10:45 Сейчас в теме
6. SlavaKron 23.03.21 10:56 Сейчас в теме
(5) Видимо, в вашем шаблоне таблица состоит из одной строки.
user1226970; +1 Ответить
12. user1226970 23.03.21 11:32 Сейчас в теме
7. soft_wind 23.03.21 11:04 Сейчас в теме
(4) так в результате Вордовский документ и получается
только в одном случае вы его легко и просто создаете
а в другом, ... ну вот как сейчас
8. user1226970 23.03.21 11:04 Сейчас в теме
(7)нет,нужно сразу в ворде
9. user1226970 23.03.21 11:05 Сейчас в теме
в шаблоне шапка и строка с параметрами(
не пойму что надо сделать,в этом Ворде нифига не понимаю
13. retr0 23.03.21 11:40 Сейчас в теме
я бы ответил, но какой в этом смысл, если чуть ли не каждый день такие вот ребята задают тут один и тот же вопрос, даже банально не поискав на форуме ответов.
15. user1226970 24.03.21 03:20 Сейчас в теме
(13) не утруждайтесь,не отвечайте)
16. retr0 24.03.21 06:36 Сейчас в теме
17. retr0 24.03.21 10:41 Сейчас в теме
(15) Забавно, что ты уже создавала такую тему во-первых, а во-вторых, я тебе давал статью на реализацию. И вот ты снова дублируешься
18. user1226970 24.03.21 11:25 Сейчас в теме
(17)во- первых -вы),во-вторых,я написала,что в Ворде не сильно разбираюсь,но пытаюсь.И от вас мне статей никаких не приходило.Я думаю на этом диалог закончен)Проблема решена.Спасибо SlavaKron за бескорыстную помощь,я думаю форум для этого и нужен,чтобы делится опытом и помогать начинающим)Хорошего Вам дня!)
19. retr0 24.03.21 12:03 Сейчас в теме
(18) Нет - ТЫ, я здесь не на приеме Королевы Англии, чтобы соблюдать бесполезные правила этикета. Особенно находясь в теме форума. И во-вторых, надо лс иногда проверять, а не молоть чепуху.
14. SlavaKron 23.03.21 12:01 Сейчас в теме
Небольшой пример для вашего случая:
Таблица = Документ.Tables(1);
Таблица.AllowAutoFit = Ложь;

Таблица.Rows(2).Range().Copy();

Замена = Документ.Content.Find;
НомерСтроки = 1;

Для каждого Структура Из СтруктураДанныхПечати Цикл		
	
	Если НомерСтроки > 1 Тогда
		
		КонецТаблицы = Таблица.Range();
		КонецТаблицы.Collapse(0);
		КонецТаблицы.Paste();
		
	КонецЕсли;
	
	НомерСтроки = НомерСтроки + 1;
	
	Для каждого КлючИЗначение из Структура Цикл
		Замена.Execute("{"+КлючИЗначение.Ключ+"}",,,,,,,,,Строка(КлючИЗначение.Значение),2);
	КонецЦикла;
	
КонецЦикла;
Показать
В прикреплении: скрин шаблона, результата и обработка.
Прикрепленные файлы:
ВнешняяОбработка2.epf
user1226970; +1 Ответить
Оставьте свое сообщение

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