Добавить штампы табличный документ. Размещает штампы в переданном табличном документе.
// Размещает штампы в переданном табличном документе.
//
// Параметры:
// Документ - ТабличныйДокумент - табличный документ, в который требуется добавить штампы.
// ОписаниеШтампов - Массив - массив табличных документов, содержащих штампы, полученные
// функцией ЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи.
// В данном случае переданные штампы будут выведены в конец документа,
// если в макете подписываемого табличного документа не определены области
// для размещения штампов, которые удовлетворяют следующим условиям:
// - область вывода штампа размером две колонки и семь строк, с
// произвольной шириной колонок;
// - имя области задано как ШтампЭП + порядковый номер штампа,
// например: ШтампЭП1 и т.д.
// В таком случае штампы будут выведены в заданные области в том
// порядке, в котором документ был подписан.
// - Соответствие - описывает места вывода штампов, где:
// * Ключ - Строка - имя области, куда выводить штамп. Для такой области должна
// быть установлена произвольная ширина колонок,
// отличная от ширины колонок остального документа.
// * Значение - ТабличныйДокумент - штамп, полученный функцией
// ЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи.
// Размеры - Структура - необязательный параметр, позволяет изменять размеры штампа, со свойствами:
// * ЛеваяКолонка - Число - ширина левой колонки штампа, содержащей заголовки свойств.
// По умолчанию - 10.
// * ПраваяКолонка - Число - ширина правой колонки штампа, содержащей значения свойств.
// По умолчанию - 30.
//
Процедура ДобавитьШтампыВТабличныйДокумент(Документ, ОписаниеШтампов, Размеры = Неопределено) Экспорт
Если Размеры = Неопределено Тогда
Размеры = Новый Структура;
Размеры.Вставить("ЛеваяКолонка", 10);
Размеры.Вставить("ПраваяКолонка", 30);
КонецЕсли;
Если ТипЗнч(ОписаниеШтампов) = Тип("Массив") Тогда
ИндексШтампа = 1;
Для Каждого Штамп Из ОписаниеШтампов Цикл
ИмяОбласти = "ШтампЭП" + Строка(ИндексШтампа);
ОбластьНайдена = Документ.Области.Найти(ИмяОбласти) <> Неопределено;
Если ОбластьНайдена Тогда
Документ.ВставитьОбласть(Штамп.Области.Штамп, Документ.Области[ИмяОбласти],, Истина);
Документ.Области.ШтампЛеваяКолонка.ШиринаКолонки = Размеры.ЛеваяКолонка;
Документ.Области.ШтампПраваяКолонка.ШиринаКолонки = Размеры.ПраваяКолонка;
Иначе
Документ.Вывести(Штамп.ПолучитьОбласть("Отступ"));
Документ.Вывести(Штамп.ПолучитьОбласть("ОбластьСтрокШтамп"));
Документ.Области.ОбластьСтрокШтамп.ШиринаКолонки = 10;
Документ.Области.ШтампЛеваяКолонка.ШиринаКолонки = Размеры.ЛеваяКолонка;
Документ.Области.ШтампПраваяКолонка.ШиринаКолонки = Размеры.ПраваяКолонка;
Документ.Области.ОтступШтампа.ШиринаКолонки = 3;
КонецЕсли;
ИндексШтампа = ИндексШтампа + 1;
КонецЦикла;
Иначе
Для Каждого ОписаниеШтампа Из ОписаниеШтампов Цикл
ИмяОбласти = ОписаниеШтампа.Ключ;
Штамп = ОписаниеШтампа.Значение;
ОбластьНайдена = Документ.Области.Найти(ИмяОбласти) <> Неопределено;
Если ОбластьНайдена Тогда
Документ.ВставитьОбласть(Штамп.Области.Штамп, Документ.Области[ИмяОбласти],, Истина);
Документ.Области.ШтампЛеваяКолонка.ШиринаКолонки = Размеры.ЛеваяКолонка;
Документ.Области.ШтампПраваяКолонка.ШиринаКолонки = Размеры.ПраваяКолонка;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ТабличныйДокументСоШтампом (БСП)
ШтампВизуализацииЭлектроннойПодписи (БСП)
Добавить водяной знак (изображение) в табличный документ
Заполнение табличного документа
ТабличныйДокументПоДвоичнымДанным (БСП)
РаспечататьТабличныеДокументы (БСП)
Объединение табличных документов
Как загрузить в табличную часть одного документа табличную часть другого документа?
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)