Из-за чего может съезжать макет двоичных данных (word)?
Процедура ПечатьДокумента(Форма) Экспорт
Если ЗначениеЗаполнено(Форма.Объект.Курс) Тогда
Попытка
Word1 = Новый COMОбъект("Word.Application");
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки());
КонецПопытки;
MainWord = Word1.Documents.Add();
Объект1 = Форма.Объект;
Попытка
Данные = ПолучитьДанные(Объект1);
СтруктураКурса = ПолучитьСтруктуруКурса(Объект1);
НазваниеВида= "Удостоверение форма 25";
Сч=Ложь;
Для Каждого Элемент Из Объект1.Свидетельства Цикл
Если Строка(Элемент.ВидВыдаваемогоСвидетельства) = НазваниеВида Тогда
Сч=Истина;
ИмяВременногоФайла = КаталогВременныхФайлов() + "tmpCart.doc";
Попытка
Word = Новый COMОбъект("Word.Application");
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки());
КонецПопытки;
Попытка
СсылкаМакет = ПолучитьМакетДокумента();
СсылкаМакет.Записать(ИмяВременногоФайла);
Word.Documents.Add(ИмяВременногоФайла);
ТекДок = Word.ActiveDocument;
//ФизЛицо = РазложитьСтрокуВМассив(Строка(Элемент.ФизическоеЛицо), " ");
Подписи = ПолучитьПодписи(Элемент.Свидетельство);
СтруктураФизЛица = ПолучитьСтруктуруФизЛица(Элемент.ФизическоеЛицо);
ТекДок.Bookmarks("City").Select();
ТекДок.Application.Selection.TypeText(""+Данные.ОрганизацияТерритория);
ТекДок.Bookmarks("IdentNum").Select();
ТекДок.Application.Selection.TypeText(""+Элемент.НомерСвидетельства);
ТекДок.Bookmarks("IdentDir").Select();
ТекДок.Application.Selection.TypeText(""+Подписи);
ТекДок.Bookmarks("FIO").Select();
ТекДок.Application.Selection.TypeText(Строка(Элемент.ФизическоеЛицо));
ТекДок.Bookmarks("DateOut").Select();
ТекДок.Application.Selection.TypeText(Формат(Объект1.Дата,"ДФ=dd.MMMM.yyyy") + " года");
ТекДок.Bookmarks("DateBegin").Select();
ТекДок.Application.Selection.TypeText(Формат(СтруктураКурса.ДатаНачала,"ДФ=dd.MM.yyyy"));
ТекДок.Bookmarks("DateEnd").Select();
ТекДок.Application.Selection.TypeText(Формат(СтруктураКурса.ДатаОкончания,"ДФ=dd.MM.yyyy"));
ТекДок.Bookmarks("Hours").Select();
ТекДок.Application.Selection.TypeText(""+СтруктураКурса.Часов);
ТекДок.Bookmarks("ProgName").Select();
ТекДок.Application.Selection.TypeText(""+СтруктураКурса.Дисциплина);
ТекДок.SaveAs(КаталогВременныхФайлов() + "Удостоверение форма 25 "+ Строка(Элемент.ФизическоеЛицо) +".doc");
MainWord.Activate();
//ТекДок.Tables(1).Select();
ТекДок.Select();
ТекДок.Application.Selection.Copy();
MainWord.Application.Selection.PasteAndFormat(16);
//MainWord.Application.Selection.InsertBreak(2);
ТекДок.Close();
Попытка
УдалитьФайлы(КаталогВременныхФайлов() + "Удостоверение форма 25 "+ Строка(Элемент.ФизическоеЛицо) +".doc");
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
Word.Quit();
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки());
Word.Quit();
КонецПопытки;
КонецЕсли;
КонецЦикла;
Если Сч Тогда
Попытка
УдалитьФайлы(КаталогВременныхФайлов() + "tmpCart.doc");
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
Word1.Quit();
КонецПопытки;
MainWord.PageSetup.Orientation = 1;
MainWord.PageSetup.TopMargin = 36;
MainWord.Application.Visible = Истина;
//MainWord.Application.WindowState = 2;
//MainWord.Application.WindowState = 1;
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НазваниеВида+" не был найден");
MainWord.Close(0);
Word1.Quit();
КонецЕсли;
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка: " + ОписаниеОшибки());
Word1.Quit();
КонецПопытки;
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка: " + "Заполните программу обучения!");
КонецЕсли;
КонецПроцедуры
Исходник
При печати