1С8. Пример работы с файлом MS Word и макетом типа ActiveDocument

Для работы с договорами в 1С - интересное решение - использовать в качестве макета ActiveDocument, а не Табличный документ.

Так выглядит результат вывода из 1С в Word.

1С_activedocument_example_step_1

Порядок действий:
В конфигураторе оформляем макет как ActiveDocument.

1С_activedocument_example_step_1

1С_activedocument_example_step_2

1С_activedocument_example_step_3

- так выглядит в документе word строка с шаблоном.

Текст договора оформлен как макет ActiveDocument - просто вставим туда скопированное из файла Word содержимое. В текст включены переменные вида "{НомерДоговора}" которые будут заменены значениями. Замена производится простой операцией найти и заменить по тексту типа найти "{НомерДоговора}" -> заменить на "777".

// Выводим договор как ActiveDocument
// Параметры договора обозначены в тексте переменными вида "{НомерДоговора}"
Функция ПечатьДокумента() Экспорт
     
    // получаем макет, оформленный как ActiveDocument
    Договор = ПолучитьМакет("ActiveDocument_ДоговорПоставки"); // получим макет-ActiveDocument 
    MSWord = Договор.Получить();  
    Попытка
	Doc = MSWord.Application.Documents(1);
        Doc.Activate();         
        Replace = Doc.Content.Find;    
        
        FindText = "{НомерДоговора}";     // что искать - имя_шаблона
        MatchCase = Ложь;                 // использовать регулярные выражения        
        MatchWholeWord = Истина;          // искать слово целиком
        MatchWildcards = Ложь;            // испоьзовать регулярные выражения 
        MatchSoundsLike = Неопределено;   // искать созвучные 
        MatchAllWordForms = Неопределено; // искать все формы слова
        Forward = Истина;                 // искать вперед
        Wrap = Неопределено;              // что должен вернуть Find-объект 
        Format_ = Ложь;                   // использовать форматирование
        ReplaceWith = "777";              // текст, на который надо заменить имя_шаблона
        
        // кратко:        
        //Replace.Execute(FindText,Ложь,Истина,Ложь,,,Истина,,Ложь,ReplaceWith );        
        
        Replace.Execute(
            FindText, 
            MatchCase, 
            MatchWholeWord, 
            MatchWildcards, 
            MatchSoundsLike, 
            MatchAllWordForms, 
            Forward,
            Wrap,
            Format_,
            ReplaceWith );
            
        MSWord.Application.Visible = Истина;
        MSWord.Activate();
    Исключение
        Сообщить(ОписаниеОшибки());
        MSWord.Application.Quit();    
    КонецПопытки;    
 
    возврат 0;

КонецФункции

ПечатьДокумента();
Аналогичная по значению форма в MS Word "Найти и Заменить": Image




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга