Добавим в уже имеющую печатную форму печать и подпись.
1. Сделаем две команды, старую команду оставим без изменений и добавим новую с факсимиле.
Процедура СформироватьСписокКоманд(Команды)
ДобавитьКоманду(Команды, "СчетНаОплатуПоЗаказу", "Счет на оплату", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина);
//ДобавилНачало
ДобавитьКоманду(Команды, "СчетНаОплатуПоЗаказуФаксимиле", "Счет на оплату с факсимиле", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина);
//ДобавилКонец
КонецПроцедуры
В процедуре печать определяем какую команду выбрал пользователь и вызываем процедуру СформироватьПечатнуюФорму в нее передаем 2-й параметр "НаименованиеПФ"
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "СчетНаОплатуПоЗаказу");
//ДобавилНачало
ПечатнаяФорма2 = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "СчетНаОплатуПоЗаказуФаксимиле");
//ДобавилКонец
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектов,"СчетНаОплатуПоЗаказу");
ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Счет на оплату (по заказу)'");
КонецЕсли;
//ДобавилНачало
Если ПечатнаяФорма2 <> Неопределено Тогда
ПечатнаяФорма2.ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектов,"СчетНаОплатуПоЗаказуФаксимиле");
ПечатнаяФорма2.СинонимМакета = НСтр("ru = 'Счет на оплату (по заказу)'");
КонецЕсли;
//ДобавилКонец
КонецПроцедуры
В конце процедуры СформироватьПечатнуюФорму перед выводом подвала. Добавим условие, где будем проверять, что вызвали команду с факсимиле
Функция СформироватьПечатнуюФорму(СчетаНаОплату,НаименованиеПФ) Экспорт
//тут должен быть код функции
//ДобавилНачало
Если НаименованиеПФ = "СчетНаОплатуПоЗаказуФаксимиле" Тогда
ВывестиПодписьФаксимиле(ВыборкаСчетаНаОплату,ОбластьПодвал);
КонецЕсли;
//ДобавилКонец
Результат.Вывести(ОбластьПодвал);
Возврат Результат;
КонецФункции
Если вызвали команду с факсимиле выводим подпись и печать. Файлы с картинками возьмем из справочников ОрганизацииПрисоединенныеФайлы, ФизическиеЛицаПрисоединенныеФайлы .
Процедура ВывестиПодписьФаксимиле(ВыборкаСчетаНаОплату,ОбластьПодвал)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ОрганизацииПрисоединенныеФайлы.Ссылка КАК ФайлКартинкиПечать
|ПОМЕСТИТЬ ВТ_печатьОрг
|ИЗ
| Справочник.ОрганизацииПрисоединенныеФайлы КАК ОрганизацииПрисоединенныеФайлы
|ГДЕ
| НЕ ОрганизацииПрисоединенныеФайлы.ПометкаУдаления
| И ОрганизацииПрисоединенныеФайлы.Наименование = ""_ПечатьД""
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ФизическиеЛицаПрисоединенныеФайлы.Ссылка КАК ФайлКартинкиПодпись,
| ВТ_печатьОрг.ФайлКартинкиПечать КАК ФайлКартинкиПечать
|ИЗ
| ВТ_печатьОрг КАК ВТ_печатьОрг
| ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛицаПрисоединенныеФайлы КАК ФизическиеЛицаПрисоединенныеФайлы
| ПО (ИСТИНА)
|ГДЕ
| НЕ ФизическиеЛицаПрисоединенныеФайлы.ПометкаУдаления
| И ФизическиеЛицаПрисоединенныеФайлы.Наименование = ""_ПодписьД""
| И ФизическиеЛицаПрисоединенныеФайлы.ВладелецФайла = &Подписант";
Запрос.УстановитьПараметр("Подписант", ВыборкаСчетаНаОплату.РуководительФизическоеЛицо);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВывестиПечать = Истина;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВывестиПечать Тогда
ФайлКартинкиПечать = ВыборкаДетальныеЗаписи.ФайлКартинкиПечать;
Картинка = ПолучитьДвоичныеДанныеКартинку(ФайлКартинкиПечать);
ОбластьПодвал.Рисунки.D3.Картинка = Картинка;
ВывестиПечать = Ложь;
КонецЕсли;
Картинка = ПолучитьДвоичныеДанныеКартинку(ВыборкаДетальныеЗаписи.ФайлКартинкиПодпись);
ОбластьПодвал.Рисунки.п1.Картинка = Картинка;
КонецЦикла;
КонецПроцедуры
Функция ПолучитьДвоичныеДанныеКартинку(ФайлКартинки)
ДвоичныеДанныеФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки);
Если ТипЗнч(ДвоичныеДанныеФайла) = Тип("Картинка") Тогда
Картинка = ДвоичныеДанныеФайла;
ИначеЕсли ТипЗнч(ДвоичныеДанныеФайла) = Тип("ДвоичныеДанные") Тогда
Картинка = Новый Картинка(ДвоичныеДанныеФайла);
Иначе
Картинка = Новый Картинка;
КонецЕсли;
Возврат Картинка;
КонецФункции
В режиме предприятия добавляем файлы Печати и подписи. Печать добавляем в Присоединенные файлы Организации
2. Подпись добавляем в присоединенные файлы физического лица (подписанта)
3. Далее редактируем макет. В макете в область подвала нужно добавить две пустые картинки.
Выбираем любую картинку.
Переходим в свойство. И очищаем свойство"Картинка", свойство "Линия" меняем на "нет линии"
Получается пустая картинка. К ней будем обращаться по имени.
4. Убираем фон в картинке (сделаем фон картинки прозрачным)
Открываем картинку Photoshop . Выбираем инструмент "волшебный ластик" им нажимаем в фон. Фон по принципу заливки исчезает.
Для того чтобы сохранить картинку заходим в меню файл. Выбираем пункт "сохранить для Web"
Выбираем формат ping-24. Нажимаем кнопку сохранить.
Тестировал:
1С:Комплексная автоматизация 2 (2.4.9.98)
Платформа 1С:Предприятие 8.3 (8.3.16.1148)