Вывод различных колонтитулов в разных разделах, при формировании печатной формы по шаблону Word новыми процедурами БСП

30.09.23

Разработка - БСП (Библиотека стандартных подсистем)

Необходимо было вывести колонтитулы на всех страницах, кроме последней.

Стояла задача сформировать печатную форму по шаблону Word таким образом, чтобы колонтитулы были на всех страницах, кроме последней.

Потратил много времени, полной информации нигде не нашел.

Для начала необходимо, чтобы разрыв разделов вообще был выведен в итоговый документ.

В шаблоне разрыв следует поместить между двумя областями

 

 

В последнем параметре выводе обоих областей следует указать Истина.

 


		Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьОбщая);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения, Истина); 
		
		Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьРеквизиты);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения, Истина); 

 

В процедуре УправлениеПечатью внести изменения - добавить параметр НомерРаздела, и пробросить его в процедуру ПолучитьОбластьНижнегоКолонтитула

 

Функция ОбластьМакета(СсылкаНаМакет, ОписаниеОбласти, НомерРаздела = 1) Экспорт
    
    Область = Неопределено;
    
    Если ОписаниеОбласти.ТипОбласти = "ВерхнийКолонтитул" Или ОписаниеОбласти.ТипОбласти = "ВерхнийЧетныйКолонтитул" 
        Или ОписаниеОбласти.ТипОбласти = "ВерхнийТитульныйКолонтитул" Тогда
        Область = УправлениеПечатьюСлужебный.ПолучитьОбластьВерхнегоКолонтитула(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти);
    ИначеЕсли ОписаниеОбласти.ТипОбласти = "НижнийКолонтитул"  Или ОписаниеОбласти.ТипОбласти = "НижнийЧетныйКолонтитул"  
        Или ОписаниеОбласти.ТипОбласти = "НижнийТитульныйКолонтитул" Тогда
        Область = УправлениеПечатьюСлужебный.ПолучитьОбластьНижнегоКолонтитула(СсылкаНаМакет, ОписаниеОбласти.ИмяОбласти, НомерРаздела);
    ИначеЕсли ОписаниеОбласти.ТипОбласти = "Общая" 
        Или ОписаниеОбласти.ТипОбласти = "СтрокаТаблицы"

....

 

Итого код печати

 

		ОбластьОбщая = Новый Структура;
		ОбластьОбщая.Вставить("ИмяОбласти", "Общая");
		ОбластьОбщая.Вставить("ТипОбласти", "Общая");          
		
		ОбластьРеквизиты = Новый Структура;
		ОбластьРеквизиты.Вставить("ИмяОбласти", "Реквизиты");
		ОбластьРеквизиты.Вставить("ТипОбласти", "Общая");          
		
		ОбластьНижнийКолонтитул = Новый Структура;
		ОбластьНижнийКолонтитул.Вставить("ИмяОбласти", "НижнийКолонтитул");
		ОбластьНижнийКолонтитул.Вставить("ТипОбласти", "НижнийКолонтитул");
		ОбластьНижнийКолонтитул.Вставить("НомерРаздела", 1);    
		
		ОбластьНижнийКолонтитул2 = Новый Структура;
		ОбластьНижнийКолонтитул2.Вставить("ИмяОбласти", "НижнийКолонтитул");
		ОбластьНижнийКолонтитул2.Вставить("ТипОбласти", "НижнийКолонтитул");
		ОбластьНижнийКолонтитул2.Вставить("НомерРаздела", 2);    

		Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьОбщая);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения, Истина); 
		
		Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьРеквизиты);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения, Истина); 
		
		Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьНижнийКолонтитул);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения);
		
		Область = УправлениеПечатью.ОбластьМакета(Макет, ОбластьНижнийКолонтитул2, 2);
		УправлениеПечатью.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФормаДокумента, Область, МассивДанныхЗаполнения);

 

word БСП

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотекам стандартных подсистем и электронных документов. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП и БЭД.

1800 руб.

21.11.2024    6654    33    23    

36

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист Платформа 1С v8.3 1C:ERP Бесплатно (free)

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

12.05.2025    1684    PROSTO-1C    1    

13

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

В данной статье рассмотрен один из вариантов добавления собственных обработчиков обновления в расширении конфигурации. При смене версии расширения - автоматический вызов процесса обновления информационной базы.

29.04.2025    1623    krasnoshchekovpavel    7    

16

БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

Описание способа создания глобального обработчика оповещений (событие формы), не привязанного к какой-то конкретной форме.

01.04.2025    1182    krasnoshchekovpavel    0    

9

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Россия Бесплатно (free)

Как создать внешнюю печатную форму для конфигураций на базе БСП с желанной всеми разработчиками фишкой - автоматическим открытием обработки в конфигураторе с остановкой отладчика внутри процедуры Печать() при выполнении интерактивной команды печати.

24.03.2025    1763    GeraltSnow    6    

30

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Добавим метки в новый документ средствами БСП.

10.02.2025    5309    John_d    24    

54
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Aleskey_K 34 02.10.23 09:04 Сейчас в теме
Вот тут https://infostart.ru/1c/articles/519190/ нашёл более простое решение, без программирования, почти ☺
Смысл в том, чтобы в колонтитуле ввести формулу вида: { IF { PAGE \* MERGEFORMAT } = { NUMPAGES \* MERGEFORMAT } "" "Поставщик" \* MERGEFORMAT }
unknown181538; +1 Ответить
2. unknown181538 161 02.10.23 15:15 Сейчас в теме
(1) да, то решение мне больше нравится. И оно подходит и для других способов формирования. Только вот, мне не удалось найти его поиском вовремя :)
3. Aleskey_K 34 02.10.23 16:55 Сейчас в теме
(2) Ваше решение тоже хорошее, пригодится многим.
4. user1719247 12.08.24 08:56 Сейчас в теме
Спасибо, оба решения нужны!
Оставьте свое сообщение