8.х Вывод общего количества страниц в заголовке на каждом листе

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

  1. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    1С:Предприятие 8.3 (8.3.6.2152) режим управляемых форм.

    И снова здравствуйте. Имеется макет печатной формы - с областями "заголовок", "шапка", "строка" и "подвал". Разумеется размер итоговой таблицы заранее неизвестен, при заполнении таблицы делаю ПроверитьВывод и при необходимости вставляю горизонтальный разделитель. Так вот задача состоит в том, что необходимо выводить заголовок на каждой странице, а в этом самом заголовке заполнить общее количество страниц в документе. Подскажите пожалуйста как можно такое реализовать, ведь необходимую циферку я получаю только после полного заполнения табличного документа и как её запихать в уже выведенные области - ума не приложу?
  2. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Неужели нет решения? Единственное, что мне пока приходит в голову - разбить документ на несколько страниц. Т.Е. одна страница - один табличный документ. Но опять же не уверен что это правильно, да и не знаю возможно ли в 1С динамически создавать табличные документы и как при этом их имена задавать...
  3. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Как один из вариантов, в ключевое поле, где выводиться общее количество страниц, заполняете какой либо относительно уникальный текст, например "ЗдесьМнеНужноВывестиОбщееКоличествоСтраниц" ( - ключевая фраза), а далее после формирования табличного документа, выполняете его доработку, программно, находите вашу "ключевую фразу" и заменяете ее на нужный текст, в данном случае количество страниц.
    --- Объединение сообщений, 1 авг 2016 ---
    Пример :
    Код:
        // Вставим лого в табличный документ
        НайденнаяОбласть = ТабличныйДокумент.НайтиТекст("ЛоготипПростоПредлагатьЛучшее", , , , Истина, Истина, Ложь); //НайденнаяОбласть.Имя
        Пока НайденнаяОбласть <> Неопределено Цикл
          
            НайденнаяОбласть.Текст = "";
            //МассивИменОбластейКМодификации.Добавить(НайденнаяОбласть.Имя);
            // не забываем очищать текст или менять на что либо пристойное, иначе уйдем в бесконечный цикл
            //НайденнаяОбласть.Картинка                        = мЛоготипПродо;
            //НайденнаяОбласть.ВертикальноеПоложениеКартинки   = ВертикальноеПоложение.Верх;
            //НайденнаяОбласть.ГоризонтальноеПоложениеКартинки = ГоризонтальноеПоложение.Лево;
            //НайденнаяОбласть.РазмерКартинки                  = РазмерКартинки.АвтоРазмер;
            // добавим рисунок в табличный документ
            РисунокСЛоготипом = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
            РисунокСЛоготипом.Картинка = мЛоготипПродо; // наш логотипчик
            РисунокСЛоготипом.Расположить(НайденнаяОбласть);
          
            // размер зависит от параметров вывода страницы в pdf
            РисунокСЛоготипом.Высота         = 15;
            РисунокСЛоготипом.Ширина         = 160;//180;
          
            // по умолчанию обводит черным цветом, нам так не надо
            РисунокСЛоготипом.ЦветЛинии      = Новый Цвет(255, 255, 255);
          
            НайденнаяОбласть = ТабличныйДокумент.НайтиТекст("ЛоготипПростоПредлагатьЛучшее", , , , Истина, Истина, Ложь);
          
        КонецЦикла;
    
    Leprecus нравится это.
  4. TopicStarter Overlay
    Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Спасибо, не думал что всё так элементарно)))
    Вот что получилось:
    Код:
    Область = ТабличныйДокумент.НайтиТекст("ВсегоЛистовВДокументе");
        Пока Область <> Неопределено Цикл
        Область.Текст = Строка(НомерЛиста);
        Область = ТабличныйДокумент.НайтиТекст("ВсегоЛистовВДокументе");
        КонецЦикла; 
Похожие темы
  1. Brave
    Ответов:
    3
    Просмотров:
    1.325
  2. Harley
    Ответов:
    26
    Просмотров:
    1.000
  3. MyNameNoName
    Ответов:
    17
    Просмотров:
    5.707
  4. Viktor2
    Ответов:
    7
    Просмотров:
    1.631
  5. andrey-ekt78
    Ответов:
    15
    Просмотров:
    2.353
Загрузка...

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