вывод параметров в надписи 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) Ну вообще-то это же не решение, а фрагмент для отладки и описания решения.
Показывает, что запись текста работает, значит это то что надо.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день