Имя: Пароль:
1C
1C 7.7
v7: Йоксель - проблема с разбиением на страницы
0 Масянька
 
09.08.13
16:11
День добрый!
а сохраняется в pdf, цепляется к письму и отправляется по мылу.
Так вот, когда счет получается на 2 страницы - получается косяк: обычная печать из 1С - на одной странице печатается 22 строки, 23 и 24 строка переносятся на другую - все хорошо.
в pdf - получается 3 страницы: первая - 15 строк, потом 16-23 строки, потом перенос страницы (вижу шапку таблицы) и 24 строка.
ЧЯДНТ?

Функция ПодготовитьФайл(КаталогДляЗаписи)

    Ошибка = 0;

    Форма.Отправка.Заголовок("Идет формирование письма.");

    Попытка
        ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll");
    Исключение
        Предупреждение("Не удалось загрузить компоненту SpreadSheet.dll.");
        Ошибка = 1;
        Возврат Ошибка;
    КонецПопытки;
    
    Йоксель        = СоздатьОбъект("ТабличныйДокумент");
    Конвертер    = СоздатьОбъект("КонвертерExcel");
    
    ВремТабл    = Конвертер.Создать();
    
    Йоксель.ЗагрузитьИзТаблицы(ИсхТабл);
    
    ВремТабл.Листы.Добавить("Счет", Йоксель);
    
    Параметры    =    Йоксель.ПараметрыПечати;
    Параметры.ПолеСверху    = 50;
    Параметры.ПолеСнизу        = 50;    
    Параметры.ПолеСлева        = 50;
    Параметры.ПолеСправа    = 50;
    Параметры.Ориентация    = 1;
    
    Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
    
    Конвертер.ВысотаСтраницы = 297*56.7;
    Конвертер.ШиринаСтраницы = 210*56.7;
    Конвертер.КоличествоБитНаПиксел = 24;

    Конвертер.Документ = Йоксель;//это табличный документ от йокселя
    
    Конвертер.ПолеСлева     = 800;
    Конвертер.ПолеСверху     = 300;
    Конвертер.ПолеСправа     = 0;
    Конвертер.ПолеСнизу     = 300;
    Конвертер.ЗаписатьВФайл(КаталогДляЗаписи);    
    
    Йоксель.Очистить();

    Возврат Ошибка;
    
КонецФункции // ПодготовитьФайл


Заранее - спасибо.
1 Масянька
 
09.08.13
16:20
Ну, как бэ, я понимаю, что сегодня пятница, но рабочий день-то еще не кончился?
2 Ёпрст
 
гуру
09.08.13
16:21
играться с этими параметрами
Конвертер.ВысотаСтраницы = 297*56.7;
    Конвертер.ШиринаСтраницы = 210*56.7;
3 Масянька
 
09.08.13
16:24
Поняла: сначала 287, потом 277 - разницу - не увидела (так же).
4 Ёпрст
 
гуру
09.08.13
16:25
это заремь пока:
раметры.ПолеСверху    = 50;
    Параметры.ПолеСнизу        = 50;    
    Параметры.ПолеСлева        = 50;
    Параметры.ПолеСправа    = 50;
5 Ёпрст
 
гуру
09.08.13
16:26
всё.
6 Ёпрст
 
гуру
09.08.13
16:26
точнее, это:
Конвертер.ПолеСлева     = 800;
    Конвертер.ПолеСверху     = 300;
    Конвертер.ПолеСправа     = 0;
    Конвертер.ПолеСнизу     = 300;
7 Масянька
 
09.08.13
16:30
(6) такой ужас получился :))))))
на 1 листе строки 1-9
на 2 - 10-23
на 3 - 24
и колонка сумма не влазит по ширине (получилось 6 страниц).
8 Масянька
 
09.08.13
16:41
Ё!
Подскажи, пожалуйста, а как открыть вот то, что получилось до этого -    Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
9 Ёпрст
 
гуру
09.08.13
16:44
че ?
10 Ёпрст
 
гуру
09.08.13
16:45
можешь или во фрейме показать, или в элементе управления, размещеном на форме, если я тебя правильно понял, что тебе надо.
11 Масянька
 
09.08.13
16:45
Йоксель.ЗагрузитьИзТаблицы(ИсхТабл);
    
    ВремТабл.Листы.Добавить("Счет", Йоксель);
    
    Параметры    =    Йоксель.ПараметрыПечати;
    Параметры.ПолеСверху    = 50;
    Параметры.ПолеСнизу        = 50;    
    Параметры.ПолеСлева        = 50;
    Параметры.ПолеСправа    = 50;
    Параметры.Ориентация    = 1;
    
Тут можно как-то посмотреть, что в получилось?


    Конвертер = СоздатьОбъект("Йоксель.ГрафическийКонвертер.PDF");
12 Масянька
 
09.08.13
16:46
(10) Во фрейме - это как?
13 Ёпрст
 
гуру
09.08.13
16:50
Йоксель.Показать()  - создаст тебе фрейм
14 Масянька
 
09.08.13
16:52
Параметры    =    Йоксель.ПараметрыПечати;
    Параметры.ПолеСверху    = 50;
    Параметры.ПолеСнизу        = 50;    
    Параметры.ПолеСлева        = 50;
    Параметры.ПолеСправа    = 50;
    Параметры.Ориентация    = 1;
    
    Йоксель.Показать();


Ругается - Йоксель.Показать();
{D:\1CV7\DB\EXTFORMS\PRNFORMS\СЧЕТ_EMAIL.ERT(268)}: Недостаточное число параметров передано при вызове функции/процедуры объекта
15 Масянька
 
09.08.13
16:56
Не ругайся :))))
Надо было сразу так -     Йоксель.Показать(ИсхТабл);
:))))
Вот и выводит уже напрвильно.....
То бишь сам Йоксель как-то не так формирует....
16 Масянька
 
09.08.13
17:03
Я еще буду спрашивать: откуда берется шапка таблицы на каждом листе? В коде нет ПовторятьПриПечати.
17 Злопчинский
 
09.08.13
20:32
(16) Меню-Таблица-Колонтитулы
18 Масянька
 
09.08.13
20:48
Всем - спасибо.
Проблема решена:)
19 Злопчинский
 
09.08.13
22:25
(18) ну так поделилась бы рецептом. а то на фотграфии одна (|)