|
Выгрузка в файл excel с установленными параметрами печати | ☑ | ||
---|---|---|---|---|
0
gaspik
15.11.16
✎
08:56
|
Здравствуйте, коллеги.
Развейте мои сомнения. Конфигурация ЗУП 2.5, документ "Табель учёта рабочего времени". Из печатной формы этого документа есть возможность отправить табель по эл. почте, в том числе и в формате эксель. Когда пользователь получает по почте файл и печатает его, то по умолчанию печатается книжная страница и, соответственно, таблица не влезает. Приходится предварительно, перед печатью настраивать в экселе параметры печати, чтобы распечатать табель правильно. Я там понимаю, что параметры печати это свойство приложения эксель, а не файла и нет возможности сформировать файл табеля таким образом, чтобы пользователю не приходилось делать настроек перед печатью. Это так? Другими словами, можно ли выгрузить из 1С экселевский файл с настроенными параметрами печати (альбомная ориентация и по ширине страницы)? |
|||
1
gaspik
15.11.16
✎
12:16
|
апну разок
|
|||
2
aka AMIGO
15.11.16
✎
12:40
|
Если файл Excel формируется целиком обработкой (не помню функцию в v8), то можно во-время подсунуть команду форматирования. Вид команды можно узнать, запустив макросы в Excel"е.
Если это готовый табличный 1с-овский документ, то макрос не подсунешь. 1с готовит as/is, т.е.плохо. И доступа к нему в процессе сохранения - нет, и не будет И потому надо проинструктировать получателей, как получить приемлемую форму. уж форматирование-то пользователи должны выполнять с закрытыми глазками.. В любимом всеми Excel"е ЗЫ. всё - ИМХО.. |
|||
3
aka AMIGO
15.11.16
✎
12:57
|
В v7 еще более отвратительно. Файл в 2 странички, сохраненный в формате xls, открываю в LibreOffice, и при выводе на печать выходит 36 и более пустых страниц.
Написал инструкцию по созданию приличного документа нашей финансовой директорше, для отсылки по почте, ибо другого способа не предвидится. |
|||
4
Fish
15.11.16
✎
12:57
|
(2) "Если это готовый табличный 1с-овский документ, то макрос не подсунешь. 1с готовит as/is, т.е.плохо. И доступа к нему в процессе сохранения - нет, и не будет " - Можно же подсунуть команду форматирования и после сохранения.
|
|||
5
aka AMIGO
15.11.16
✎
12:58
|
(4) Так рассказывай!! :)
|
|||
6
torgm
15.11.16
✎
12:59
|
(4) сохраняешь в эксель форму
открываешь из экселя добиваешь файл танцем сохраняешь отправляешь |
|||
7
Базис
naïve
15.11.16
✎
12:59
|
(3) Финдиру программа должна готовить нормальные формы, не издевайся над ключевым пользователем. Пустые строки/столбцы удалил? Область печати задал? Все .Опции() установил принудительно?
|
|||
8
torgm
15.11.16
✎
13:00
|
(4) запись макросов в экселе есть, так что все флаги в руки.
|
|||
9
aka AMIGO
15.11.16
✎
13:01
|
(7) Угу,всё это есть. И всё это - не работает :)
|
|||
10
Fish
15.11.16
✎
13:04
|
(5) Вот такой макрос получился:
Application.PrintCommunication = False With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With Application.PrintCommunication = True ActiveSheet.PageSetup.PrintArea = "" Application.PrintCommunication = False With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.7) .RightMargin = Application.InchesToPoints(0.7) .TopMargin = Application.InchesToPoints(0.75) .BottomMargin = Application.InchesToPoints(0.75) .HeaderMargin = Application.InchesToPoints(0.3) .FooterMargin = Application.InchesToPoints(0.3) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With Application.PrintCommunication = True End Sub Ключевое тут, я так понимаю: .Orientation = xlLandscape |
|||
11
azernot
15.11.16
✎
13:04
|
(8) +1
|
|||
12
aka AMIGO
15.11.16
✎
13:05
|
(7) Щас попробую.. минутку..
|
|||
13
gaspik
15.11.16
✎
13:05
|
(8) т.е. я правильно понимаю, что можно в процессе формирования файла что то прописать внутри на VBA чтобы при выводе на печать печаталось как надо?
|
|||
14
azernot
15.11.16
✎
13:05
|
XlPageOrientation
xlLandscape 2 xlPortrait 1 |
|||
15
Базис
naïve
15.11.16
✎
13:08
|
РабочаяКнига.WorkSheets().Add();
РабочаяКнига.Activate(); ExcelApp.ActiveWindow.Zoom = 55; // Масштаб на экране РабочаяКнига.ActiveSheet.PageSetup.Zoom = 38; //33; // Масштаб при печати РабочаяКнига.ActiveSheet.PageSetup.Orientation = 2; // Landscape // Установим поля печати: РабочаяКнига.ActiveSheet.PageSetup.LeftMargin = ExcelApp.CentimetersToPoints(1.7); //(0.7); РабочаяКнига.ActiveSheet.PageSetup.TopMargin = ExcelApp.CentimetersToPoints(0.6); //(0.2);(1.2); РабочаяКнига.ActiveSheet.PageSetup.RightMargin = ExcelApp.CentimetersToPoints(0.6); //(1); РабочаяКнига.ActiveSheet.PageSetup.BottomMargin = ExcelApp.CentimetersToPoints(0.6); //(0.2);(0.7); РабочаяКнига.ActiveSheet.PageSetup.HeaderMargin = 0; РабочаяКнига.ActiveSheet.PageSetup.FooterMargin = 0; // Задаём ширину колонок ExcelApp.Columns(1).ColumnWidth = 7; ExcelApp.Columns(2).ColumnWidth = 26; ExcelApp.Columns(3).ColumnWidth = 15; |
|||
16
torgm
15.11.16
✎
13:09
|
(15) Ну вот, дал человеку рыбу.
|
|||
17
Барматолог
15.11.16
✎
13:10
|
(13) зачем VBA когда есть OLE
|
|||
18
gaspik
15.11.16
✎
13:15
|
(15) спасибо, стало что то понятно
|
|||
19
aka AMIGO
15.11.16
✎
13:17
|
Попробовал. Применил функцию 1с v7 - типа областьпечати().
Результат: не 36, а 82 пустых страницы. (17) По оле, конечно, макрос можно подсунуть во-время. Но у ТС 1с-ный табличный документ сохраняется в формате эксцеля.. |
|||
20
Fish
15.11.16
✎
13:18
|
(19) "Но у ТС 1с-ный табличный документ сохраняется в формате эксцеля" - А кто мешает потом открыть сохранённый файл по ОЛЕ, подсунуть туда параметры и сохранить?
|
|||
21
Масянька
15.11.16
✎
13:18
|
(19) У меня в Йокселе так работает:
ТабДокумент = СоздатьОбъект ("ТабличныйДокумент"); ТабДокумент.ЗагрузитьИзТаблицы (АктивныйКонтекст); ТабДокумент.ПараметрыПечати.Ориентация = 1; ТабДокумент.Записать(СохранитьМакетВфайл, 1); |
|||
22
aka AMIGO
15.11.16
✎
13:21
|
(20) Можно.. Если Excel установлен на компе.
(21) Вот это - интересно.. Побежал в конфигуратор.. |
|||
23
gaspik
15.11.16
✎
13:23
|
(21) спасибо, попробую
|
|||
24
Масянька
15.11.16
✎
13:25
|
(22) (23) По Йокселю помощник: http://yoksel.net.ru/Ob%27ektyVstroennogoJazyka
|
|||
25
aka AMIGO
15.11.16
✎
13:44
|
(24) Попробовал.. У нас не приживется :(
Шеф категорически против всех ВК. Причина мне неизвестна.. ЗЫ. у нас 5 филиалов в УРБД, боится угробить базу. |
|||
26
Масянька
15.11.16
✎
13:46
|
(25) Ну, пусть шеф сам колбасит exl-файлы.
|
|||
27
Масянька
15.11.16
✎
13:50
|
(25) У меня шеф (сам бывший программист, причем, с большой буквы) тоже был против. Но после очередной задачи (причем, со с точки зрения программирования - примитив, раскраска журнала док-ов) и объяснения, что ВК бесплатны - согласился.
Раздолье :) |
|||
28
Tatitutu
15.11.16
✎
14:08
|
Старо , как мир !
Как из 1С правильно УКАЗАТЬ MS EXCEL как нужно печатать документы ! http://catalog.mista.ru/public/62648/ |
|||
29
aka AMIGO
15.11.16
✎
15:00
|
(28) Перенаправляет в "Исключение"
|
|||
30
darius357
15.11.16
✎
16:10
|
ну как всегда побакланили, и нифига толку
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |