вывод параметров в надписи word и 1с обычные формы

1. evn-zorin 32 27.01.21 14:26 Сейчас в теме
Есть несколько надписей в файле word необходимо вывести в них данные.
как заготовку использовал данную статью
https://infostart.ru/1c/articles/79089/
, но оказалось не совсем рабочий вариант - заполняет только первый параметр.
может дело в выделении?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pyrkin_vanya 488 27.01.21 14:35 Сейчас в теме
4. evn-zorin 32 27.01.21 14:41 Сейчас в теме
(2)
формат(догд

не подходит, т.к. нужны именно "Надписи" в word и в них выводить текст.
3. user783001 27.01.21 14:39 Сейчас в теме
я делаю так
Попытка
			Документ = MSWord.Application.Documents(1); 
			Документ.Activate(); 
			
			Документ.GrammarChecked = 0;
        	Документ.ShowGrammaticalErrors = 0;	
			
			Select = MSWord.Application.Selection;
			
			// договор заполнение
            Замена = Документ.Content.Find;
			Замена.Execute("[НомерДКП]", Ложь, Истина, Ложь, , , Истина, , Ложь,  ОбщегоНазначения.ПолучитьНомерНаПечать(шапкадкп)); 
			
			
			датадлядог = формат(догдкп.догДата,"ДЛФ=DD");
			Замена = Документ.Content.Find;
			Замена.Execute("[ДогДАТА]", Ложь, Истина, Ложь, , , Истина, , Ложь, датадлядог); 
Показать
5. evn-zorin 32 27.01.21 14:42 Сейчас в теме
(3)
rd.Applicat

не подходит, т.к. нужны именно "Надписи" в word и в них выводить текст.
у вас просто параметры в тексте выделены квадратными скобками.

в word есть такая сущность - "надпись" - в неё можно вставлять текст, менять цвет и фон самой надписи.
вот в неё и хочется вставить текст(параметр).
6. retr0 27.01.21 14:47 Сейчас в теме
Шел 21 год, а люди до сих пор юзают Active Document и COMObject. РукаЛицо
pyrkin_vanya; +1 1 Ответить
7. user783001 27.01.21 14:50 Сейчас в теме
(6) не все перешли на управляемые формы и новые платформы...
8. retr0 27.01.21 14:53 Сейчас в теме
(7) Ну как бы есть универсальный метод который никак абсолютно не зависит от того какие ты используешь формы и платформы. А также абсолютно не зависим от наличия в целом пакета Office на компе.
13. user783001 27.01.21 15:02 Сейчас в теме
(8) интересно посмотреть на такое решение для 7,7...
12. evn-zorin 32 27.01.21 15:01 Сейчас в теме
(6)как по вашему можно сделать печатную форму под word если уже есть шаблон со стилями .dotx?
insurgut; +1 Ответить
14. retr0 27.01.21 15:16 Сейчас в теме
(12) https://infostart.ru/1c/articles/590918/ - Смотри и повторяй, можно просто взять как за основу, в целом как душе угодно. Файлы Word - набор XML. Тут все сводится к распаковки Word файла, чтению нужного XML файла, и изменения нужных значений. А затем сборка обратно в Word файл. Этот механизм в 1000 раз быстрее COMObject, Active Document. Нет зависимости от наличия установленного Word
15. evn-zorin 32 27.01.21 15:20 Сейчас в теме +2 $m
(14)на словах это всё красиво, а таблицу тоже через xml отрисуете?
16. retr0 27.01.21 15:27 Сейчас в теме +1 $m
(15)https://infostart.ru/1c/articles/259510/ - Лично за себя скажу, мне не доводилось решать проблемы с заполнением ТЧ в шаблоне. Но я ссылаюсь на этот пример в ссылке эта проблема также реализуема. Вот еще https://infostart.ru/public/675307/
18. FatPanzer 27.01.21 20:34 Сейчас в теме
(15) А в чем проблема с таблицами? Могу даже стили для таблиц нарисовать... https://infostart.ru/public/1293794/
20. evn-zorin 32 28.01.21 12:08 Сейчас в теме
(18)
о за себ

спасибо, попробую
23. evn-zorin 32 29.01.21 10:22 Сейчас в теме
(15)в общем решил делать через макет 1С, оказалось, что описания в Word при росте табчасти съезжают, всем большое спасибо.
10. retr0 27.01.21 14:59 Сейчас в теме
(9) В вопросе эта ссылка приведена, автор же указал, что не подходящий вариант
11. ls600 27.01.21 15:01 Сейчас в теме
(10) пардон по его ссылке не заходил)
17. vadim1011985 99 27.01.21 20:26 Сейчас в теме
Ну если на то пошло то я бы для начала посоветовал бы вам почитать Как работать с объектом Shape. Я бы попробовал реализовать следующим образом - для каждого объекта shape в шаблоне word задал бы имя . Это имя использовал бы в качестве ключа в структуре с заранее подготовленными параметрами . По ключе из коллекции Shapes получал бы конкретный объект и через свойство TextFrame менял бы текст в фигуре на нужный
19. PlatonStepan 38 28.01.21 08:00 Сейчас в теме
В ворде добавил разные объекты, в 1с описывается их обход, свойства получаем в попытке на этапе тестирования.

мWord = Новый COMОбъект("Word.Application");

//мWord.Visible = 0; 

мNewDoc = мWord.Documents;

мДок = мNewDoc.Add("C:\delme\Doc1.docx", 0, 0, 1);   

КоличФигур = мДок.Shapes.Count();

Для й = 1 По КоличФигур Цикл
	мДокФигура = мДок.Shapes.Item(й);
	
	Попытка
		Имя = мДокФигура.Name;
	Исключение
		Имя = "ERR";
	КонецПопытки;
	
	Попытка
		ОбъектРамкаТекст = мДокФигура.TextFrame;
	Исключение
		ОбъектРамкаТекст = "ERR";
	КонецПопытки;
	
	Попытка
		ОбъектРамкаТекст2 = мДокФигура.TextFrame2;
	Исключение
		ОбъектРамкаТекст2 = "ERR";
	КонецПопытки;
	
	Текст_1с = "";
	Текст2_1с = "";
	
	Попытка
		Текст = мДокФигура.TextFrame.TextRange.Text;
		мДокФигура.TextFrame.TextRange.Text = "1с:" + Текст;
		Текст_1с = мДокФигура.TextFrame.TextRange.Text;
	Исключение
		Текст = "ERR";
	КонецПопытки;
	
	Попытка
		Текст2 = мДокФигура.TextFrame2.TextRange.Text;
		мДокФигура.TextFrame2.TextRange.Text = "1с:" + Текст2;
		Текст2_1с = мДокФигура.TextFrame2.TextRange.Text;
	Исключение
		Текст2 = "ERR";
	КонецПопытки;
	
	Попытка
		Сообщить(СтрШаблон("%1: %2; TextFrame=%3; TextFrame2=%4; %5; %6; %7; %8", й, Имя, ОбъектРамкаТекст, ОбъектРамкаТекст2, Текст, Текст2, Текст_1с, Текст2_1с));
	Исключение
		Сообщить(СтрШаблон("%1 ошибка: %2", й, ОписаниеОшибки()));
	КонецПопытки;
КонецЦикла;
Показать


выдаёт:
1: Oval 1; TextFrame=COMОбъект; TextFrame2=ERR; 111212
; ERR; 1с:111212

;
2: Diagram 2; TextFrame=ERR; TextFrame2=COMОбъект; ERR; ERR; ;
3: Надпись 2; TextFrame=COMОбъект; TextFrame2=ERR; 888
; ERR; 1с:888

;


Описание объекта Shape и TextShape:
https://docs.microsoft.com/ru-ru/office/vba/api/word.shape
https://docs.microsoft.com/ru-ru/office/vba/api/word.shape.textframe
21. evn-zorin 32 28.01.21 15:11 Сейчас в теме
22. PlatonStepan 38 28.01.21 19:42 Сейчас в теме
(21) Ну вообще-то это же не решение, а фрагмент для отладки и описания решения.
Показывает, что запись текста работает, значит это то что надо.
Оставьте свое сообщение

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