Формирование отчетов в MS Word #215303


#0 by Олень1
Проблема в следующем: есть шаблон в формате MS Word AKT.dot.Необходимо данные из формы документа перенести в этот шаблон. Вот пример кода:КлнецПроцедурыПри этом никакой замены не происходит. Что делаю не так??? Помогите Плиз...
#1 by pit
Направильно делаешь ... Все работает нормально...
#3 by Олень1
Людиииииииииииииииииии!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Помогите же......................
#4 by Макс 1С
Итак, про вывод данных в MS Word. Понятно, что технологию OLE можно использовать не только для обмена данными между двумя экземплярами 1С и работы с MS Excel. Word в этом смысле ничем не хуже. Особенно, когда почему-либо необходимо создавать в нем типовые документы (Приказ, Договор, Счет etc).Для начала можно скачать пример работы такой связки. А я, между тем, расскажу в двух словах, как это работает.Прежде всего, надо создать шаблон документа (.DOT), в котором определить именованные поля.Именованные поля вставляются так: Засветите панель инструментов Формы. На ней есть кнопочка "текстовое поле" - при нажатии на нее рядом с курсором будет вставлено именованное поле. Если на той же панели нажать кнопку "Параметры поля формы", откроется окно свойств поля, в котором можно задать его имя, тип, формат, макисмальную длину и значение по умолчанию.Дальше уже в 1С делаем так:1. Создаем объект Word.Basic и с его помощью создаем файл на основе нашего шаблона:Word.FileNew(Переменная_с_путем_к_шаблону);2. Заполняем определенные нами поля нужными значениями:Word.SetFormResult("MyFieldName", Нужное_значение);3. Делаем Word видимым:Word.AppShow;Вот, собственно, и все. Просто, быстро и надежно.Я же, со своей стороны, хотел бы напомнить, что в Word можно выводить и произвольный текст, произвольно его при этом форматируя. Попробуем вывести в Word небольшой текст, при этом первый абзац будет жирным и выравненным по центру, а второй - выравнен по левому краю, а цифры выделены красным. При этом "Директор", "Сумма" и "Валюта" - это поля на форме обработки:Есть несколько тонкостей, на которые следует обратить внимание:• вызывается объект "Word.Application";• нельзя передавать константы Word в качестве параметров функций - только их численные значения. А чтобы быстро узнать их значения, достаточно создать макрос в Word, а в нем воспользоваться процедурой MsgBox. Например, если передать ей wdRed в качестве параметра, то получим 6 - значение константы;• вместо True и False надо использовать 1 и 0;• "Documents" указывает на первый из открытых документов. Надежнее использовать "ActiveDocument" (ведь если Word уже был запущен, то ваш документ может оказаться не первым) - пример просто показывает, что работают оба варианта;• обратите внимание, что объектом "Range" может быть как весь объект другого вида (слово, абзац, документ), так и конкретная область (ср. "MyRange" и "Цифирь").Основным источником информации на эту тему является файл справки по VBA для MS Word (VBAWRD8.HLP - для Word97).взято из Будень девятый. 14/03/01
#5 by Uho
а я делаю так:
#6 by pit
Ну ты и нашел рухлядь....Есть и новее примеры...К тому же там с закладками не совсем удобно работать для документов производльной структуры...
#7 by Макс 1С
ну что было под рукой...
#8 by Олень1
Приведи пример. А то только критикуешь...
#9 by dmsob
#10 by dmsob
+ а в ворде делаешь элемент формы "текстовое поле" с именем Klient
#11 by Uho
+9 КрЕматорий
#12 by dmsob
зИнаю
#13 by Олень1
Всем спасибо.Сделал так. Создал в документе текстовое поле.
#14 by pit
это подходит только для документов с жесткой структурой...
#15 by Ferrum
2 Ага. а вот когда я столкнулся с тем что мне необходимо было в Word рисовать рисунки из 1с произвольной структуры и добавлять надписи, оказалось что я могу использовать только 1 параметр сразу при выводе, например хочу вставить текст. так вот. либо я вставляю текст, либо я убираю чёрную рамочку вокруг текста. Нельзя программно потом выделить этот объект, чтоб задать его параметры. и как обойти то не знаю
#16 by Доктор
Товарищ Олень №1!Все уже сделано за вас, причем очень давно. Отчет формируется обычным образом в родном формате mxl, после чего сохраняется в файл. Затем открывается форма внешней обработки, которой в качестве параметра передается имя файла сохраненного отчета. Обработка конвертирует таблицу mxl в файл MS Word.Остается добавить, что обработка с названием "Конвертация в Word" уже больше года лежит на проклубе.
#17 by Олень1
Дело в том, что мне дают готовые шаблоны в формате MS WORD. Раньше я все это рисовал в табличном редакторе, но формы начали менять слишком часто и мне это надоело. Поэтому я и решил формировать отчеты в Word-е. 5 минут на расстановку текстовых полей и 10 строк кода - и все готово.Спасибо всем кто откликнулся...
#18 by Путевый лист
Программа для учета договоров на Центральном рынке (порядка 2000 договоров) по 4 организациям, кроме того, есть договоры по аренде мест, а есть по аренде помещений. Вначале делал все в MXL, но при бесконечнйо переделке шаблонов договоров (юристы что-нибудь найдут) пришел к тому, что надо пользоваться шаблонами WORD (включая в них нужные названия полей там где это надо). Воспользовался библиотекой DOREP для VFP и пользователи теперь счастливы и я тоже, т.к. не надо из-за каждой фигни менять MXL
#19 by Олень1
>>Воспользовался библиотекой DOREP для VFPЭто что за библиотека? Какое отношение она имеет к 1С?
#20 by USSR
Очень спорная рекомендация. А форматирование, а различные шрифты. Бодаться в 1с писать нормальным образом текст договора, а потом еще как-то сообщать Ворду как эту кашу форматировать. Это поистине решение через одно место. OLE и придумали для более-менее человеческого взаимодействия приложений
#21 by Путевый лист
Да нет. Текст договора пишется в WORD (RTF с расширением SAB).Оперделенным способом (через угловые и квадратные скобки) указывается имя ДБФ и поля, а вот ДБФ формируется в 1С.
#22 by Путевый лист
А дальше из 1С вызывается программа DOREP.EXE c параметром (тем самым шаблоном SAB)
#23 by Бист
Максимально какой длины строку можно передать из 1С в Ворд?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям