gifts2017

Создание документа 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
344
.1235482409 558,69Kb 344 Бесплатно
Версия для 8.1
.1235498929 16,54Kb
25.09.09
228
.1235498929 16,54Kb 228 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Василий Демидов (Душелов) 09.08.08 04:37
Вообщем, идея, надеюсь, понятна ;)
2. Евгений Мартыненков (JohnyDeath) 09.08.08 10:45
Отличная идея!
Kolunya; El_Loco; +2 Ответить
3. Василий Демидов (Душелов) 09.08.08 14:47
Добавил пример для 1С 7.7.
В принципе, можно и класс для 1С++ написать...
4. Оракул Айметдинов (jhfrek) 13.08.08 19:58
5. Василий Демидов (Душелов) 14.08.08 01:56
А дальше все понятно. Можно и без документации по формату обойтись - посмотреть, какие теги на размер шрифта, цвет влияют и дополнить код.
Так же, как и добавить картинки, заполнение таблиц и прочее... Шаблон есть, а дальше - простор мысли ;)
6. Яр (shuka) 22.08.08 05:00
я правильно понял, что office ВААБЩЕ не нужен для запуска?
7. Василий Демидов (Душелов) 23.08.08 21:02
Вообще не нужен для формирования файла. Естественно, для его открытия офис нужен :)
8. homutke (homutke) 28.08.08 09:42
ММмм. а как же надпись без внешних компонент, если используются внешние упаковщики.
9. Василий Демидов (Душелов) 28.08.08 18:08
(8) Я для 7-ки не планировал делать, попросили.
8-ка пакует сама.
10. Евгений Мартыненков (JohnyDeath) 28.08.08 22:32
(8) 1с++ тоже умеет упаковывать/распаковывать ;)
11. Василий Демидов (Душелов) 29.08.08 09:42
(10) но 1с++ - это уже внешняя компонента ;)
12. fantasy2 (fantasy2) 21.12.08 16:50
в 77 нет метода Упаковать() !?
как оно без внешних компонент будет работать?
13. Василий Демидов (Душелов) 21.12.08 17:53
(12) - см. комменты 8-10, можно упаковать винраром через ЗапуститьПриложение()
14. Василий Демидов (Душелов) 13.02.09 19:37
Для получения демо-версии или покупки обращайтесь по контактам, указанным в профиле.
15. Василий Демидов (Душелов) 24.02.09 21:09
16. Maniac (Eugeneer) 25.02.09 09:30
И какой в этой обработке смысл? Какую экономическую выгоды она несет.
17. Василий Демидов (Душелов) 25.02.09 09:36
18. h00m (h00m) 25.02.09 10:27
плохо то, что формат docx не совсем универсален. согласен, есть, конечно плагины для 2003, но формат doc всё же универсальней, хотя docx лучше и удобнее - не спорю
19. Василий Демидов (Душелов) 25.02.09 10:32
(18) Это пока... docx как раз более универсальный за счет OpenXML.
20. Сергей Лосников (Lars Ulrich) 25.02.09 11:38
фантастишь :) пилюс нашальника
21. Алексей (uzerdv) 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) 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) 01.07.11 17:08
а объединение ячеек корректно обрабатывается ?
29. mark simf (mark-simf) 16.10.11 18:20
Интересная идея!!! Главное все просто и понятно) Давно искал нечто подобное и нашел)))..........
30. Константин Матвеев (koka) 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) 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) 01.03.13 11:11
супер вещь. после небольшого изменения работает под управляемым интерфейсом.
умный человек писал.
39. Кайрат Сапаров (Astrakhan_man) 26.02.14 10:12
Подскажите а как поставить защиту на сформированный документ WORD?
40. skunk (skunk) 02.04.14 08:51
не понял как плюсовать ... но зачет однозначно
41. Александр Зорин (Manticor) 08.05.14 16:36
(38) rasswet, скачать cf-ник, попытался загрузитm в чистую конфу - пишет структура конфигурации не совместима с текущей версией программы. Как Вы ее запустили?
42. Алекс Н (Чарик) 05.08.15 12:36
Просто класс обработка!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа