|   |   | 
| 
 | Печатная форма в Word (БСП) и параметры страницы | ☑ | ||
|---|---|---|---|---|
| 0
    
        andrewks 18.08.12✎ 15:10 | 
        сварганил печатную форму с макетом в Word (БСП), всё, вроде, хорошо, и колонтитулы, и форматирование. но осталась одна проблемка: в выходном документе параметры страницы устанавливаются в стандартные, а не берутся из макета. из-за этого вся красота документа, естественно, портится.
  как побороть? | |||
| 1
    
        andrewks 18.08.12✎ 16:52 | 
        ап, что-ли     | |||
| 2
    
        andrewks 18.08.12✎ 17:00 | 
        мдэ, с OpenOffice дела ещё хуже - слетают не только параметры страницы, но ещё шрифты и выравнивание некоторых строк     | |||
| 3
    
        andrewks 18.08.12✎ 18:00 | 
        итак, настройки от макета-шаблона нужно передавать так:
  
 для опенофиса параметры страницы перекочёвывают нормально, но проблема с шрифтами и выравниванием некоторых строк так и не побеждена. для ms-офиса параметры не устанавливаются. как показала отладка, из-за того, что самые нужные параметры приходят из Word'а некорректно. например, имеем такой тестовый код: 
 часть настроек приходит нормально, но некоторые, например, так: TopMargin = 9 999 999 BottomMargin = 9 999 999 при этом, если открытие документа заменить на создание нового: COMОбъект.Documents.Add(); то все настройки приходят нормально: TopMargin = 56,70000076293945 BottomMargin = 56,70000076293945 куда рыть? | |||
| 4
    
        andrewks 18.08.12✎ 18:25 | 
        проверил БСП вплоть до 2.1.1.14 - везде настройки запрашиваются через ActiveDocument.  однако эксперименты на моём офисе (Office XP SP3/2002) показали, что правильные настройки после Documents.Open() нужно искать через COMОбъект.Documents.Item(1).PageSetup[ИмяНастройки]
  если у кого есть возможность потестить на офисах 2003 и выше, отпишитесь, пожалуйста, о поведении при стандартном БСП-шном доступе через ActiveDocument | |||
| 5
    
        andrewks 18.08.12✎ 20:46 | 
        Documents.Item(1) - сторно, не всегда отрабатывает. теперь тяну через Sections.
  я, конечно, исправил посредством патча модуля УправлениеПечатьюMSWordКлиент, но хотелось бы мнений других товарищей по этому вопросу | |||
| 6
    
        andrewks 18.08.12✎ 22:02 | 
        - доктор, мне кажется, что меня все игнорируют...
  - следующий! | |||
| 7
    
        IamAlexy 18.08.12✎ 22:09 | 
        долго долго всячески разные формы делал
  в итоге пришел к выводу что форма в ворде имеет смысл только в том случае, если макет будут делать сами пользователи. когда программист делает печатную форму - на 8ке вообще похрен в чем выводится ибо простой табличный документ можно сохранить в 100500 различных форматов соответственно возня с вордом, опенофисом и их глюками/особенностями просто напросто теряет смысл. а как правило пользователи тупы и никто не хочет заморачиваться с шаблонами. | |||
| 8
    
        andrewks 20.08.12✎ 08:45 | 
        итак, дальнейшие наблюдения показали:
  1. слетающее форматирование в шаблоне ODT наблюдалось в OOo 3.3, но в LO 3.4-3.5 ничего не слетает, всё выводится корректно безо всякого "допила" 2. по поводу Word'а с его параметрами "9999999", всё-таки, хотел бы услышать мнения и опыт личного применения | |||
| 9
    
        andrewks 20.08.12✎ 09:11 | 
        типа, ап     | |||
| 10
    
        andrewks 20.08.12✎ 09:47 | 
        граждане, не будьте равнодушными, не проходите мимо     | |||
| 11
    
        Karambol 20.08.12✎ 09:50 | 
        Не знаю, поможет ли, но я подобную проблему решал так: в шаблоне выделял весь текст, потом Изменить стили - По умолчанию и сохранял.     | |||
| 12
    
        andrewks 20.08.12✎ 10:07 | 
        (11) со стилями, как раз, сейчас все проблемы решил. осталась проблема с установкой параметров страницы при печати в Word при использовании стандартного кода БСП. из-за этого прихшлось делать патч в
  УправлениеПечатьюMSWordКлиент.ПолучитьМакетMSWord(): 
 т.е. на любую конфу внешку уже не накатишь - надо или патч делать, или смириться с расползающимися полями. вот этот момент хочу, чтобы потестили форумчане, особенно тестовый код из (3) - у кого как и на каких версиях MSoffice выводятся параметры страницы | |||
| 13
    
        andrewks 20.08.12✎ 11:23 | 
        ^ ^     | |||
| 14
    
        andrewks 20.08.12✎ 15:02 | 
        ок, зайдём с другой стороны.
  вот готовая обработка для тестирования (1с 8.2 УФ): http://yadi.sk/d/yrSFqtXhHQMA просьба, у кого есть установленные MS Office версий 2003 и выше, и кому не жалко потратить лишних 3-5 минут, - проверьте, пожалуйста, как у вас будут выводится значения настроек страницы больше всего интересуют: TopMargin/BottomMargin/LeftMargin/RightMargin просьба указать версию MS Office, и в каком из способов чтения настроек были получены реальные значения (нереальные - это если много девяток: TopMargin = 9 999 999 ) я рассчитываю на вашу помощь! | |||
| 15
    
        pumbaEO 20.08.12✎ 15:11 | 
        ща заценим.     | |||
| 16
    
        andrewks 20.08.12✎ 15:13 | 
        (15) спасибо, друг! а то уже думал, что тема так и затухнет в одиночестве     | |||
| 17
    
        pumbaEO 20.08.12✎ 15:15 | 
        http://screencast.com/t/vgiYVJYyzz , office 2007     | |||
| 18
    
        andrewks 20.08.12✎ 15:19 | 
        (17) вот жешь чёрт, а на office xp глючит через ActiveDocument.PageSetup. спасибо за помощь!
  у кого есть другие версии (2003, 2010, 2012) - хотелось бы тоже узнать, как дела обстоят на этих версиях | |||
| 19
    
        pumbaEO 20.08.12✎ 15:27 | 
        2003 нормально.  9999999999 - не было.     | |||
| 20
    
        dk 20.08.12✎ 15:28 | 
        хз, у меня вообще зависает в конфигураторе на попытке маке тпоглядеть     | |||
| 21
    
        dk 20.08.12✎ 15:29 | 
        маке = макет     | |||
| 22
    
        andrewks 20.08.12✎ 15:30 | 
        (20) а зачем ты хочешь смотреть макет в конфигураторе? =)  там двоичные данные, вообще-то     | |||
| 23
    
        andrewks 20.08.12✎ 15:31 | 
        (19) ага, спасибо огроменное. будем считать это глюком конкретно office xp. хоть будет обозначен проблемный круг на будущее     | |||
| 24
    
        dk 20.08.12✎ 15:33 | 
        любопытно же
  виснет просто если список макетов раскрыть | |||
| 25
    
        andrewks 20.08.12✎ 15:33 | 
        (24) какой релиз платформы?     | |||
| 26
    
        andrewks 20.08.12✎ 15:33 | 
        сохранял на 8.2.15.319     | |||
| 27
    
        dk 20.08.12✎ 15:37 | 
        1С:Предприятие 8.2 (8.2.15.318)     | |||
| 28
    
        andrewks 20.08.12✎ 15:39 | 
        (27) странно. возможно, следует почистить кэш, из-за него, порой, очень интересные эффекты бывают     | |||
| 29
    
        dk 20.08.12✎ 15:41 | 
        MS Word 2010 - нормально открыл все     | |||
| 30
    
        andrewks 20.08.12✎ 15:47 | 
        (29) спасибо!     | |||
| 31
    
        andrewks 20.08.12✎ 21:02 | 
        придётся апать.
  внезапно(!) выяснилось, что проблема в конкретном шаблоне (корректный ворд-файл, открывается корректно, поля показываются правильно, но при доступе через ActiveDocument.PageSetup - девятки) пробовал создавать новый док, копировать в него содержимое и сохранял - всё равно глючит. у кого есть немного свободного времечка, гляньте, как этот файл ведёт себя на других версиях MS Office. новая версия обработки: http://yadi.sk/d/eK1d1Q_ZHnuR сам файл-виновник: http://yadi.sk/d/ldRE0xvDHnuF если вдруг у кого возникнут догадки, от чего такое может быть - буду благодарен | |||
| 32
    
        zladenuw 20.08.12✎ 21:10 | 
        (31) помогу. результат напишу     | |||
| 33
    
        andrewks 20.08.12✎ 21:11 | 
        9999999 - это wdUndefined.
  вопрос - почему в этом доке оно wdUndefined? и почему через Секцию всё показывается нормально? | |||
| 34
    
        andrewks 20.08.12✎ 21:13 | 
        а тема-то бородатая http://msgroups.net/microsoft.public.word.vba.general/page-margin-issue/42429
  только причина неясна | |||
| 35
    
        andrewks 20.08.12✎ 21:16 | 
        http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/85a286b5-91b5-457a-93b5-ef56ff31a116/
  я - Д'Артаньян, 1совцы - сами знаете, кто. всё-таки у них глюк в коде, и нужен патч (12) | |||
| 36
    
        zladenuw 20.08.12✎ 21:18 | 
        (35) в 1с ? вроде борода 2008 года     | |||
| 37
    
        andrewks 20.08.12✎ 21:19 | 
        ответ спеца от мелкософта:
  If a document contains more than one section with differing settings and/or it's very long, querying on the entire document will return the value "indeterminate" (9999999). перевожу: Если документ содержит более одной секции с разными настройками и/или он очень большой, запрос к всему документу возвращает значение "неопределено" (9999999). и советует использовать .Sections(1).PageSetup | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |