```1c
    ВремФайл = ПолучитьИмяВременногоФайла("doc");
    Word = Новый COMОбъект("Word.Application");
    Word.Displayalerts = 0;
    ДокументН = Word.Application.Documents.Add();
    ДокументН.SaveAs(ВремФайл,0);
    Word.Quit();

    ОбработкаОб = РеквизитФормыВЗначение("Объект");
    АктивныйДокумент = ОбработкаОб.ПолучитьМакет("МакетДоговораActiveDocument"); //ОболочкаActiveDocument

    КомОбъект = АктивныйДокумент.Получить();

    Word = КомОбъект.Application;
    Док=Word.Documents(1);
    Док.GrammarChecked=0;
    Док.ShowGrammaticalErrors=0;

    Док.Activate();
    Word.Selection.WholeStory();
    Word.Selection.Copy();

    Счетчик = 1;
    Пока Счетчик < 3 Цикл

    Replace = КомОбъект.Content.Find;

    FindText = "<<ФиоСокр>>"; // что искать - имя_шаблона
    MatchCase = Ложь; // использовать регулярные выражения
    MatchWholeWord = Истина; // искать слово целиком
    MatchWildcards = Ложь; // испоьзовать регулярные выражения
    MatchSoundsLike = Неопределено; // искать созвучные
    MatchAllWordForms = Неопределено; // искать все формы слова
    Forward = Истина; // искать вперед
    Wrap = Неопределено; // что должен вернуть Find-объект
    Format_ = Ложь; // использовать форматирование
    ReplaceWith = "С.П."; // текст, на который надо заменить имя_шаблона

    Replace.Execute(FindText,MatchCase, MatchWholeWord, MatchWildcards,MatchSoundsLike, MatchAllWordForms,Forward,Wrap,Format_, ReplaceWith );

    Replace = КомОбъект.Content.Find; //перед каждым вызовом Execute()
    Replace.Execute("<<ИНН_КПП_ОГРН>>", MatchCase,MatchWholeWord,MatchWildcards,MatchSoundsLike,MatchAllWordForms,Forward,Wrap,Format_,"7802022" );
    Replace = КомОбъект.Content.Find; //перед каждым вызовом Execute()
    Replace.Execute("<<Номер>>",MatchCase,MatchWholeWord,MatchWildcards,MatchSoundsLike,MatchAllWordForms,Forward,Wrap, Format_,Счетчик );

    Word.Selection.EndKey(6);

    Если Счетчик < 2 тогда
    Word.Selection.InsertBreak(7);
    Word.Selection.Paste();
    КонецЕсли;
    Счетчик = Счетчик + 1;
    КонецЦикла;

    имяФ = ПолучитьИмяВременногоФайла("doc");
    Док.SaveAS(имяФ);
    Двоичные = новый ДвоичныеДанные(имяФ);
    Док.Close(0);
    Возврат Двоичные;
```

Помогите с ошибками
Произошла исключительная ситуация (Microsoft Word): Ошибка команды
{ВнешняяОбработка.ПримерИспользованияActiveDocument_Word.Форма.Форма.Форма(8)}: ДокументН.SaveAs(ВремФайл,0);
{ВнешняяОбработка.ПримерИспользованияActiveDocument_Word.Форма.Форма.Форма(93)}: Двоичные = ЗаполнитьМакетНаСервере();

по причине:
Произошла исключительная ситуация (Microsoft Word): Ошибка команды

Если База стоит локально то ошибок нет, а если серверная такие ошибки
---
Если это печать при множественном выборе, тогда добавляйте разделитель страниц между печатью объектов. Принцип такой:
```1c
    Word.Documents.Add(ИмяВременногоФайла);

    Документ = Word.ActiveDocument;

    Документ.Content.Copy();
    ЭтоПервыйВывод = Истина;

    Для Каждого Стр Из ДанныеСотрудников Цикл

    Если ЭтоПервыйВывод = Ложь Тогда
    ОбластьДокумента = Документ.Content;
    ОбластьДокумента.Collapse(0);
    ОбластьДокумента.InsertBreak(7);
    ОбластьДокумента.Paste();
    Иначе
    ЭтоПервыйВывод = Ложь;
    КонецЕсли;

    Документ.Content.Find.Execute("[ФИО]", Истина, Истина, Ложь, , , Истина, , Ложь, Стр.ФИО, 2);
    // и т.д.

    КонецЦикла;
```
---
Еще возможны проблемы с правами именно на Windows Server. Из того, что находил и помогло:
---
Возможно пользователь под которым работает служба кластера не имеет доступа к каталогу сохранения.
---
Это какой-то каталог temp?
---
Это каталог в котором лежит файл по адресу который прописан в переменной "ВремФайл"
---
Сейчас посмотрю,а так все правильно,должно работать?
---
установлен ли на сервере WORD?
"Если База стоит локально то ошибок нет, а если серверная такие ошибки" локально на сервере запускаете или на своем рабочем месте?
---
да установлен. запускаю на своем рабочем месте
---
разрядность совпадает?
есть ли возможность запустить локально на сервере, а не на своем рабочем месте?
---
такой возможности к сожалению нет.
---
Насколько помню, были проблемы при работе с макетом ActiveDocument в клиент-серверном режиме. После переделки макета на двоичные данные и переноса работы с ком-объектом на клиент, проблема ушла.
---
не пойму как переделать
---
Файл из макета с типом Active document сохраняете на диск. Создаете макет с типом Двоичные данные и загружаете в него сохраненный файл. В модуле формы внешней обработки получаете двоичные данные из макета и передаете на клиент (либо через временное хранилище либо напрямую). На клиенте сохраняете двоичные данные во временный файл. Создаете на клиенте ком-объект и загружаете в него временный файл:
```1c
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    Word = Новый COMОбъект("Word.Application");
    Word.Documents.Add(ИмяВременногоФайла);
    Документ = Word.ActiveDocument;
```
---
```1c
    ДвоичныеДанныеМакета = ПолучитьИзВременногоХранилища(ПолучитьМакетСКлиента());
    ИмяФайлаВрем = ПолучитьИмяВременногоФайла(".doc");
    ДвоичныеДанныеМакета.Записать(ИмяФайлаВрем);

    Пока ТекущийИндекс < Выборка.Количество() Цикл

    ДокументWord = ПолучитьCOMОбъект(ИмяФайлаВрем);

    wdReplaceNone = 00000000;
    wdReplaceOne = 00000001;
    wdReplaceAll = 00000002;

    Замена = ДокументWord.Content.Find;
    Замена.Execute("{v8 }", , , , , , , , ,ш_ОргПолное, wdReplaceAll);
    Замена = ДокументWord.Content.Find;
    Замена.Execute("{v8 }", , , , , , , , ,ш_ДолжностьФамилия, wdReplaceAll);

    ДокументWord.Application.Visible = Истина;
    ДокументWord.Application.WindowState = 2;
    ДокументWord.Application.WindowState = 1;
    ДокументWord.Activate();

    ТекущийИндекс = ТекущийИндекс + 1;

    КонецЦикла;
```

Переделала под двоичные данные, теперь открывает макет на каждый шаг цикла, а мне надо в один word все чтобы выводилось
---
Ну так уберите из цикла строку
 ДокументWord = ПолучитьCOMОбъект(ИмяФайлаВрем);
---
Если это печать при множественном выборе, тогда добавляйте разделитель страниц между печатью объектов. Принцип такой:
```1c
    Word.Documents.Add(ИмяВременногоФайла);

    Документ = Word.ActiveDocument;

    Документ.Content.Copy();
    ЭтоПервыйВывод = Истина;

    Для Каждого Стр Из ДанныеСотрудников Цикл

    Если ЭтоПервыйВывод = Ложь Тогда
    ОбластьДокумента = Документ.Content;
    ОбластьДокумента.Collapse(0);
    ОбластьДокумента.InsertBreak(7);
    ОбластьДокумента.Paste();
    Иначе
    ЭтоПервыйВывод = Ложь;
    КонецЕсли;

    Документ.Content.Find.Execute("[ФИО]", Истина, Истина, Ложь, , , Истина, , Ложь, Стр.ФИО, 2);
    // и т.д.

    КонецЦикла;
```
---
я убираю ее наверх за цикл и документ создается один и только один раз выводит, а не два...
---
получается перезаписывает данные, а не создает новую страницу
---
у меня документ как двоичные данные хранится
---
Все заработало.
Всем спасибо