[РЕШЕНО] Табличный документ печатается с пустыми страницами

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем JediAlex, 19 мар 2015.

  1. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Вывожу на печать документ в собственной конфигурации 1с 8.3. Команду печати создал конструктором и потом переделал под свои нужды. Вот что получилось:
    Код:
    Процедура Печать(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
        //Макет = Документы.ОценочнаяВедомость.ПолучитьМакет("Печать");
    Макет = Документы.ОценочнаяВедомость.ПолучитьМакет("ПечатнаяФормаВедомости"); 
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |   ОценочнаяВедомость.Должность,
        |   ОценочнаяВедомость.ИтоговыйПоказательЭффективности,
        |   ОценочнаяВедомость.ОценкаРаботы,
        |   ОценочнаяВедомость.Подразделение,
        |   ОценочнаяВедомость.Сотрудник,
        |   ОценочнаяВедомость.КритерииОценки.(
        |       НомерСтроки,
        |       Критерий,
        |       НольБаллов,
        |       ОдинБалл,
        |       ДваБалла,
        |       ТриБалла,
        |       БаллСотрудника,
        |       КомментарийСотрудника,
        |       БаллРуководителя,
        |       КомментарийРуководителя,
        |       ВесовойКоэффициент,
        |       Итог
        |   ),
        |   ОценочнаяВедомость.ОтчетныйПериод,
        |   ОценочнаяВедомость.ПроцентВыполненияРуководителя
        |ИЗ
        |   Документ.ОценочнаяВедомость КАК ОценочнаяВедомость
        |ГДЕ
        |   ОценочнаяВедомость.Ссылка В(&Ссылка)";
        Запрос.Параметры.Вставить("Ссылка", Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        //ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
        //Шапка = Макет.ПолучитьОбласть("Шапка");
        //ОбластьКритерииОценкиШапка = Макет.ПолучитьОбласть("КритерииОценкиШапка");
        //ОбластьКритерииОценки = Макет.ПолучитьОбласть("КритерииОценки");
        //Подвал = Макет.ПолучитьОбласть("Подвал");
    Заголовок = Макет.ПолучитьОбласть("Заголовок");
    Ведомость = Макет.ПолучитьОбласть("Ведомость");
    ВедомостьШапка = Макет.ПолучитьОбласть("ВедомостьШапка");
        ИтогиВедомости = Макет.ПолучитьОбласть("ИтогиВедомости");
    Подвал=Макет.ПолучитьОбласть("Подвал");
        ТабДок.Очистить();
        ВставлятьРазделительСтраниц = Ложь;
        Пока Выборка.Следующий() Цикл
            Если ВставлятьРазделительСтраниц Тогда
                ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
            Заголовок.Параметры.Заполнить(Выборка);
            ИтогиВедомости.Параметры.Заполнить(Выборка);
            //Подвал.Параметры.Заполнить(Выборка);
            ТабДок.Вывести(Заголовок, Выборка.Уровень());
            ТабДок.Вывести(ВедомостьШапка);
            //ТабДок.Вывести(Подвал);
        //ТабДок.Вывести(Заголовок, Выборка.Уровень());
            //ТабДок.Вывести(ОбластьКритерииОценкиШапка);
            ВыборкаКритерииОценки = Выборка.КритерииОценки.Выбрать();
            ИтогСотрудника=0;
            ИтогРуководителя=0;
            ИтогКоэффициент=0;
            ОбщийИтог=0;
            Пока ВыборкаКритерииОценки.Следующий() Цикл
                //Ведомость.Параметры.Заполнить(ВыборкаКритерииОценки);
                Ведомость.Параметры.НомерСтроки=ВыборкаКритерииОценки.НомерСтроки;
                Ведомость.Параметры.Критерий=ВыборкаКритерииОценки.Критерий;
                Ведомость.Параметры.НольБаллов=ВыборкаКритерииОценки.НольБаллов;
                Ведомость.Параметры.ОдинБалл=ВыборкаКритерииОценки.ОдинБалл;
                Ведомость.Параметры.ДваБалла=ВыборкаКритерииОценки.ДваБалла;
                Ведомость.Параметры.ТриБалла=ВыборкаКритерииОценки.ТриБалла;
                Ведомость.Параметры.БаллСотрудника=ВыборкаКритерииОценки.БаллСотрудника;
                ИтогСотрудника=ИтогСотрудника+ВыборкаКритерииОценки.БаллСотрудника;
                Ведомость.Параметры.КомментарийСотрудника=ВыборкаКритерииОценки.КомментарийСотрудника;
                Ведомость.Параметры.БаллРуководителя=ВыборкаКритерииОценки.БаллРуководителя;
                ИтогРуководителя=ИтогРуководителя+ВыборкаКритерииОценки.БаллРуководителя;
                Ведомость.Параметры.КомментарийРуководителя=ВыборкаКритерииОценки.КомментарийРуководителя;
                Ведомость.Параметры.ВесовойКоэффициент=ВыборкаКритерииОценки.ВесовойКоэффициент*100;
                ИтогКоэффициент=ИтогКоэффициент+Ведомость.Параметры.ВесовойКоэффициент;
                Ведомость.Параметры.Итог=ВыборкаКритерииОценки.Итог;
                ОбщийИтог=ОбщийИтог+ВыборкаКритерииОценки.Итог;
                ТабДок.Вывести(Ведомость, ВыборкаКритерииОценки.Уровень());
            КонецЦикла;
            ИтогиВедомости.Параметры.ИтогСотрудника=ИтогСотрудника;
            ИтогиВедомости.Параметры.ИтогРуководителя=ИтогРуководителя;
            ИтогиВедомости.Параметры.ИтогКоэффициент=ИтогКоэффициент;
            ИтогиВедомости.Параметры.ОбщийИтог=ОбщийИтог;
            Подвал.Параметры.Сотрудник=Выборка.Сотрудник;
            Подвал.Параметры.Должность=Выборка.Должность;
            //ИтогиВедомости.Параметры.ПроцентВыполненияРуководителя=Выборка.ППроцентВыполненияРуководителя;
            //ИтогиВедомости.Параметры.ПроцентВыполненияРуководителя=Выборка.ПроцентВыполненияРуководителя;
    //      ИтогиВедомости.Параметры.ИтоговыйПоказательЭффективности=Выборка.ИтоговыйПоказательЭффективности;
            ТабДок.Вывести(ИтогиВедомости);
            ТабДок.Вывести(Подвал);
                    ТабДок.РазмерСтраницы="A4";
            //ИтогиВедомости.Параметры.Заполнить(Выборка);
            //ТабДок.Вывести(Подвал);
            ВставлятьРазделительСтраниц = Истина;
        КонецЦикла;
        //ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
        //}}
    КонецПроцедуры
    Вот текст команды:
    Код:
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
        //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
        ТабДок = Новый ТабличныйДокумент;
        Печать(ТабДок, ПараметрКоманды);
        ТабДок.ОтображатьСетку = Ложь;
        ТабДок.Напечатать();
        //}}
    КонецПроцедуры
    &НаСервере
    Процедура Печать(ТабДок, ПараметрКоманды)
        Документы.ОценочнаяВедомость.Печать(ТабДок, ПараметрКоманды);
    КонецПроцедуры
    Проблема заключается вот в чем: при выводе на печать получаются пустые листы: заполненный, пустой, заполненный пустой и т.д через один... документ из2-х листов печатается на четырех листах, где 2-й и 4-й пустые... в чем ошибка? никак понять не могу... помогите пожалуйста. Пробовал включать у областей макета свойство "ВместеСоСледующим" - не помогает,только хуже...Изначально, это свойство было везде отключено.
    Последнее редактирование модератором: 20 мар 2015
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Думаю дело в масштабе страницы, попробуйте установить "по ширине листа" перед выводом на печать
  3. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    +1
    или проверить сам документ, подогнав под формат
  4. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    а причем тут "По ширине листа"? колонки все выводятся на листе...
  5. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    я это имел ввиду в параметрах страницы:

    Вложения:

    • 1.png
      1.png
      Размер файла:
      21,5 КБ
      Просмотров:
      4
  6. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    у вас что-то выходит за границу, вот по этому и прогоняет пустой лист, была бы рамка у ячеек - вы бы сразу заметили
  7. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    а как вывести это окно?
    --- Объединение сообщений, 19 мар 2015 ---
    имею ввиду "Параметры страницы"
  8. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Файл --> Параметры страницы

    Вложения:

    • 1.png
      1.png
      Размер файла:
      92,9 КБ
      Просмотров:
      3
  9. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    это все нашел - просто подумал, что программно надо выводить этот диалог...но вот почему лепит пустые страницы...так и не пойму
  10. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    выберите просмотр и увидете
  11. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    все решил проблему...целый день промучился с просмотром и подгонкой макета.... спасибо за помощь
  12. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.440
    Симпатии:
    374
    Баллы:
    104
    Всегда пожалуйста.

Поделиться этой страницей