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

30.09.23

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

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

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

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

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

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

 

 

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

 


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

 

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

 

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

....

 

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

 

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

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

 

word БСП

См. также

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

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    553    MadRave    1    

7

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

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

02.09.2024    3313    John_d    10    

51

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

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    4451    PROSTO-1C    12    

49

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

Описание возможности печати произвольного QR-кода в текстовом (не фискальном) документе ККМ с помощью типовых функций БПО.

22.07.2024    631    KirillZ44    6    

9

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Пример шаблона для многопоточного выполнения фонового задания на основе БСП. Шаблоны сделаны для процедуры и функции.

2 стартмани

03.05.2024    1600    25    Hitcher    3    

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