Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Подскажите пожалуйста как на основе шаблона создать документ? Есть такая функция Функция ПолучитьМакетMSWord(знач ДвоичныеДанныеМакета, знач ИмяВременногоФайла = "") Экспорт Handler = Новый Структура("Тип", "DOC"); Попытка COMОбъект = Новый COMОбъект("Word.Application"); Исключение ВызватьИсключение(НСтр("ru = 'Ошибка при работе с приложением Microsoft Word. Необходимо проверить правильность установки приложения.'") + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; #Если НЕ ВебКлиент Тогда ИмяВременногоФайла = ПолучитьИмяВременногоФайла("DOC"); ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла); #КонецЕсли Попытка COMОбъект.Documents.Open(ИмяВременногоФайла); Исключение COMОбъект.Quit(0); COMОбъект = 0; Handler.COMОбъект = 0; УдалитьФайлы(ИмяВременногоФайла); ВызватьИсключение(НСтр("ru = 'Ошибка при открытии файла шаблона.'") + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Handler.Вставить("COMСоединение", COMОбъект); Handler.Вставить("ИмяФайла", ИмяВременногоФайла); Handler.Вставить("ЭтоМакет", Истина); Handler.Вставить("НастройкиСтраницыМакета", Новый Соответствие); Для Каждого ИмяНастройки Из НастройкиПараметровСтраницы() Цикл Попытка Handler.НастройкиСтраницыМакета.Вставить(ИмяНастройки, COMОбъект.ActiveDocument.PageSetup[ИмяНастройки]); Исключение // Пропустить, если настройка не поддерживается данной версией программы. КонецПопытки; КонецЦикла; Возврат Handler; КонецФункции Но к сожалению она открывает документ на основе normal.dot а не на основе переданного двоичными данными макета ДвоичныеДанныеМакета. Может нужно как-то иначе открыть док? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 18:05 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
Попробуй вместо Код: plaintext 1. сделать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 19:09 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
Дмитрий Зайцев, А как сделать что-то вроде пДок = COMОбъект.Documents.Open(ИмяВременногоФайла); пДок.AttachedTemplate = Template; Только вот естественно это не работает тк это не визуал бэйсик. Помнится мне что там должен быть метод доступный у всех объектов для установки свойств? Вроде бы Set? Те что-то вроде пДок.AttachedTemplate.Set("Path",Template); Может подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 11:22 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, Народ, подскажите кто знает? Уже все перепробовал. Как подменить шаблон у документа? Не открывает он как положено документ на основе .dot . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 13:59 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, мне просто малость смысл не понятен..ты хочешь брать и заполнять бланк какой то? а сделать просто папочку куда складывать эталон а потом пересохранять куда нужно не пойдет? мы так вроде делали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 16:06 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
Zerro, Это не я хочу. Это стандартный механизм так сделан. Как я понял он работает. Забыл упомянуть это в версии 8.2. Там все это делается на клиенте. В макете в двоичных данных сохраняется шаблон ворда, который передается в функцию - ПолучитьМакетMSWord(знач ДвоичныеДанныеМакета, знач ИмяВременногоФайла = "") . Далее он сохраняется в временную папку клиента. ИмяВременногоФайла = ПолучитьИмяВременногоФайла("DOC"); ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла); А затем открывается COMОбъект.Documents.Open(ИмяВременногоФайла); А дальше после открытия вызываются всякие разные заполнялки шаблона после получения макета с помощью этой функции. Но это уже не важно. Главное что шаблон открывается на основе Normal.dot, а не на основе подсунутого. Смысл этого ковыряния заключается в том, что было обнаружено, что на разных компах, когда документ выводится на печать в ворд выглядит по разному! А нужно чтоб одинаково везде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 17:30 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
Zerro, Ну вот так тут и делается, только не работает как нужно. Шаблон вроде как без стилей чтоли выводится? В общем по разному выглядит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 17:32 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, в макете хранится не шаблон (не .dot). Все правильно открывается. Что значит выглядит по разному на разных компах? Поясните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 17:34 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
DmitriyZ, Если не шаблон то что? Я нормально его открыл вордом и это шаблон. Просто его в двоичных данных зачем-то хранят (может так проще или для чего-то нужно). Объясняю что значит он выглядит по разному. На одном компе открываю - табличка выглядит как нужно( выравнивание по левому краю, нет отступов итд), на другом открываю - отсупы, переносы итд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 17:47 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81DmitriyZ, Если не шаблон то что? Я нормально его открыл вордом и это шаблон. Просто его в двоичных данных зачем-то хранят (может так проще или для чего-то нужно). Объясняю что значит он выглядит по разному. На одном компе открываю - табличка выглядит как нужно( выравнивание по левому краю, нет отступов итд), на другом открываю - отсупы, переносы итд там обычный файл *.doc с определенными тегами в нужных местах, куда нужно данные подставлять. Смотрите на компах настройки ворда. И попробуйте этот макет сохранить как *.doc и открыть полученнй файл на проблемном рабочем месте. Возможно, ситуация проясниться (может там дефолтный шаблон нормал исправили и сохранили). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 20:00 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
DmitriyZ, Так вот я о том же. То что вы Дмитрий сказали этож очевидно. Но я то и пытался сказать, что хочется сделать так, чтобы открывался документ на основе шаблона сохраненного, чтобы какие бы там по умолчанию шаблоны не были установлены, то всегда бы был приоритетным тот на основе которого создан документ. Те чтобы было все равно где я открываю этот документ. :) Я сегодня перерыл весь мсдн, но что-то пути не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 00:46 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81DmitriyZ, Так вот я о том же. То что вы Дмитрий сказали этож очевидно. Но я то и пытался сказать, что хочется сделать так, чтобы открывался документ на основе шаблона сохраненного, чтобы какие бы там по умолчанию шаблоны не были установлены, то всегда бы был приоритетным тот на основе которого создан документ. Те чтобы было все равно где я открываю этот документ. :) Я сегодня перерыл весь мсдн, но что-то пути не нашел. Вот пример кода: Код: plaintext 1. 2. 3. Он создает новый документ на основе стандартного вордовского шаблона и показывает его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 09:35 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
DmitriyZ, А вы не скажите как мне передать в вордовскую функцию перечисление из 1С Вот такаяфункция, но здесь ругается . Range.PasteAndFormat(ПечатнаяФорма.COMСоединение.wdFormatOriginalFormatting); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 13:43 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, используйте числовой аналог системного вордовского перечисления (см. Object browser) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 14:10 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
DmitriyZ, Не наверно не то. В общем я подробнее расскажу по проблеме и может быть вы знаете как ее решить. В общем это процедура печати. В ней открывается макет в котором док вордовский И открывается печатная форма тоже вордовская. Но В первом случае открывается шаблон простой документ с настроенными стилями и форматированием. А во втором просто документ по умолчанию, те на основе шаблона нормал дот. Те в первом Documents.Open(путькфайлу), а во втором Documents.Add(). Затем в шаблоне ищутся теги для замены типа {v8 nametag } копируются и вставляются в Печатную форму-простой вордовский док. Но при вставке форматирование и стили не копируются. Там используются такие методы: ОбластьВставки.Paste() ПечатнаяФорма.COMСоединение.ActiveDocument.Sections(1).Headers.Item(1).Range.Paste(); Я пробовал заменить на: ПечатнаяФорма.COMСоединение.ActiveDocument.Sections(1).Headers.Item(1).Range.PasteAndFormat(12);// wdFormatOriginalFormatting = 12? я думаю ОбластьВставки.PasteAndFormat(12) Но на самой первой строке ПечатнаяФорма.COMСоединение.ActiveDocument.Sections(1).Headers.Item(1).Range.PasteAndFormat(12); Вылезает ошибка что такоего метода не существует. Вот помгите мне пожалуйста с этим разобраться. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 14:37 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, для начала Const wdFormatOriginalFormatting = 16 (&H10) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 15:21 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
DmitriyZ, Я посмотрел, этот метод не получиться. В общем этот метод не пойдет наверно, там потому что в буфер кладется. А этот метод для тогд чтобы выделенные области вставлять а не изх буфера. Может получиться range.Selection и вставить его в другой документ этим методом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 16:53 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, В общем ищу метод который бы вставлял из буфера обмена с сохранением форматирования. Причем и для таблицы тоже. Поведение очень странное. Вставленное оказывается со всем личными стилями которые я добавил в шаблон, но в самих стилях в свойствах форматирование становится по умолчанию. Те оно не копируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 17:08 |
|
||
|
COM, ms word
|
|||
|---|---|---|---|
|
#18+
jeep81, В общем, может кому пригодиться, поэтому напишу. В печати Ком предложения было следующее. В двоичных данных был док вордовский. Он загружался, сохранялся на диске клиента и открывался. Программно открвался пустой документ. Ну дальше как положено поиск тэгов, замена. Только вот при вставке из буфера стили копируются без фонтов, не полностью. Почему не знаю, там нужно дальше ворд ковырять. Нашел вот такой метод Document.CopyStylesFromTemplate Method MSDN CopyStylesFromTemplate теперь после вставки сохраняются стили и соответственно нормально все печатается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2011, 11:12 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37563489&tid=1520806]: |
0ms |
get settings: |
7ms |
get forum list: |
25ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 418ms |

| 0 / 0 |
