IE2017

Создание документа Word 2007

Программирование - Практика программирования

Создание документа Word 2007 без установленного Word'а, без внешних компонент, исключительно средствами 1С

Написано в ознакомительных целях.
При желании функционал можно расширить...

Использовать:

  1. Добавляем обработку в конфигурацию.
  2. Пишем код по примеру:

1С 8.х:

Процедура СоздатьДокументWord2007()
    Ворд2007 = Обработки.СозданиеДокументаWord2007.Создать();
	
    Док = "c:\test.docx";
	
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьЗаголовок1("Создание документов Word 2007 в 1С"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Создано Vasil aka Душелов'2008", "Italic"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Обработка, создающая документы, в формате Word 2007.
    |Предустановленный Word не требуется."));
	
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьЗаголовок2("Возможности:"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Заголовок 1"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Заголовок 2"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Заголовок 3"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Параграф"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Полужирный", "Bold"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Курсив", "Italic"));
    Ворд2007.Параграфы.Добавить(Ворд2007.СоздатьПараграф("Подчеркнутый", "Underline"));
	
    НовыйПараграф = Ворд2007.СоздатьПараграф("Текст может поддерживать мультиформаты строки, такие как ");
    НовыйПараграф.СписокСтрок.Добавить(Ворд2007.СоздатьСтрокуДок("полужирный и курсив", "Bold|Italic"));
    НовыйПараграф.СписокСтрок.Добавить(Ворд2007.СоздатьСтрокуДок(" или "));
    НовыйПараграф.СписокСтрок.Добавить(Ворд2007.СоздатьСтрокуДок("курсив и подчеркнутый", "Italic|Underline"));
    НовыйПараграф.СписокСтрок.Добавить(Ворд2007.СоздатьСтрокуДок(" "));
    НовыйПараграф.СписокСтрок.Добавить(Ворд2007.СоздатьСтрокуДок("и т.д., и т.п.", "Bold|Italic|Underline"));
    Ворд2007.Параграфы.Добавить(НовыйПараграф);
	
    Ворд2007.Упаковать(Док);
	
    Сообщить("Создан: " + Док);
КонецПроцедуры

1С 7.7:

Процедура СоздатьДокументWord2007()
    Док = "c:\test.docx";   
    Параграфы = СоздатьОбъект("СписокЗначений");
        
    Параграфы.ДобавитьЗначение(СоздатьЗаголовок1("Создание документов Word 2007 в 1С"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Создано Vasil aka Душелов'2008", "Italic"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Обработка, создающая документы, в формате Word 2007.
    |Предустановленный Word не требуется."));
        
    Параграфы.ДобавитьЗначение(СоздатьЗаголовок2("Возможности:"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Заголовок 1"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Заголовок 2"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Заголовок 3"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Параграф"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Полужирный", "Bold"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Курсив", "Italic"));
    Параграфы.ДобавитьЗначение(СоздатьПараграф("Подчеркнутый", "Underline"));
        
    НовыйПараграф = СоздатьПараграф("Текст может поддерживать мультиформаты строки, такие как ");
    НовыйПараграф.ДобавитьЗначение(СоздатьСтрокуДок("полужирный и курсив", "Bold|Italic"));
    НовыйПараграф.ДобавитьЗначение(СоздатьСтрокуДок(" или "));
    НовыйПараграф.ДобавитьЗначение(СоздатьСтрокуДок("курсив и подчеркнутый", "Italic|Underline"));
    НовыйПараграф.ДобавитьЗначение(СоздатьСтрокуДок(" "));
    НовыйПараграф.ДобавитьЗначение(СоздатьСтрокуДок("и т.д., и т.п.", "Bold|Italic|Underline"));
    Параграфы.ДобавитьЗначение(НовыйПараграф);
        
    Упаковать(Док);
        
    Сообщить("Создан: " + Док);
КонецПроцедуры

ИСТОРИЯ:

09.08.2008:

  • добавил пример для 1С 7.7 (не забываем, pkzipc.exe скопировать в каталог "BIN" 1С 7.7)

Скачать файлы

Наименование Файл Версия Размер
-
.1235482409 558,69Kb
25.09.09
372
.1235482409 558,69Kb 372 Скачать бесплатно
Версия для 8.1
.1235498929 16,54Kb
25.09.09
270
.1235498929 16,54Kb 270 Скачать бесплатно

См. также

Комментарии
1. Василий Демидов (Душелов) 3802 09.08.08 04:37 Сейчас в теме
Вообщем, идея, надеюсь, понятна ;)
2. Евгений Мартыненков (JohnyDeath) 290 09.08.08 10:45 Сейчас в теме
Отличная идея!
Kolunya; El_Loco; +2 Ответить
3. Василий Демидов (Душелов) 3802 09.08.08 14:47 Сейчас в теме
Добавил пример для 1С 7.7.
В принципе, можно и класс для 1С++ написать...
4. Оракул Айметдинов (jhfrek) 164 13.08.08 19:58 Сейчас в теме
5. Василий Демидов (Душелов) 3802 14.08.08 01:56 Сейчас в теме
А дальше все понятно. Можно и без документации по формату обойтись - посмотреть, какие теги на размер шрифта, цвет влияют и дополнить код.
Так же, как и добавить картинки, заполнение таблиц и прочее... Шаблон есть, а дальше - простор мысли ;)
6. Яр (shuka) 22.08.08 05:00 Сейчас в теме
я правильно понял, что office ВААБЩЕ не нужен для запуска?
7. Василий Демидов (Душелов) 3802 23.08.08 21:02 Сейчас в теме
Вообще не нужен для формирования файла. Естественно, для его открытия офис нужен :)
8. homutke (homutke) 47 28.08.08 09:42 Сейчас в теме
ММмм. а как же надпись без внешних компонент, если используются внешние упаковщики.
9. Василий Демидов (Душелов) 3802 28.08.08 18:08 Сейчас в теме
(8) Я для 7-ки не планировал делать, попросили.
8-ка пакует сама.
10. Евгений Мартыненков (JohnyDeath) 290 28.08.08 22:32 Сейчас в теме
(8) 1с++ тоже умеет упаковывать/распаковывать ;)
11. Василий Демидов (Душелов) 3802 29.08.08 09:42 Сейчас в теме
(10) но 1с++ - это уже внешняя компонента ;)
12. fantasy2 (fantasy2) 21.12.08 16:50 Сейчас в теме
в 77 нет метода Упаковать() !?
как оно без внешних компонент будет работать?
13. Василий Демидов (Душелов) 3802 21.12.08 17:53 Сейчас в теме
(12) - см. комменты 8-10, можно упаковать винраром через ЗапуститьПриложение()
14. Василий Демидов (Душелов) 3802 13.02.09 19:37 Сейчас в теме
Для получения демо-версии или покупки обращайтесь по контактам, указанным в профиле.
15. Василий Демидов (Душелов) 3802 24.02.09 21:09 Сейчас в теме
16. Maniac (Eugeneer) 25.02.09 09:30 Сейчас в теме
И какой в этой обработке смысл? Какую экономическую выгоды она несет.
17. Василий Демидов (Душелов) 3802 25.02.09 09:36 Сейчас в теме
18. h00m (h00m) 25.02.09 10:27 Сейчас в теме
плохо то, что формат docx не совсем универсален. согласен, есть, конечно плагины для 2003, но формат doc всё же универсальней, хотя docx лучше и удобнее - не спорю
19. Василий Демидов (Душелов) 3802 25.02.09 10:32 Сейчас в теме
(18) Это пока... docx как раз более универсальный за счет OpenXML.
20. Сергей Лосников (Lars Ulrich) 376 25.02.09 11:38 Сейчас в теме
фантастишь :) пилюс нашальника
21. Алексей (uzerdv) 13 27.05.09 02:42 Сейчас в теме
Есть ли возможность приобретения? oip:316615837
22. Alex_Sun (Alex_Sun) 23.06.09 10:34 Сейчас в теме
А можноли с ее помощью вставлять штрих код в документ ворда?
23. dushelov (Душелов) 23.06.09 10:36 Сейчас в теме
(22) Ну не надо в каждую тему-то то спамить...
24. Андрей Куканов (KukA.5) 480 10.09.09 00:50 Сейчас в теме
Василий, ты умница!
...и как ведущий покатушек :)
Спасибо.
25. dushelov (Душелов) 10.09.09 08:12 Сейчас в теме
26. Gen Tay (GenTay) 03.12.09 00:06 Сейчас в теме
Доброго времени суток! Идея хороша, но что-то у меня не вытанцовывается. Или я не понял идею. ввел код, добавил процедуру. Пишет "файл создан", но его нет на компе, есть все кроме него. В чем идея? Где файл?
27. Gen Tay (GenTay) 03.12.09 00:07 Сейчас в теме
Т.е. красоты как на скриншоте я не добился.
28. Dmitiry (ndacoder) 109 01.07.11 17:08 Сейчас в теме
а объединение ячеек корректно обрабатывается ?
29. mark simf (mark-simf) 16.10.11 18:20 Сейчас в теме
Интересная идея!!! Главное все просто и понятно) Давно искал нечто подобное и нашел)))..........
30. Константин Матвеев (koka) 73 18.10.11 14:38 Сейчас в теме
Отлично! Работает на "Ура"!
31. Алексей (ASoft) 02.01.12 10:52 Сейчас в теме
Идея интересная. Спасибо. Использую для создания печатных форм договоров с контрагентами.
32. amatisol amatisol (amatisol) 25.03.12 22:40 Сейчас в теме
Не вижу пользы от этого, бухгалтерия в doc редко работает, а если и работают то просто недоучки и сидят таблицы рисуют
33. Паха (VapPaha) 26.03.12 09:08 Сейчас в теме
не понятно применение, но интересно!
34. Сергей Племянников (Serge_ASB) 16.07.12 14:46 Сейчас в теме
Что входит в обработку
СозданиеДокументаWord2007?
Сам файл не скачивается от отсутствия "баллов", и подробности работы тоже неясны, т.к. нет обработки, на которую процедура ссылается.
35. larissa builova (larisab) 158 16.07.12 15:02 Сейчас в теме
(34) Файлы скачиваются без баллов, все работы Душелова открыты. К несчастью, его уже нет с нами, вечная память...
36. Сергей Племянников (Serge_ASB) 16.07.12 15:35 Сейчас в теме
(35) larisab,
знаком не был, но присоединяюсь к пожеланию вечной памяти.
P.S. посмотрю еще раз.
37. Сергей Племянников (Serge_ASB) 17.07.12 14:47 Сейчас в теме
файл создает, но при попытке открытия ругается что
"Не удается открыть файл из-за ошибок содержимого".
38. rasswet (rasswet) 80 01.03.13 11:11 Сейчас в теме
супер вещь. после небольшого изменения работает под управляемым интерфейсом.
умный человек писал.
39. Кайрат Сапаров (Astrakhan_man) 26.02.14 10:12 Сейчас в теме
Подскажите а как поставить защиту на сформированный документ WORD?
40. skunk (skunk) 02.04.14 08:51 Сейчас в теме
не понял как плюсовать ... но зачет однозначно
41. Александр Зорин (Manticor) 62 08.05.14 16:36 Сейчас в теме
(38) rasswet, скачать cf-ник, попытался загрузитm в чистую конфу - пишет структура конфигурации не совместима с текущей версией программы. Как Вы ее запустили?
42. Алекс Н (Чарик) 2 05.08.15 12:36 Сейчас в теме
Просто класс обработка!
Оставьте свое сообщение