Простой способ добавить факсимильную подпись и печать в печатную форму

21.01.21

Задачи пользователя - Адаптация типовых решений

Актуальная задача добавить факсимильную печать и подпись в печатную форму.

Добавим в уже имеющую печатную форму печать и подпись.

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)

факсимильная подпись печать

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4454    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    2957    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1298    dimanich70    6    

13

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    1997    13    avmartynov    10    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2078    21    progmaster    7    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. al_zzz 309 08.04.20 10:54 Сейчас в теме
Вовремя ваша публикация подъехала! Как раз задача стоит добавить в впф факсимиле.
2. Неопределено 90 08.04.20 11:01 Сейчас в теме
Фотошоп стоит много денег. Есть бесплатный GIMP с выделением через волшебную палочку и обычным ластиком.
v3rter; Robot; CSiER; Fox-trot; sasha123super1; ipoloskov; Sedaiko; +7 Ответить
10. ipoloskov 162 08.04.20 15:13 Сейчас в теме
(2) Paint.net еще
pridecom; bugtester; user649057_89194416094; v3rter; MishaD; +5 Ответить
3. Torin 741 08.04.20 11:13 Сейчас в теме
4. Убираем фон в картинке (сделаем фон картинки прозрачным)
- без фотошопа и в онлайне
https://photoshop-online.biz/edit_photo/


а так + :)
Pavlmir; v3rter; prestige; rpgshnik; adhocprog; Chif13; +6 Ответить
4. Mx00 247 08.04.20 13:01 Сейчас в теме
для этой задачи нет смысла менять конфигурацию - на инфостарте куча полезностей для создания внешней печатной формы (например https://infostart.ru/public/535969/) и даже для обработки прозрачного фона есть (https://infostart.ru/public/186861/)
ИМХО бесполезная публикация :-)
taasha25; sasha123super1; prestige; Teut_Vlad; +4 Ответить
5. John_d 5284 08.04.20 13:14 Сейчас в теме
(4) я не писал про изменение конфигурации. Внешние печатные формы легко дорабатываются. А если печатная форма встроена в конфигурацию, то факсимиле можно сделать во внешний печатной форме.
9. Mx00 247 08.04.20 15:12 Сейчас в теме
(5)
я не писал про изменение конфигурации

а про что ты писал?
6. MrFlanker 219 08.04.20 14:19 Сейчас в теме
Можно наверное написать что подобный подход можно применять без изменения конфигурации.
prestige; +1 Ответить
7. RuzAleks 108 08.04.20 15:06 Сейчас в теме
Я использовал подобный метод для реализации внешних печ. форм, но чтобы не зависеть от типового алгоритма, вызывал функцию вставки картинки ПОСЛЕ того как ТабличныйДокумент уже будет сформирован стандартной командой, при этом типовой макет менять не нужно и снижается риск, что при изменении типового макета придется опять в него картинки встраивать. Сложность только в первоначальном определении положении и размера картинки относительно области макета, но при отладке ВПФ можно первый раз настроить размер и положении и прописать в коде.
8. Мастер1С 780 08.04.20 15:11 Сейчас в теме
(7) Хорошо бы каким-то образом стандартный механизм БСП отображения подписи и печати прикрутить к внешним печатным формам. У меня не получилось, а у вас?
БСП версии 3.0.3.
SAShikutkin; +1 Ответить
13. RuzAleks 108 09.04.20 10:22 Сейчас в теме
(8) А Вы под "стандартным механизмом БСП" что подразумеваете? Судя по документации БСП в подсистеме печати нет интерфейса для работы с факсимиле, за исключением переопределяемой процедуры ПриПолученииПодписейИПечатей, которая в Комплексной не вызывается. А если Вы про ФормированиеПечатныхФорм.ВывестиФаксимилеВТабличныйДокумент() в Комплексной, то там область табличного документа заменяется картинкой и она применима только при печати счета, т. к. области с подписями у всех макетов разные, а создавать и хранить картинку подвала для каждой печатной формы нецелесообразно. Я же храню отдельно картинку для печати и отдельно каждую подпись лиц, имеющих право подписи. Потом в табличный документ программно добавляю в нужные места нужные подписи.
14. Мастер1С 780 09.04.20 15:13 Сейчас в теме
(13) Я имею ввиду то, что если вы добавите правильные области в макеты печатных форм, то после формирования печатной формы сверху появляется галочка - вывести подпись и печать. Интегрированные в конфигурацию печатные формы - да, так работает. Внешние печатные формы - нет, не работает. По крайней мере у меня не получилось. Вы не пробовали?
user989550; +1 Ответить
16. alevnev 23.12.20 17:45 Сейчас в теме
(8) В типовой БП 3.0 используется для вывода общая форма "Печать документов", в которой для вывода факсимиле используется флажок "Подпись и печать". Правда, он появляется только при определенных в макете областей, имена которых начинаются (содержат) слово "Факсимиле".
Перед тем тем, как вернуть созданный из макета табличный документ в коллекцию печатных форм, надо заполнить эти области через вызов процедуры БСП УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью().
У меня в БП 3.0.81.25 почти все внешние печатные формы именно так оформлено.
17. myachinay 05.04.22 21:06 Сейчас в теме
(16)
УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью()

Здравствуйте! Я добилась чтобы появлялся флажок "Подпись и печать" на форме печати. И процедуру из БСП использовала:
...
ТабДокумент.Вывести(ОбластьМакета);

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент,
НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);

УправлениеПечатьюБП.ДополнитьДокументПодписьюИПечатью(ТабДокумент, Шапка, ОбъектыПечати, ПараметрыПечати);
КонецЦикла;


Возврат ТабДокумент;
...
Но вот ни подпись, ни печать в выводимой внешней печатной форме не появляются. Подскажите в какую сторону копать?
В настройках организации конечно файлы факсимиле загружены
18. user796327 03.09.22 14:46 Сейчас в теме
(17) Здравствуйте! Вы нашли решение?
19. inboxnn 14.10.22 23:06 Сейчас в теме
(17) Здравствуйте! Вы добились вывода факсимиле? У меня тоже флажок вывелся, дальше никак
20. petropavel 47 24.11.22 21:15 Сейчас в теме
(19) Для вывода факсимиле в параметр ИмяФайлаПечатнойФормы процедуры ВывестиТабличныйДокументВКоллекцию нужно передавать именно соответствие, а не просто имя файла. Тогда у меня заработал вывод факсимиле

// ИмяФайлаПечатнойФормы - Строка - имя, используемое при сохранении печатной формы в файл;
// - Соответствие из КлючИЗначение:
// * Ключ - ЛюбаяСсылка - ссылка на объект печати;
// * Значение - Строка - имя файла.
jek-m; Olga12; +2 Ответить
22. jek-m 26.11.23 04:17 Сейчас в теме
(20) (21) Спасибо, получилось!
Я всю голову сломал, почему это факсимиле не хочет выводиться. Казалось бы, ну какая может быть связь между заполнением имени сохранения печатной формы в файл и выводом факсимиле?!
21. verniypro 6 20.03.23 18:27 Сейчас в теме
(19) в БП работает с вызовом процедуры ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати:
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриложениеКДоговоруТЗ") Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПриложениеКДоговоруТЗ", "Приложение к договору (ТЗ)",
		ПечатьДокумента(МассивОбъектовНазначения, ОбъектыПечати), ,ПолучитьМакет("ПФ_MXL_ПриложениеКДоговоруТЗ") );
	КонецЕсли;
	
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);


В процедуре задаётся реквизит ИмяФайлаПечатнойФормы в виде соответствия.
11. AlexHelmer 1707 08.04.20 15:51 Сейчас в теме
добавлю 5 копеек.
для создания прозрачной картинки, если не установлен PhotoShop, можно использовать PNG-MAKER: создатель прозрачного фона https://infostart.ru/public/186861/
меня он не раз выручал!
Legin; sebrovsky; +2 Ответить
12. Азверин 3 09.04.20 07:54 Сейчас в теме
лет 6 назад такая задача от главбуха мне показалась моветоном, а, оказывается, на ИС куча поделок на этот счёт )
15. zavsom 103 20.04.20 12:10 Сейчас в теме
А чем вам https://online-fotoshop.ru/ не подходит?
John_d; user1252779; +2 Ответить
Оставьте свое сообщение