Имя: Пароль:
1C
 
1C+WORD, Разбираю пример
0 AugustBlack
 
08.01.11
20:47
Привет! Я новичок. Есть задача экспортировать данные с 1С в Word. К примеру открыть шаблон с приказом и вставить данные заместо проставленных {DOCVARIABLE} в нем. Нашел пример с печатью, но он сразу выводит на печать документ т.е в моем случае открывает в MS OneNote с предпросмотром на печать(с замененными данными) и вместе с ним открывается мой шаблон word с незаменненым DOCVARIABLE. Как сделать так чтобы дата "12.07.2010" вставилась в word? Подскажите что не так или где глянуть такое, голова кругом уже:(  
Процедура Кнопка1Нажатие(Элемент)
   // Вставить содержимое обработчика.
   АктивныйДокумент = ПолучитьМакет("Макет");
   КомОбъект = АктивныйДокумент.Получить();
  КомОбъект.Application.Visible=1;

   КомОбъект.Variables.Item("ДатаПриказа").Value="12.07.2010";
   КомОбъект.Fields.UpDate();
   КомОбъект.PrintOut(); // распечатать док
КонецПроцедуры
1 tocaelectro
 
08.01.11
21:15
Если, я правильно понял... то параметр в документ можно вставить, примерно, так:
DocForRepl.Content.Find.Execute("<ДатаДоговора>", Ложь, Истина, Ложь, , , Истина, , Ложь, Формат(ВыборкаРаботники.ДатаПриема, "ДЛФ=ДД"));
2 tocaelectro
 
08.01.11
21:16
где DocForRepl:

MSWord = Макет.Получить();
DocForRepl = MSWord.Application.Documents(1);
DocForRepl.Activate();
3 tocaelectro
 
08.01.11
21:22
http://msdn.microsoft.com/en-us/library/bb179352.aspx вот описание параметров...
4 AugustBlack
 
09.01.11
08:31
tocaelectro спасиб, пошарил Find.Execute, вот что получилось
Извещение = ПолучитьМакет("Макет");
//получить объект из макета.
MSWord = Извещение.Получить();

Попытка
    Извещение = MSWord.Application.Documents(1);
    Извещение.Activate();
    //определим имена
    ПримДата = "12.07.2010";
    //получить объект, который будем использовать для поиска и замены.
    Замена = Извещение.Content.Find;
    Замена.Execute("[ДатаПриказа]", Ложь, Истина, Ложь, , , Истина, , Ложь, ПримДата);
    MSWord.Application.Visible = Истина;
    MSWord.Activate();
Исключение
    //если ошибка
    Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();
КонецПопытки;
   
я в неудомении почему не сработало..word также открывается без замененных данных(
5 AugustBlack
 
09.01.11
09:03
ps word 2010, 1C 8.1
6 skunk
 
09.01.11
09:05
что не сработало
7 AugustBlack
 
09.01.11
10:02
Сработало, убрал эти штуки [] оставил "ДатаПриказа", наверное автор того примера использовал их у себя в поле word'а, а я подумал что так писать нада в общем, панятн..
Заменило но теги {DOCVARIABLE остались, я понимаю так и должно быть или что-то не так..Эх:(
http://imglink.ru/show-image.php?id=059611e7962d7605625f08e5382652c3
8 AugustBlack
 
09.01.11
10:03
ps. Замена.Execute("ДатаПриказа", Ложь, Истина, Ложь, , , Истина, , Ложь, ПримДата);
9 AugustBlack
 
09.01.11
10:52
Разобрался, перемудрил с макетом туда не нада было поля(Меню Вставка - Поле - Автоматизация - DocVariable) вставлять как оказалось. Запутался в общем между 2х примеров,Книга знаний: v8: Заполнение полей документа Word (шаблон Active Document) и этим. Прост [ДатаПриказа] в любом месте поставил все заменило, спасиб всем!:)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн