вывод параметров в надписи word и 1с обычные формы
Есть несколько надписей в файле word необходимо вывести в них данные.
как заготовку использовал данную статью
https://infostart.ru/1c/articles/79089/
, но оказалось не совсем рабочий вариант - заполняет только первый параметр.
может дело в выделении?
как заготовку использовал данную статью
, но оказалось не совсем рабочий вариант - заполняет только первый параметр.
может дело в выделении?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
я делаю так
Попытка
Документ = MSWord.Application.Documents(1);
Документ.Activate();
Документ.GrammarChecked = 0;
Документ.ShowGrammaticalErrors = 0;
Select = MSWord.Application.Selection;
// договор заполнение
Замена = Документ.Content.Find;
Замена.Execute("[НомерДКП]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОбщегоНазначения.ПолучитьНомерНаПечать(шапкадкп));
датадлядог = формат(догдкп.догДата,"ДЛФ=DD");
Замена = Документ.Content.Find;
Замена.Execute("[ДогДАТА]", Ложь, Истина, Ложь, , , Истина, , Ложь, датадлядог);
Показать
(3)
не подходит, т.к. нужны именно "Надписи" в word и в них выводить текст.
у вас просто параметры в тексте выделены квадратными скобками.
в word есть такая сущность - "надпись" - в неё можно вставлять текст, менять цвет и фон самой надписи.
вот в неё и хочется вставить текст(параметр).
rd.Applicat
не подходит, т.к. нужны именно "Надписи" в word и в них выводить текст.
у вас просто параметры в тексте выделены квадратными скобками.
в word есть такая сущность - "надпись" - в неё можно вставлять текст, менять цвет и фон самой надписи.
вот в неё и хочется вставить текст(параметр).
(12) https://infostart.ru/1c/articles/590918/ - Смотри и повторяй, можно просто взять как за основу, в целом как душе угодно. Файлы Word - набор XML. Тут все сводится к распаковки Word файла, чтению нужного XML файла, и изменения нужных значений. А затем сборка обратно в Word файл. Этот механизм в 1000 раз быстрее COMObject, Active Document. Нет зависимости от наличия установленного Word
(15)https://infostart.ru/1c/articles/259510/ - Лично за себя скажу, мне не доводилось решать проблемы с заполнением ТЧ в шаблоне. Но я ссылаюсь на этот пример в ссылке эта проблема также реализуема. Вот еще https://infostart.ru/public/675307/
(15) А в чем проблема с таблицами? Могу даже стили для таблиц нарисовать... https://infostart.ru/public/1293794/
Ну если на то пошло то я бы для начала посоветовал бы вам почитать Как работать с объектом Shape . Я бы попробовал реализовать следующим образом - для каждого объекта shape в шаблоне word задал бы имя . Это имя использовал бы в качестве ключа в структуре с заранее подготовленными параметрами . По ключе из коллекции Shapes получал бы конкретный объект и через свойство TextFrame менял бы текст в фигуре на нужный
В ворде добавил разные объекты, в 1с описывается их обход, свойства получаем в попытке на этапе тестирования.
выдаёт:
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
м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:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот