Работа с шаблоном MS Word, как с табличным (текстовым) документом.

13.06.10

Разработка - Инструментарий разработчика

Внешняя обработка с функциями, позволяющими обращаться к файлу в формате MS Word, как к табличному документу (например использовать методы: ПолучитьОбласть(), Вывести()). Можно использовать как объект, чтобы воспользоваться готовым кодом на языке 1С или, например, конструктором выходной формы отчета, внести небольшие изменения в код и получить отчет в Word.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
CreateWord (последняя версия от 10.05.2010)
.zip 19,51Kb
1262 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Бесплатно
Описание (02.02.2009)
.1233603161 122,41Kb
782 Скачать бесплатно

Примеров работы с MS Word достаточно много, однако практически всегда это заполнение шапки файла. В случае существования различных таблиц в теле файла, положение гораздо хуже. Если есть время на разработку, можно использовать методы ConvertToTable или макросы в Word – скорость заполнения таблиц будет явно быстрее, если же нужно подготовить сложный документ срочно - можно воспользоваться данной обработкой.

Шаблон файла достаточно прост и позволяет менять его пользователям (почти).
Файл в формате MS Word  рассматривается как набор областей, каждая из которых имеет набор параметров.
Область – это закладка в Word. Имена параметров должны быть заключены в квадратные скобки ([ИмяПараметра]).

В архиве находятся файлы:

  • WordTemplate.epf - основной объект, позволяющий работать с шаблоном.
  • ПримерРаботыСШаблономWord.epf - обработка, которая должна находится в той же директории и показывающая пример работы.
  • Шаблон.doc - простой шаблон в формате MS Word.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    202352    1116    410    

1021

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    35557    206    104    

195

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    23953    62    26    

92

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    16440    69    39    

88

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    34641    123    53    

165

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    1699    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    107141    249    100    

313

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    2859    6    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. halushka 03.02.09 04:29 Сейчас в теме
Плюс. 1.- оформление, 2.- простота.
33. K_A_O 553 15.09.09 11:13 Сейчас в теме
В функции Подготовить() заменяются шаблоны в областях:
CurrObject.Sections(1).Headers(1).Range
CurrObject.Sections(1).Footers(1).Range

Это и есть колонтитулы документа, у меня нормально срабатывает.
Но поскольку секций Sections может быть несколько - можно посмотреть в отладке в какой секции находятся колонтитулы.
Надо будет мне изменить и проверять в цикле.
34. fedor40 706 15.09.09 16:05 Сейчас в теме
Все допер. Вот обращение к нижнему колонтитулу:

Замена = Док.Объект.Application.ActiveDocument.Content.Sections(1).Footers(1).Range.Find;
Замена.Execute("ЮрАдресКонтрагента", , , , , , , , ,Выборка.Представление,2);

Но документ все равно альбомный. Где это может настраиваться?
cargobird; +1 Ответить
2. ValeriVP 1359 03.02.09 10:50 Сейчас в теме
вопросы:
реализована ли работа с таблицами, и в какой версии ворда это проверялось?
3. K_A_O 553 03.02.09 10:59 Сейчас в теме
(2) Именно для работы с таблицами объект и хорош, поскольку имитируется обычный вывод в табличный документ, и доступно достаточно сложное оформление.
Я планировал только 2003 word, но работа с закладками не изменилась в 2007 - так что там тоже работает, 97, 2000 - не проверял :-)
4. ValeriVP 1359 03.02.09 11:04 Сейчас в теме
так ты проверял работу с таблицами в 2003 и 2007?
Гномище; +1 Ответить
5. K_A_O 553 03.02.09 12:25 Сейчас в теме
(4) проверял. ты попробуй запустить пример. там есть работа с таблицами.
6. ValeriVP 1359 03.02.09 12:34 Сейчас в теме
(5) в обоих? я просто делал подобное, но нашел в разницу в поведении 2003 и 2007 ворда с таблицами. точно не скажу сейчас, в чем разница, но сделать одинаково для обоих не получилось
7. K_A_O 553 03.02.09 13:09 Сейчас в теме
(6) да я тоже сталкивался. можно сказать что на сложных таблицах эта обработка проверена для 2003 ворда. но там заполнялись достаточно сложные договора.
Функция Вывести() имеет два варианта:
// если Уровень=0 - использует обычную вставку (метод Paste())
// если Уровень>0 - считаем, что работаем с таблицей и используется метод (PasteAppendTable())
Функция Вывести(Область,Уровень=0) экспорт
8. Гномище 30.03.09 10:13 Сейчас в теме
что за фомат описания .р ? как его прочесть?
9. K_A_O 553 30.03.09 16:06 Сейчас в теме
(8) странно изменилось расширение, это вообще-то pdf, сейчас попробую сменить
10. Alex_Sun 23.06.09 10:11 Сейчас в теме
А если мне надо вставить в документ ворда штрих код?!
11. Душелов 4024 23.06.09 10:23 Сейчас в теме
(10) Генеришь штрихкод, сохраняешь, как картинку и вставляешь в ворд.
12. Душелов 4024 23.06.09 10:23 Сейчас в теме
Либо внедряешь активХ объект в ворд.
13. Alex_Sun 23.06.09 10:30 Сейчас в теме
А есть приме с актив иксом? я ни под каким соусом не смог его вставить туда.
Мысль с картинкой очень интересна:).
14. Душелов 4024 23.06.09 10:32 Сейчас в теме
А что с примером? Тот же barcode.ocx, вставляем в шаблон ворда и работаем так же, как и из 1С-ки. Но тут тоже есть проблема - у других пользователей активХ могут быть заблокированы в ворде в целях безопасности.

Так что самый правильный вариант - картинка.
15. Alex_Sun 23.06.09 10:38 Сейчас в теме
Разблокируем это не проблема. Может есть пример с картинкой где бы подглядеть интерфейс с вордом
16. Душелов 4024 23.06.09 10:40 Сейчас в теме
В MSDN можно подглядеть...
17. Alex_Sun 23.06.09 10:43 Сейчас в теме
Уточню еще разок в 2007 вворде при попытке вставить любой их ШК типа актив баркод или 1с штрих код. В списке объектов его нету.
18. Душелов 4024 23.06.09 10:52 Сейчас в теме
Как минимум из другого приложения через буфер обмена...
19. Kyrales 146 24.06.09 09:52 Сейчас в теме
Возможно ли как то это использовать с OpenOffice?
20. K_A_O 553 25.06.09 10:11 Сейчас в теме
21. Kyrales 146 26.06.09 05:05 Сейчас в теме
(20) очень бы хотелось. Вообще бы цены не было :)
22. tarasoff 08.07.09 08:06 Сейчас в теме
(20) А есть в планах на реализацию вывода в OpenOffice?
39. K_A_O 553 13.06.10 09:42 Сейчас в теме
23. fedor40 706 04.09.09 10:41 Сейчас в теме
А как в Ворде объявлять области.
Например, где определять границы подвала?

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
25. K_A_O 553 06.09.09 12:32 Сейчас в теме
(23), (24) Так вроде же все в описании написано
26. K_A_O 553 06.09.09 12:37 Сейчас в теме
(23) Область – это закладка в Word
(24) Мне не хотелось создавать новый объект (форму) в обработке только для выполнения метода Заполнить(). Поэтому вместо "Параметры.Заполнить()" вызывается "Параметры_Заполнить()"
24. fedor40 706 04.09.09 10:49 Сейчас в теме
Что за метод такой Параметры_Заполнить()? Нет в синтаксис помощнике.
ОбластьДетальныхЗаписей.Параметры_Заполнить(ВыборкаДетали);
27. fedor40 706 07.09.09 07:34 Сейчас в теме
С Закладками разобрался. Но вот новость. В обработки ничего не менял. Вывожу одну область ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Договор"); Все заполняется, но документ становится Альбомным.


28. K_A_O 553 07.09.09 10:04 Сейчас в теме
(27) похоже в закладке сохранены параметры страницы, может там новый раздел есть.

Можно попробовать
Док.Вывести(ОбластьДетальныхЗаписей,0);
29. fedor40 706 12.09.09 10:58 Сейчас в теме
Работает, но как обратиться к колонтитолу? Это не Заклазка в Ворде.
30. K_A_O 553 12.09.09 16:40 Сейчас в теме
(29) Колонтитулы заполняются при установке параметров у документа.
Т.е. если в колотитуле есть шаблон "[Номер]" - должно сработать

Док.Параметры.Вставить("Номер","111")
Док.Подготовить();

Если не сработает можно посмотреть функцию Подготовить() в обработке. Именно там пытаются установиться колонтитулы.
31. fedor40 706 15.09.09 09:12 Сейчас в теме
Ну ничего не получается.

Нужна простая процедура присвоения колонтитула.

Функция Подготовить() передает управление другой функции, та еще другой....
в конце FF.Execute( Ключ ,,,,,,,,, ВыбЗначение, 2)

Вот как мне ее применить к объекту Док = Init.ИнициализироватьДокумент();
Вот в чем вопрос.

Как взять и присвоить колотитул?


32. fedor40 706 15.09.09 09:46 Сейчас в теме
Отрабатывает, но колонтитул не заполняет. Вообще Find только для текста документа, колонтитул туда не входит.

Замена = Док.Объект.Application.ActiveDocument.Content.Find;
Замена.Wrap = 1; //чтобы не писать каждый раз Find
Док.Вывести(ОбластьДетальныхЗаписей, 0);
Замена.Execute("ЮрАдресКонтрагента", , , , , , , , ,Выборка.Представление,2);





35. fedor40 706 16.09.09 00:16 Сейчас в теме
Решил вопрос. Последняя стр в шаблоне была альбомной и после заполнения из 1с весь документ становится альбомным.
36. Поручик 4594 26.09.09 14:45 Сейчас в теме
Спасибо автору, очень пригодилось. Как раз сейчас делаю печать договоров по утверждённой форме.
37. zergey128 8 06.10.09 16:28 Сейчас в теме
Функция _ЗаменитьПараметр(FF, Знач Ключ, Знач ВыбЗначение)
	ВыбЗначение = СтрЗаменить(ВыбЗначение,Символы.ПС, "^p");
	// Чтобы обойти ограничение на 255 символов, делаем такой финт ушами 
	// Заменяем 230 символов и добавляем спец метку, которую заменяем на оставшиеся 
	Если (СтрДлина(ВыбЗначение) > 255) тогда 
		НовЗначение = Сред(ВыбЗначение,1,230) + "{{{continue_continue}}}"; 
//++++++++++++++	
               Если Сред(НовЗначение,230,1)="^" Тогда
			Сообщить("Ошибка преобразования апострофа ^ ! Необходимо изменить длину поля "+Ключ+", которое содержит:<"+НовЗначение+">");
		КонецЕсли;
//+++++++++++++++++
		// Если ничего не нашли то дальше можно не мучаться 
		Если НЕ _ЗаменитьПараметр(FF, Ключ, НовЗначение) тогда 
			return false ; 
		КонецЕсли ; 
		// Берем следующие 230 символов и дальше по рекурсии 
		return _ЗаменитьПараметр(FF,"{{{continue_continue}}}", Сред(ВыбЗначение,231)); 
	Иначе
		return FF.Execute( Ключ ,,,,,,,,, ВыбЗначение, 2);
	КонецЕсли ;
КонецФункции
Показать


эту функцию надо вот так дописать. потому как при разбиении строки если перед {{{continue_continue}}} попадется ^ т.е. получиться "ляляля^{{{continue_continue}}}" то ворд вывалит ошибку и весь вывод шаблона выпадет в исключение. быстрое решение - добавить/убрать пробел :)
additive; K_A_O; +2 Ответить
38. K_A_O 553 12.06.10 15:40 Сейчас в теме
40. pencroff 123 05.08.10 14:37 Сейчас в теме
Рекомендую. Один вопрос.
Как изменить обработки что бы шаблон можно было хранить в конфигурации.
А то не удобно в файле.
Пробовал как АктивИкс. Ничего не вышло.
Подставлял полученный из макета в CurrObject
Функция ПрочитатьМакет (Объект, ИмяМакета) экспорт
	Макет = Объект.ПолучитьМакет(ИмяМакета);
	CurrObject = Макет.Получить();	
	Если CurrObject=Неопределено тогда
		Сообщить("Не удалось получить макет: " +Макет + Символы.ПС , СтатусСообщения.Внимание);
		возврат ложь;
	КонецЕсли ;
	ПозицияКурсора = CurrObject.Content.End-1;
	CurrRange = CurrObject.Content;
	возврат истина; 
КонецФункции
Показать

Но выводит только окно Word. Что посоветуете?
41. K_A_O 553 08.08.10 09:35 Сейчас в теме
(40) может по простому, шаблон хранится как двоичный макет, сохраняется во временный файл и обрабатывается обычным образом.
MegaKent; +1 Ответить
42. pencroff 123 09.08.10 10:31 Сейчас в теме
(41) Пока просто положил файл в общую папку. Думал может есть более элегантное решение работать просто в памяти. Спасибо.
43. HarleyDavidson 27.09.11 20:23 Сейчас в теме
44. MOHAX1905 18.11.11 08:12 Сейчас в теме
Спасибо большое. Отличное пособие для начала работы с вордом!
45. ASoft 26.11.11 11:42 Сейчас в теме
46. gurovvv 06.12.11 14:23 Сейчас в теме
Спасибо! Весьма удобно и просто! Познал азы работы с вордом из 1С.
47. fixin 4291 06.12.11 14:45 Сейчас в теме
Я тоже такое делал. Поэтому сразу дам совет - "спилите мушку", т.е. хотел сказать, совсем не нужно использовать закладки. Шаблоны редактируют "девочки", они не поймут что такое закладки.
Обычно секция - это одна строка табличной части. Вот и ставьте прямо в строке табличной части или шапки в квадратных скобках название секции и по ней идентифицируйте секцию. Дешево и сердито, если надо - стучите, скину код.
Может самому выложить подобное? ХЗ, надо подумать.
48. K_A_O 553 06.12.11 15:07 Сейчас в теме
(47) Эту обработку я развивать не планировал, в случае прямой работы с rtf (http://infostart.ru/public/71345/) можно как закладки использовать, так и свои метки: квадратные скобки или фигурные, как в новых шаблонах 1С.
54. Мощный 24.04.13 23:57 Сейчас в теме
(48) Спасибо большое, даст Бог поможет ваша обработка ускорить разработку.. Клиенту нужен Вердовский файл с договором, который бы он мог бы корректировать самостотельно, Ежли у вас строчки заполняются, значится все ок..
u_n_k_n_o_w_n; +1 Ответить
49. trudyaga 16.12.11 16:04 Сейчас в теме
Думаю пригодится в будущем. СПАСИБО.
50. need1cc 07.01.12 19:17 Сейчас в теме
51. MeaTDeN 10.01.12 21:45 Сейчас в теме
52. chadilla 23.01.12 21:54 Сейчас в теме
53. nanik 6 01.05.12 03:28 Сейчас в теме
Спасибо, очень помогли Ваши комментарии по работе с колонтитулами.
55. spy-83 199 10.02.14 10:14 Сейчас в теме
Оставьте свое сообщение