1C & Word

1. DDD2005 04.10.06 09:36 Сейчас в теме
Добрый день!

Пытаюсь сделать договор в УСН при реализации товаров

Процедура Договор()

WordApp=СоздатьОбъект("Word.Application");
NewDoc=WordApp.Documents;
Док=NewDoc.Add("d:\Тест.doc");

Док.FormFields("ТекстовоеКонтрагент").Result =СокрЛП(Контрагент.ПолнНаименование);
Док.FormFields("ДатаДоговора").Result=СокрЛП(Договор.Наименование);
Док.FormFields("ДатаВозникновенияДог").Result=СокрЛП(Договор.ДатаВозникновенияОбязательства);
Док.FormFields("СокрФИО").Result=СокрЛП(ФИОКотраогент(Контрагент.ПолнНаименование));

Док.FormFields("НомерПаспорт").Result=СокрЛП(Контрагент.ДокументНомер);
Док.FormFields("СерияПаспорта").Result=СокрЛП(Контрагент.ДокументСерия);

Док.FormFields("ДатаВыдач").Result=СокрЛП(Контрагент.ДокументДатаВыдачи);
Док.FormFields("ДокВыдан").Result=СокрЛП(Контрагент.ДокументКемВыдан);

// Док.FormFields("ДатаДоговора").Result=СокрЛП(Договор.Наименование);
//Вставка текста на место закладки
//MyRange=Док.Bookmarks("ПростоЗакладка1").Range();
//MyRange.InsertAfter(СокрЛП(Текст2));
//
////Заполнение обїекта типа флажок
//Док.FormFields("Флажок1").CheckBox.Value = 1;
//Сохранение
// Док.SaveAs("d:\"+ТекущаяДата()+" "+Контрагент.Наименование+".doc",0);
Док.SaveAs("d:\"+ТекущаяДата()+" "+Контрагент.Наименование+".doc",1);
//Док.OpenAs("d:\"+Контрагент.Наименование+".doc",0);
//Выход
NewDoc.Visible = 1;
//NewDoc.Visible=True;
Док.Application.Quit();

КонецПроцедуры


Выдает ошибку на NewDoc.Visible = 1;
Как сделать чтобы договор автоматом печатался на принтере не открывая Word?

Как сделать чтобы договор спева открылся в Word?
Как вывести табличную часть договора в Word?
Как сделать этот отчет как внешний?


Где есть хорошие статьи или примеры по этой теме?

Можно примеры нормальные или статьи хорошие по этой теме
uvpolosatova; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. azernot 781 04.10.06 10:52 Сейчас в теме
В VB перечисление True имеет числовое значение -1. Попробуйте.
Вообще, посомтреть значения системных перечислений можно в редакторе VB через меню View - Object Browser, далее набираем текстовое представление системного перечисления (например "wdPrintAllPages") в нижней части экрана отобразится его значение "wdPrintAllPages = 0"

Как вы наверняка значете самый простой способ написания на языке VB это система записи макросов в приложениях Office. Включаете запись, выполняете необходимый набор действий, выключаете запись, смотрите.. Заменяете системные пречисления на их числовые значения, вставляете в 1С (как методы OLE объекта).

Табличную часть можно сделать по этой методе. Записать макрос по вставке таблицы, записать макрос присвоения значений в разные строки таблицы и запустить его в цикле по перебору строк ТЧ договора.

Внешним может быть любой отчёт (достаточно сохранить его как внешний).

Сам литературой не пользовался (чаще пользуюсь интернетом), но говорят что неплохая книжка "Системное программирование в 1С:предприятие 7.7/8.0" автор Андрей Михайлов
3. DDD2005 04.10.06 11:01 Сейчас в теме
Спасибо Azernot! видно пора VB изучать хотя начал только изучать 1С а теперь и это сразу....

По поводу NewDoc.Visible=True; выдает такую вот ошибку в Word 2003

NewDoc.Visible=True<<?>>;
{Документ.Реализация.Форма.Модуль(1315)}: Переменная не определена (True)
4. azernot 781 04.10.06 11:10 Сейчас в теме
Я и говорю! True - это системное перечисление VB (или встроенная функция, не суть). Из 1С эе ты можешь передавать только базовые типы данных (число, текст, дату - хотя не уверен).
True в числовом выражении равен -1 (минус единица).
Попробуй
NewDoc.Visible=-1;

И кстати, ты уверен что это метод документа?
Может надо
WordApp.Visible = 1 /(-1) ;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот