helpf.pro
Регистрация
 +3 
Распечатать

Пример работы с общим макетом типа ActiveDocument в клиент-серверном варианте

Код 1C v 8.х
 //**********************************************************************************
//получаем макет на сервере, сохраняем в файл и передаем на клиента
&НаСервере
Функция ПолучитьДанныеМакета()
    АдресХранилища = Новый УникальныйИдентификатор();
    Макет          = ПолучитьОбщийМакет("Договор");
 
    ВременныйФайл = ПолучитьИмяВременногоФайла("doc");
    Макет.Записать(ВременныйФайл);
 
 Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл), АдресХранилища);
 УдалитьФайлы(ВременныйФайл);
 
 Возврат Адрес;
   
КонецФункции
//**********************************************************************************
//код сотрудника, нужно для создания уникального имени файла для каждого пользователя
&НаСервере
Функция КодПользователя(Пользователь)
 
 Возврат СокрЛП(Пользователь.Сотрудник.Код);
 
КонецФункции
//**********************************************************************************
//Ссылка - ссылка на договор(ссылка справочника, нужно для подстановки реквизитов)
//РеквизитыДляПечати - структура с нужными реквизитами
&НаКлиенте
Процедура ПечатьДоговора(Ссылка,РеквизитыДляПечати)
 
 Пользователь = ОбщегоНазначения.ТекущийПользователь();
 Каталог = КаталогВременныхФайлов();
 Каталог = ?(Прав(Каталог,1) = "\", Каталог, Каталог+"\");
 ПолноеИмяФайла = Каталог+"Договор_"+КодПользователя(Пользователь)+".doc";
 
    Попытка
        Индификатор = ПолучитьДанныеМакета();
        МакетДоговора = ПолучитьИзВременногоХранилища(Индификатор);
        МакетДоговора.Записать(ПолноеИмяФайла);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
 
 Попытка
  MSWord = Новый COMОбъект("Word.Application");
 Исключение
  Сообщить("Ошибка при попытке создать объект ""MS Word""!" + Символы.ПС +
  "Возможно приложение ""MS Word"" не установлено или установлено неправильно.", СтатусСообщения.Внимание);
 КонецПопытки;
 
 MSWord.Documents.Open(ПолноеИмяФайла);
 
 Попытка
  Документ = MSWord.Application.Documents(1);
  Документ.Activate();
 Исключение
  // Если произойдет ошибка, выводятся данные об ошибке, и объект закрывается.
  Сообщение = Новый СообщениеПользователю();
  Сообщение.Текст = ОписаниеОшибки();
  Сообщение.Сообщить();
  
  MSWord.Application.Quit();
  
  Возврат;
 КонецПопытки;
 
 
 //*******************************************
 //тут выполняем замену
 Попытка
  Замена = Документ.Content.Find;
  Замена.Execute("{ЧтоМеняем}", Ложь, Истина, Ложь, , , Истина, , Ложь,   "На что меняем");
 Исключение
 КонецПопытки;
 
 // Делаем видимым приложение и активизируем его.
 MSWord.Application.Visible = Истина;
 MSWord.Activate();
 
КонецПроцедуры

 
Разместил:   Версии: | 8.2 УП | 8.3 |  Дата:   Прочитано: 20526
 +3 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
COM-подключение к базе 7.7 из 8.2 1С 7
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь=
Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ;
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.