|   |   | 
| 
 | сохранение макета из 1с в ms word в альбомном формате | ☑ | ||
|---|---|---|---|---|
| 0
    
        LivingStar 08.12.14✎ 07:06 | 
        В 1с у документа есть красочная печатная форма, с таблицами, изображением и прочими данными. Нужно её сохранить в ms word в альбомном формате. Можно ли сохранить сразу весь этот макет предварительно программно сформировав его по документу?     | |||
| 1
    
        LivingStar 08.12.14✎ 07:20 | 
        никто не подскажет примером?     | |||
| 2
    
        anaed 08.12.14✎ 07:51 | 
        можно
 табдок.записать(<имяфайла>,типфайлатабличногодокумента.DOCX); | |||
| 3
    
        LivingStar 08.12.14✎ 08:07 | 
        (2) скачал пример, пробую делать через active document
 то что вы говорите сильно просто думаете просто так сработает? Зачем тогда приведены эти сложные примеры? Сейчас такое предктновение, создаю active document, загружаю туда документ .docx в альбомном формате, но он не создается (((( При нажатии на готово никакой реакции. | |||
| 4
    
        anaed 08.12.14✎ 08:15 | 
        (3) почему бы сначала не попробовать простой способ?     | |||
| 5
    
        LivingStar 08.12.14✎ 08:20 | 
        (4) попробую     | |||
| 6
    
        LivingStar 08.12.14✎ 08:34 | 
        (4) слушай ниче так получилось одной строкой, только почему то приходится программу выбирать юля просмотра, по умолчанию без привязки лежит к ms word почему то(( ну и ещё мож какие преткновения этого метода потом выявятся!     | |||
| 7
    
        LivingStar 08.12.14✎ 08:42 | 
        (4) А как в этом случае задать альбомный формат? Не подскажете? Открывается в портретном...     | |||
| 8
    
        LivingStar 08.12.14✎ 08:43 | 
        мож так ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;     | |||
| 9
    
        LivingStar 08.12.14✎ 08:46 | 
        такой ход не помог, предварительный просмотр все равно в портретной ориентации
 ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт; ТабДокумент.Записать("Y:\Check_"+Прав(Номер,4)+".docs",типфайлатабличногодокумента.DOCX); | |||
| 10
    
        LivingStar 08.12.14✎ 08:55 | 
        как подобраться к ms word задать ориентацию страницу ландшафт, почему не работает (9) ?     | |||
| 11
    
        LivingStar 08.12.14✎ 09:04 | 
        как то решал такой вопрос в эксель, подобное сюда прикручу
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ИмяФайла = ПутьКФайлу; //_Ориентация = ОриентацияСтраницы.Ландшафт; ПолеСлева = 0; ПолеСправа = 0; ПолеСверху = 0; ПолеСнизу = 0; АвтоВысотаСтрок = Ложь; Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.Visible = False; Workbook = Excel.Workbooks.Open(ИмяФайла); Лист = Workbook.Sheets(1); Лист.PageSetUp.Zoom = False; Лист.PageSetUp.FitToPagesWide = 1; // По ширине листа Лист.PageSetUp.FitToPagesTall = False; //Если Ориентация = ОриентацияСтраницы.Ландшафт Тогда Лист.PageSetup.Orientation = 2; // xlLandscape //Иначе // Лист.PageSetup.Orientation = 1; // xlPortrait //КонецЕсли; //Лист.PageSetup.LeftMargin = Excel.Application.InchesToPoints(ПолеСлева / 25.4); // Поле слева //Лист.PageSetup.RightMargin = Excel.Application.InchesToPoints(ПолеСправа / 25.4); // Поле справа //Лист.PageSetup.TopMargin = Excel.Application.InchesToPoints(ПолеСверху / 25.4); // Поле сверху //Лист.PageSetup.BottomMargin = Excel.Application.InchesToPoints(ПолеСнизу / 25.4); // Поле снизу // Лист.PageSetup.LeftMargin = Excel.Application.InchesToPoints(ПолеСлева); // Поле слева Лист.PageSetup.RightMargin = Excel.Application.InchesToPoints(ПолеСправа); // Поле справа Лист.PageSetup.TopMargin = Excel.Application.InchesToPoints(ПолеСверху); // Поле сверху Лист.PageSetup.BottomMargin = Excel.Application.InchesToPoints(ПолеСнизу); // Поле снизу // Если АвтоВысотаСтрок Тогда // Устанавливаем высоту строк НомерСтроки = 1; Пока НомерСтроки < 100000 Цикл Ячейка = Лист.Cells(НомерСтроки, 1); Строка = Ячейка.EntireRow(); Строка.AutoFit(); Если ПустаяСтрока(Ячейка.Value) Тогда Прервать; КонецЕсли; НомерСтроки = НомерСтроки + 1; КонецЦикла; КонецЕсли; Excel.DisplayAlerts = False; Workbook.Save(); Workbook.Close(); Workbook = Неопределено; Excel.Quit(); // 2014_09_19 LivingStar -> Excel.Visible = True; Excel.DisplayAlerts = True; // <- Excel = Неопределено; Исключение КонецПопытки; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |||
| 12
    
        LivingStar 08.12.14✎ 09:39 | 
        как в ворде подобно (11) задать ораентацию страницы подскажет кто?     | |||
| 13
    
        LivingStar 08.12.14✎ 09:52 | 
        up!     | |||
| 14
    
        vicof 08.12.14✎ 09:53 | 
        (0) down!     | |||
| 15
    
        LivingStar 08.12.14✎ 10:04 | 
        подскажите не найду ни одного примера как изменить ориентацию страницы в форд     | |||
| 16
    
        vicof 08.12.14✎ 10:05 | 
        запиши макрос в "форде"     | |||
| 17
    
        LivingStar 08.12.14✎ 10:06 | 
        (16) да какой макрос! в Excel я делал как в (11) сохраняешь файл на диск а следом обрабатываешь его из 1с тем же макросом
 для ворда реально не найду ни одно примера, там методы различные с (11) | |||
| 18
    
        vicof 08.12.14✎ 10:10 | 
        (17) Ты не знаешь, что такое макрос в пакете мс офис - поищи в интернете.     | |||
| 19
    
        LivingStar 08.12.14✎ 10:23 | 
        (18) зачем мне макрос в ворде???? я его и делаю из 1с, не прикалывайся!!!!     | |||
| 20
    
        vicof 08.12.14✎ 10:26 | ||||
| 21
    
        Любопытная 08.12.14✎ 10:28 | 
        Если в вашем приложении используется печать, чаще всего без использования этого объекта не обойтись. Он позволяет программным образом настроить то, что на графическом экране настраивается через меню Файл->Параметры страницы. Объект PageSetup является вложенным в объекты Document, Selection и Range, и обычно обращение к нему происходит через эти объекты. Например, чтобы при печати документа он был выведен в альбомной ориентации, можно воспользоваться командой
 ThisDocument.PageSetup.Orientation = wdOrientLandscape http://www.askit.ru/custom/vba_office/m10/10_06_07_word_pagesetup_object.htm | |||
| 22
    
        Любопытная 08.12.14✎ 10:29 | 
        (20) Отличная картинка! :)     | |||
| 23
    
        LivingStar 08.12.14✎ 10:55 | 
        (21) я это видел спасибо, я не могу подобраться к ThisDocuments     | |||
| 24
    
        vicof 08.12.14✎ 10:56 | ||||
| 25
    
        LivingStar 08.12.14✎ 11:04 | 
        (21)
 как будет правильно? Word = Новый COMОбъект("Word.Application"); Word.Visible = False; Word.Documents.Open(ИмяФайла); ThisDocument = Word.ActiveDocument(); ThisDocument.PageSetup.Orientation = Orientation.wdOrientLandscape; | |||
| 26
    
        Любопытная 08.12.14✎ 11:06 | 
        (25) так не работает?     | |||
| 27
    
        LivingStar 08.12.14✎ 11:10 | 
        Word                          = Новый COMОбъект("Word.Application");
 Word.Visible = False; ThisDocument = Word.Documents.Open(ИмяФайла); ThisDocument.PageSetup.Orientation = Orientation.wdOrientLandscape; | после вот этой строки слетает, как нужно? ThisDocument.PageSetup.Orientation = Orientation.wdOrientLandscape; | |||
| 28
    
        vicof 08.12.14✎ 11:12 | 
        И откуда 1с должна знать про какую-то там Orientation?     | |||
| 29
    
        LivingStar 08.12.14✎ 11:24 | 
        Попытка
 Word = Новый COMОбъект("Word.Application"); Word.Visible = False; ThisDocument = Word.Documents.Open(ИмяФайла); ThisDocument.PageSetup.Orientation = 1; Word.DisplayAlerts = False; ThisDocument.Save(); ThisDocument.Close(); //Workbook.Save(); //Workbook.Close(); Workbook = Неопределено; Word.Quit(); // 2014_09_19 LivingStar -> Word.Visible = True; Word.DisplayAlerts = True; // <- Word = Неопределено; Исключение КонецПопытки; | |||
| 30
    
        Любопытная 08.12.14✎ 11:32 | 
        (29) Ну вроде ж везде в примерах без Orientation в правой части пишут.     | |||
| 31
    
        LivingStar 08.12.14✎ 11:33 | 
        (30) так вообще не будет работать, они где то выше определили её значит     | |||
| 32
    
        vicof 08.12.14✎ 11:47 | 
        (31) "они". 
 Инопланетяне? | |||
| 33
    
        Любопытная 08.12.14✎ 11:51 | 
        (31) Класс WdOrientation, но что-то в com соединении оно не работает     | |||
| 34
    
        LivingStar 08.12.14✎ 11:59 | 
        ну вот так в кратце
 | Попытка Word = Новый COMОбъект("Word.Application"); Word.Visible = False; ThisDocument = Word.Documents.Open(ИмяФайла); ThisDocument.PageSetup.Orientation = 1; ThisDocument.PageSetup.BottomMargin = 10; ThisDocument.PageSetup.RightMargin = 10; ThisDocument.PageSetup.LeftMargin = 10; ThisDocument.PageSetup.TotMargin = 10; Word.DisplayAlerts = False; ThisDocument.Save(); ThisDocument.Close(); Word.Visible = True; Word.DisplayAlerts = True; Word.Quit(); Word = Неопределено; Исключение КонецПопытки; | но вот заметил на производительности это не очень сказывается, подвисает при создании этого ворда оптимизировать если это нужно делать через Active document макет, но я пробовал создать макет, выбирая нужный шаблон из ворд, так по готово никакой реакции, что туда нужно добавлять то? Из за чего может не принимать? | |||
| 35
    
        vicof 08.12.14✎ 12:06 | 
        (34) Поток сознания     | |||
| 36
    
        LivingStar 08.12.14✎ 12:32 | 
        так что там нужно загружать в макет Active documents? .docx почему не идет? там изображение таблица разноцветная, текст...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |