Программное изменение текста в надписях Word

06.12.10

Разработка - Универсальные функции

Печатная форма договора в шаблоне 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(мИмяФайла);

См. также

Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"

Универсальные функции Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    657    9    user706545_kseg1971    0    

4

1С 7.7 и новый 1С:Контрагент

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    1820    zhenyat    7    

6

Печать таблицы значений в 1С 7.7 при отладке

Универсальные функции Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4399    Zoltan_Black    11    

2

Установка принтера по умолчанию для 1С 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13286    4    alsen    3    

4

Формирование строки json в 1С: 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10094    malovandrey    2    

18

Как создать индикатор в 1С:Предприятии 7.7

Универсальные функции Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18672    2    HAMMER_59    6    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. АннаШ 120 07.12.10 13:36 Сейчас в теме
Вчера вечером наткнулась: у меня надпись + линии (для красоты). Так вот, если надпись с линиями сгруппирована - не работает, а как разгруппируешь - все о`кей.
Может еще у кого какие проблемы вылезли - делитесь :)
9. berserjk 07.08.15 09:39 Сейчас в теме
// рисуем колонтитулы
//вЕРХНИЕ
Fnd2 = Word.ActiveDocument.Sections(1).Headers(1).Range().Find;
Fnd2.ClearFormatting();
Fnd2.Forward = -1;
// Номер договора
поле="{401}";лЗначение=ПолучитьНомерДоговораДляПечати();
Если Fnd2.Execute(СокрЛП(лПоле),,,,,,,,,СокрЛП(лЗначение),2)=-1 Тогда КонецЕсли;
//дата договора
лполе="{402}";лЗначение=формат(Объект.Дата,"ДЛФ=DD");
Если Fnd2.Execute(СокрЛП(лПоле),,,,,,,,,СокрЛП(лЗначение),2)=-1 Тогда КонецЕсли;
//Нинжние
Fnd3= Word.ActiveDocument.Sections(1).Footers(1).Range().Find;
//аналагична
2. Nicholas 887 13.12.10 11:08 Сейчас в теме
Покажите, пожалуйста, файл шаблона для примера.
3. АннаШ 120 13.12.10 12:39 Сейчас в теме
Пожалуйста!
Все, что в [] заменяется программно. Наши реквизиты подставляются в сам шаблон и сохраняются.
Прикрепленные файлы:
Шаблон_Поставки.dot
4. Nicholas 887 13.12.10 14:45 Сейчас в теме
Спасибо. Случайно не в курсе как можно подобным образом сделать табличку с изменяемым количеством строк?
5. АннаШ 120 14.12.10 09:15 Сейчас в теме
Пока не пробовала. Если что-то получится - отпишусь.
6. Borisych 503 14.12.10 22:54 Сейчас в теме
у меня есть пример, напишите на почту grigorievab@list.ru завтра, вышлю
7. Nicholas 887 15.12.10 08:30 Сейчас в теме
Да я уже и сам разобрался. Прикольно, кстати, получилось.
8. ba2000 13 08.03.11 21:55 Сейчас в теме
:?: Подскажите пожалуйста, подобная автозамена не хочет работать, если шаблон в колонтитуле. С этим как то можно справиться?
10. nivlako 04.08.18 19:25 Сейчас в теме
спасибо за статью, мне помогло решить аналогичную проблему.
Оставьте свое сообщение