PDA

Просмотр полной версии : Экспорт документов из 1С 8.0 в Word



ReeP
13.02.2008, 08:29
Просьба кто может подсказать.
В нете лазил, что-то не очень чего интересного не налазил, может криво лазил :(
Необходимо текст записывать в документ ворд, разного размеру, жирный, курсив, с колонками.
Если у кого есть пример программного кода, выложите, буду очень признателен или ссылку где почитать про это, а еще лучше справочник по работе в 1с с word :)

Yana1282
13.02.2008, 08:44
А чем Вам эксель не нравится?

ReeP
13.02.2008, 08:52
А чем Вам эксель не нравится?
Эксель предназначен в основном для работы с таблицами, а мне надо тупо выводить текст, как инструкцию к примеру... смысл мне эксель в этом плане мучать. Конечно можно, но получиться более муторно.

Yana1282
13.02.2008, 08:58
Получится намного проще с таблицами, и текст в нужное место вывести проще, не зря же большинство печатных форм делаются с помощью табличных документов, да и информацию о выводе в Excel в нете найти проще, даже конкретные куски кода.
А задачу стоит поставить конкретнее - возможно, Вы выбрали не самый простой способ ее решения.

ReeP
13.02.2008, 09:03
Excel в нете найти проще, даже конкретные куски кода.
Эксель, да без проблем нашел и давно работаю.. но просто для этой моей задачи мне кажеться не очень подходит Эксель.
Задача такого плана: Есть текстовый файл, в нем идет сплошняком текст(имееться некоторые закономерности его расположения): его надо красиво отредактировать и вывести в три колонки.
Конечно 1С далеко не идел для решения такой задачи, но просто вспонимать другой язык не особо есть время да и столкнусь с теми же проблемами.

Утюг
13.02.2008, 09:25
Никогда с вордом не работал, но я бы делал так:
в самом ворде включил запрись макроса и разбил бы текст руками.
потом посмотрел что там за команды в макросе и попытался вызывать
из 1с, так же как и при связке 1с-excel

ReeP
13.02.2008, 09:31
Никогда с вордом не работал, но я бы делал так:
в самом ворде включил запрись макроса и разбил бы текст руками.
потом посмотрел что там за команды в макросе и попытался вызывать
из 1с, так же как и при связке 1с-excel
Уже так экспереминтировал, пока нужных плодов идея не принесла. Там в VBA он работает через Selections,а в 1С как я понял надо через Paragraph работать, с первым работать получаеться, а вот еще добавить... :(
Потом еще буду пробывать.

Просто думал, может кто-то уже такое делал и есть готовый код.

ReeP
13.02.2008, 10:32
Всем спасибо, вроде уже разобрался.

hecz
13.02.2008, 15:38
Если не сложно то Напиши как ты решил эту проблему

ReeP
13.02.2008, 16:13
Если не сложно то Напиши как ты решил эту проблему
Создаешь макет документа как "Active document" с указанием на какой-то вордовский документ, который предварительно можешь отформатировать как нравиться, по полям и т.д.

в програмном коде вызываешь макет:

АктивныйДокумент = ПолучитьМакет("Макет");
КомОбъект = АктивныйДокумент.Получить();
КомОбъект.ActiveWindow.Visible = Истина; // чтобы было открытое окно ворда

Теперь обрабатываем строки ворда через массив Paragraphs, первая строка существует по умолчанию остальные надо добавлять:

КомОбъект.Paragraphs.add();
НумераторПараграфа=НумераторПараграфа+1;
КомОбъект.Paragraphs(НумераторПараграфа).Range.Fon t.Italic = Ложь;
КомОбъект.Paragraphs(НумераторПараграфа).Range.Fon t.Bold = Ложь;
КомОбъект.Paragraphs(НумераторПараграфа).Range.Fon t.Size = 10;
КомОбъект.Paragraphs(НумераторПараграфа).Range.Tex t=СтрокаДляВывода;

вместо переменой НумераторПараграфа можно использовать КомОбъект.Paragraphs.count() чтобы получать номер последнего.

Этот метод который я нашел, не думаю, что самый правильный, но рабочий.