Программное изменение текста в надписях Word
Печатная форма договора в шаблоне Word. Реквизиты в 1С.
Заполнение шаблона реквизитами: все стандартно, но в надписях долго получалось.
Получилось 🙂
Может кому пригодится.
- Описание
- Подробнее
Описание
// формируем файл
мWord = СоздатьОбъект("Word.Application");
мWord.Visible = 0;
мNewDoc = мWord.Documents;
мДок = мNewDoc.Add("D:\1С\БД клиентов\КС\1Сv7\Db\Договора\Шаблоны\Типовой_КуплиПродажи_1.dot", 0, 0, 1);
мОбъект = мДок.Content;
// подставляем значения по тексту договора - признак замены []
мОбъект.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,НомерДоговора,2);
мОбъект.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
мОбъект.Find.Execute("[ПечПокупатель]",0,0,,,,,,,СокрЛП(мПокупатель),2);
мОбъект.Find.Execute("[ПечРуководитель]",0,0,,,,,,,мПечОтветственноеЛицо,2);
мОбъект.Find.Execute("[ПечОснование]",0,0,,,,,,,СокрЛП(Основание),2);
// подставляем значения в реквизиты покупателя: надпись, признак замены []
СчетчикЦикла = 0;
КолВоНадписей = мДок.Shapes.Count;
Для СчетчикЦикла = 1 По КолВоНадписей Цикл
мНашли = мДок.Shapes.Item(СчетчикЦикла).Select();
Если Число(мДок.Application.Selection.ShapeRange.Type) = 17 Тогда
мДок.Application.Selection.Range.Find.Execute("[ПечПокупательРеквизиты]",0,0,,,,,,,СокрЛП(мПокупатель),2);
мДок.Application.Selection.Range.Find.Execute("[ПечЮрАдресПокупателя]",0,0,,,,,,,СокрЛП(мЮрАдресПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечПочтАдресПокупателя]",0,0,,,,,,,СокрЛП(мПочтПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечТелефонПокупателя]",0,0,,,,,,,СокрЛП(мТелефонПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечИННПокупателя]",0,0,,,,,,,СокрЛП(мИННПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечКПППокупателя]",0,0,,,,,,,СокрЛП(мКПППокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечРСПокупателя]",0,0,,,,,,,СокрЛП(мРСчетПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечБанкПокупателя]",0,0,,,,,,,СокрЛП(мБанкПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечКСПокупателя]",0,0,,,,,,,СокрЛП(мКСчетПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечБИКБанкаПокупателя]",0,0,,,,,,,СокрЛП(мБИКПокупателя),2);
мДок.Application.Selection.Range.Find.Execute("[ПечПокупательПодпись]",0,0,,,,,,,СокрЛП(ПодписьОтветственногоЛица),2);
КонецЕсли;
КонецЦикла;
// записываем файл
мДок.SaveAs(мИмяФайла);