Добавление факсимиле/логотипа в готовую печатную форму (УТ 11)

02.06.21

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

Как вставить в любую уже сформированную форму логотип или факсимиле.

В общем, встала как-то задача, что надо "сделать ТОРГ-12 с факсимиле". Вопрос "зачем" не рассматривался, а, сами понимаете, изменить имеющуюся стандартную форму, чтобы туда можно было вставлять факсимиле нужной организации - дело крайне неблагодарное. Ну и решил я зайти с другой стороны.

Речь идет об Управлении торговлей 11, но, в целом это применимо с небольшими доработками и на бухгалтерию, и на унф и т.д. 

Есть общая форма "ПечатьДокументов", туда в конечном итоге отправляются все печатные формы, сформированные через стандартный механизм печати, значит там и будем и мучать. Я добавил ее в расширение, чтобы не снимать ее с поддержки.

Сам ТабличныйДокумент лежи в переменной "ТекущаяПечатнаяФорма".

Первое - надо получить список имеющихся в системе логотипов и факсимиле:

&НаСервере
Функция ФайлОрганизации(Организация, Тип="Логотип") Экспорт
	врРез = новый Структура;
	врРез.Вставить("Файл", 			"");
	врРез.Вставить("Имя", 			"");
	врРез.Вставить("Организация", 	Организация);
	врРез.Вставить("Расширение", 	"");
	врРез.Вставить("Существует", 	Ложь);
	врРез.Вставить("Данные", 		Неопределено);
	
	Если Тип = "Логотип" Тогда
		Если НЕ Организация.ФайлЛоготип.Пустая() Тогда
			Если Организация.ФайлЛоготип.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
				врРез.Имя = СокрЛП(Организация.ФайлЛоготип.ПутьКФайлу);
				врРез.Файл = СокрЛП(Организация.ФайлЛоготип.Том.ПолныйПутьWindows);
				Если Прав(врРез.Файл,1) <> "\" Тогда
					врРез.Файл = врРез.Файл + "\";
				КонецЕсли;
				врРез.Файл = врРез.Файл + врРез.Имя;
				врФайл = новый Файл(врРез.Файл);
				врРез.Существует = врФайл.Существует();
				врРез.Расширение = врФайл.Расширение;
				Если врРез.Существует Тогда
					врРез.Данные = новый ДвоичныеДанные(врРез.Файл);
				КонецЕсли;
			ИначеЕсли Организация.ФайлЛоготип.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
				врНаборЗаписей = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьНаборЗаписей();
				врНаборЗаписей.Отбор.Файл.Установить(Организация.ФайлЛоготип);
				врНаборЗаписей.Прочитать();
				Если врНаборЗаписей.Количество() > 0 Тогда
					врХрЛоготип = врНаборЗаписей[0].ДвоичныеДанныеФайла;
					врРез.Данные = врХрЛоготип.Получить();
					врРез.Существует = Истина;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	ИначеЕсли Тип = "Печать" Тогда
		Если НЕ Организация.ФайлФаксимильнаяПечать.Пустая() Тогда
			Если Организация.ФайлФаксимильнаяПечать.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
				врРез.Имя = СокрЛП(Организация.ФайлФаксимильнаяПечать.ПутьКФайлу);
				врРез.Файл = СокрЛП(Организация.ФайлФаксимильнаяПечать.Том.ПолныйПутьWindows);
				Если Прав(врРез.Файл,1) <> "\" Тогда
					врРез.Файл = врРез.Файл + "\";
				КонецЕсли;
				врРез.Файл = врРез.Файл + врРез.Имя;
				врФайл = новый Файл(врРез.Файл);
				врРез.Существует = врФайл.Существует();
				врРез.Расширение = врФайл.Расширение;
				Если врРез.Существует Тогда
					врРез.Данные = новый ДвоичныеДанные(врРез.Файл);
				КонецЕсли;
			ИначеЕсли Организация.ФайлФаксимильнаяПечать.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
				врНаборЗаписей = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьНаборЗаписей();
				врНаборЗаписей.Отбор.Файл.Установить(Организация.ФайлФаксимильнаяПечать);
				врНаборЗаписей.Прочитать();
				Если врНаборЗаписей.Количество() > 0 Тогда
					врХрЛоготип = врНаборЗаписей[0].ДвоичныеДанныеФайла;
					врРез.Данные = врХрЛоготип.Получить();
					врРез.Существует = Истина;
				КонецЕсли;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	Возврат врРез;
КонецФункции

&НаСервере
Функция ФайлыОрганизаций()
	врРез = новый СписокЗначений;
	врВыборка = Справочники.Организации.Выбрать();
	Пока врВыборка.Следующий() Цикл
		врФайл = ФайлОрганизации(врВыборка.Ссылка, "Логотип");
		Если врФайл.Существует Тогда
			врРез.Добавить(врФайл, СокрЛП(врВыборка.Ссылка)+" Логотип");
		КонецЕсли;
		врФайл 	= ФайлОрганизации(врВыборка.Ссылка, "Печать");
		Если врФайл.Существует Тогда
			врРез.Добавить(врФайл, СокрЛП(врВыборка.Ссылка)+" Печать");
		КонецЕсли;
	КонецЦикла;
	Возврат врРез;
КонецФункции

Таким образом получили список с имеющимися факсимиле/логотипами. Далее добавляем кнопку на форму, называем ее, скажем "Факсимиле" и вешаем обработчик, в котором просим пользователя выбрать, что он хочет вставить:

&НаКлиенте
Процедура _факсимилеВместо(Команда)
	врСписокФайлов 	= ФайлыОрганизаций();
	врОповещение = Новый ОписаниеОповещения("_ПослеВыбораРисунка", ЭтотОбъект);
	врСписокФайлов.ПоказатьВыборЭлемента(врОповещение,"Выберите изображение");	
КонецПроцедуры

&НаКлиенте
Процедура _ВыбораРисунка(Элемент, Параметры) Экспорт
    Если Элемент <> Неопределено Тогда
        врФайл = Элемент.Значение;
		врКартинка = новый Картинка(врФайл.Данные);
		врРисунок = ТекущаяПечатнаяФорма.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
		врРисунок.Картинка = врКартинка;
		врРисунок.Высота = 40; 
		врРисунок.Ширина = 40;
		врРисунок.РазмерКартинки = РазмерКартинки.Пропорционально;
		врРисунок.ГраницаСверху = Ложь;
		врРисунок.ГраницаСлева = Ложь;
		врРисунок.ГраницаСправа = Ложь;
		врРисунок.ГраницаСнизу = Ложь;
		//__ чтобы прозрачный рисунок остался прозрачным
		врРисунок.ЦветФона = новый Цвет(); 
    КонецЕсли;
КонецПроцедуры

Тестировалось все это на 

1С:Предприятие 8.3 (8.3.17.1549)

Управление торговлей, редакция 11 (11.4.13.51) 

Печатные формы УТ11 Факсимиле Логотип

См. также

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

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

29400 руб.

29.06.2023    6445    17    5    

26

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

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

7200 руб.

02.08.2023    4488    17    1    

35

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    7108    75    17    

32

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

Маленькая заметка (в трех разных масштабах) для тех, кто часто видит окно при входе в ЗУП «Новые сообщения для расшифровки по 1С-Отчетность», которое появляется через 60 секунд после запуска программы, как раз когда вы уже добрались до интересующей вас формы и начали в ней что-то активно делать:

1 стартмани

17.06.2024    2735    39    Znata_PI    5    

12

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

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5490    dimanich70    15    

22

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

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

01.03.2024    8145    dimanich70    10    

21

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

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

1 стартмани

27.10.2023    3925    31    TempTablesManager    14    

55
Оставьте свое сообщение