Блог Tiger

Основная специалисзация программирование в среде 1С 8

купить запчасти

Как в 1С Предприятие 8 добавить в нижний колонтитул картинку

04.07.2013 11:01 | Просмотров: 8505 | Доход: 480.19 руб. | Комментариев: 18
[Программирование] 
Рейтинг: 5/3

Изображение в нижнем колонтитуле в 1С 8

Для того что бы вывести в табличный документ текст в нижний колонтитул проблем не возникает, а вот с картинкой уже возникают проблемы. Например нужно выводить логотип компании внизу каждого листа.

Что бы вывести в врехний колонтитул можно воспользваться функцией ПовторятьПриПечатиСтроки. Ей же можно воспользоваться и для нижниго колонтитула, но только в том случае если на странице фиксированный текст, но это как правило бывает редко.
Поэтому нам придется высчитывать для каждой страницы оставшееся свободное место и выводить в самом низу область табличного документа с картинкой нижнего колонтитула.

Для этого воспользуемся процедурой приведенной ниже.

Процедура ВыводСПроверкой(ТабДок, СекцияВывод, СекцияВерх, СекцияНиз, СекцияДоп)
	ТабДок.Вывести(СекцияВывод);
	Возврат;
	
	Если СекцияВывод = СекцияДоп Тогда
		М = Новый Массив;
		ВерхЗнач = 8;
		Для Итр = 1 По ВерхЗнач Цикл
			М.Добавить(СекцияДоп);
		КонецЦикла;
		М.Добавить(СекцияНиз);
		Если Не ТабДок.ПроверитьВывод(М) Тогда
			М.Очистить();
			М.Добавить(СекцияВывод);
			М.Добавить(СекцияНиз);
		Иначе 
			Для Итр = 1 По ВерхЗнач-1 Цикл
				ТабДок.Вывести(СекцияДоп);
			КонецЦикла;
			М.Очистить();
			М.Добавить(СекцияВывод);
			М.Добавить(СекцияНиз);				
		КонецЕсли;
	Иначе
		М = Новый Массив;
		М.Добавить(СекцияВывод);
		М.Добавить(СекцияНиз);
	КонецЕсли;
	// Проверим, уместится ли строка на странице или надо открывать новую страницу
	Если Не ТабДок.ПроверитьВывод(М) Тогда
		Если СекцияВывод = СекцияДоп Тогда 
			Возврат
		КонецЕсли;
		ВыводСПроверкой(ТабДок, СекцияДоп, СекцияВерх, СекцияНиз, СекцияДоп);
		ТабДок.Вывести(СекцияНиз);    
		ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
		ТабДок.Вывести(СекцияВерх);
	КонецЕсли;

	ТабДок.Вывести(СекцияВывод);
	Если СекцияВывод = СекцияДоп Тогда 
		ВыводСПроверкой(ТабДок, СекцияДоп, СекцияВерх, СекцияНиз, СекцияДоп);
	КонецЕсли;
КонецПроцедуры

Данная процедура вызывается вместо стандартной Вывести

Параметры процедуры: 

ТабДок - табличный документ в который выводится документ,
СекцияВывод - область табличного документа которую необходимо вывести, 
СекцияВерх - область табличного документа содержащая верхний колонтитул (если его нет можно указать пустую область),
СекцияНиз - область табличного документа содержащая верхний колонтитул, 
СекцияДоп - область табличного документа шириной в один пиксел, для вывода пустого пространства между текстом и нижним колонтитулом.

© Tiger
| Комментировать статью |
  • Tiger +458 (04.07.2013 14:25)
    Проверено на платформе 1С:Предприятие 8.2 (8.2.17.153)
    | Ответить |
  • GM +2587 (04.07.2013 15:21)
    Что-то типа шаблона, layouts..
    | Ответить |
  • WTP +711 (04.07.2013 15:27)
    ААА!!! Они кодят на русском!! Ужос!
    | Ответить |
    • GM +2587 (04.07.2013 15:38)
      Если кодят на русском Тогда ужос КонецЕсли :)
      | Ответить |
      • WTP +711 (04.07.2013 15:40)
        Интересно, а функция АффтарПешыЕсчо(); там есть?
        | Ответить |
        • GM +2587 (04.07.2013 15:42)
          Имхо мастерство зависит не от инструмента а от мастера
          | Ответить |
          • WTP +711 (04.07.2013 15:43)
            И че теперь, над инструментом не ржать? Нифига. Выглядит код на русском жутко. За то и страдает.
            | Ответить |
            • GM +2587 (04.07.2013 15:47)
              Непривычно просто
              | Ответить |
          • Tiger +458 (04.07.2013 15:51)
            Это верно, а еще зависит от заказчика.
            | Ответить |
        • Tiger +458 (04.07.2013 15:59)
          Если сам напишешь то будет...
          | Ответить |
    • Аноним 0 (24.11.2016 12:49)
      ДААААААА!
      | Ответить |
  • WTP +711 (04.07.2013 15:49)
    Тигер, тебе русский код глаза не режет? Привык поди уже?
    | Ответить |
    • Tiger +458 (04.07.2013 15:50)
      Все равно, главное что бы говнокода не было!
      | Ответить |
      • WTP +711 (04.07.2013 15:55)
        Говнокод есть неотъемлемая часть мироустройства!
        | Ответить |
    • Tiger +458 (04.07.2013 15:51)
      Ты можешь на английском так наговнокодить, что еще смешнее будет, чем на русском писать
      | Ответить |
  • Tiger +458 (04.07.2013 15:49)
    Про какие шаблоны идет речь?
    | Ответить |
    • GM +2587 (04.07.2013 16:04)
      Ну в вебе сплошь и рядом используются шаблоны, удобная штука..
      | Ответить |
      • Tiger +458 (04.07.2013 16:08)
        Ну ты можешь эту процедурку запихнуть в общий модуль и вызывать в любом месте.
        | Ответить |