|   |   | 
| 
 | v7: 1С77 сохранить в Excel с масштабом странице по "ширине страницы" | ☑ | ||
|---|---|---|---|---|
| 0
    
        arkber84 28.11.17✎ 08:59 | 
        Доброе. 1с77, MS Oficce 2010. Нужно сохранить табличку в Excel с масштабом странице по "ширине страницы"(1 страница по ширине) 
 Посмотрел код в инете ExcelPS= ExcelWorkBook.ActiveSheet.PageSetup; Попытка ScrptCtrl = С СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode("Function SetAutoZoom() | ExcelPS.Zoom = False | ExcelPS.FitToPagesWide = 1 | ExcelPS.FitToPagesTall = 10 |End Function"); ScrptCtrl.AddObject("ExcelPS", ExcelPS); ScrptCtrl.Run("SetAutoZoom") Исключение сообщить(ОписаниеОшибки()) КонецПопытки; ExcelWorkBook.ExportAsFixedFormat(0, ПолныйПутьФайла , 0); КонецЕсли; При выполнении кода вылетает ошибка Ошибка выполнения Microsoft VB * Script: Разрешение отклонено: 'ExcelPS.Zoom' Подскажите где ошибка? спасибо. | |||
| 1
    
        Масянька 28.11.17✎ 09:07 | 
        (0) Ошибка тут - ExcelPS.Zoom.     | |||
| 2
    
        aka AMIGO 28.11.17✎ 09:10 | 
        Если в Excel стартовать режим макросов и выполнить такую операцию, то решение найдется.     | |||
| 3
    
        arkber84 28.11.17✎ 10:04 | 
        (2) В екселе макрос делал.   и все работает. Тут ошибка в  разрешениях.  Уточню. Процедура в 1С77  открывает существующий ексель файл, меняет настройки страницы(масштаб), затем  конвертирует в pdf и сохраняет.     | |||
| 4
    
        Масянька 28.11.17✎ 10:54 | 
        (3) А сначала (наверное) сохраняет в excel...     | |||
| 5
    
        arkber84 28.11.17✎ 13:14 | 
        (4) и до сохранения и после пробывал.     | |||
| 6
    
        Масянька 28.11.17✎ 17:37 | 
        (5) Сразу в pdf религия не позволяет?     | |||
| 7
    
        arkber84 28.11.17✎ 18:04 | 
        (6) Масштаб не позволяет. ))) Таблица вылезает за пределы листа по ширине. вот пытаюсь открыть в екселе, задать масштаб и сконвертировать в пдф.     | |||
| 8
    
        Масянька 29.11.17✎ 08:39 | 
        (7) Попробуй:
 Функция ПодготовитьФайл(КаталогДляЗаписи) Ошибка = 0; Форма.Отправка.Заголовок("Идет формирование письма."); Попытка ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll"); Исключение Предупреждение("Не удалось загрузить компоненту SpreadSheet.dll."); Ошибка = 1; Возврат Ошибка; КонецПопытки; Йоксель = СоздатьОбъект("ТабличныйДокумент"); Йоксель.ЗагрузитьИзТаблицы(АктивныйКонтекст); Параметры = Йоксель.ПараметрыПечати; Параметры.ПолеСверху = 10; Параметры.ПолеСнизу = 10; Параметры.ПолеСлева = 10; Параметры.ПолеСправа = 10; Параметры.АвтоМасштаб = 1; Параметры.Ориентация = 1; Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF"); // ориентация печ. формы: для всех, кроме счета - 1 (альбомная) Если (СтрОриентация = 1) Тогда Конвертер.ВысотаСтраницы = 210*56.7; Конвертер.ШиринаСтраницы = 297*56.7; Иначе Конвертер.ВысотаСтраницы = 297*56.7; Конвертер.ШиринаСтраницы = 210*56.7; КонецЕсли; Конвертер.КоличествоБитНаПиксел = 24; //Йоксель.Показать(1); Конвертер.Документ = Йоксель; //это табличный документ от йокселя Конвертер.ПолеСлева = 450; Конвертер.ПолеСверху = 300; Конвертер.ПолеСправа = 0; Конвертер.ПолеСнизу = 300; Конвертер.ЗаписатьВФайл(КаталогДляЗаписи); Йоксель.Очистить(); Возврат Ошибка; КонецФункции // ПодготовитьФайл | |||
| 9
    
        arkber84 29.11.17✎ 09:13 | 
        (8) Спасибо))). Доработал твой код и решил проблему с масштабом по ширине.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |