База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать внешнюю печатную форму счета на оплату в УТ 11.4 с разными подписями › Ответ в теме: Как создать внешнюю печатную форму счета на оплату в УТ 11.4 с разными подписями
Для УТ 11.4 сделать внешнюю обработку с формой печати Счета на оплату с разными подписями и печатями для разных организаций — задача вполне решаемая.
Вот конкретный план и пример, как это сделать:
1. Создайте внешнюю обработку с формой, в которой будет выбор документа «Счет на оплату» (Документ.СчетНаОплатуПокупателю).
2. Загрузите сам документ Счет на оплату по ссылке, переданной в обработку (или выберите из списка).
3. Определите в обработке реквизиты для хранения подписей и печатей для каждой организации. Обычно это картинки (формат .bmp, .png) или файлы, которые загружаются в обработку.
4. В модуле обработки реализуйте процедуру формирования печатной формы с подстановкой нужной печати и подписи в зависимости от организации.
5. Используйте объект ТабличныйДокумент для формирования печатной формы — это стандартный способ в 1С.
6. Вставьте изображения печати и подписи в нужные места печатной формы через ТабличныйДокумент.
—
### Пример кода для внешней обработки (упрощённый):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
&НаКлиенте Процедура ПечатьСчетаНаОплату(СсылкаСчета) // Получаем документ Счет = СсылкаСчета.ПолучитьОбъект(); // Создаем табличный документ ТабДок = Новый ТабличныйДокумент; // Заполняем шапку счета ТабДок.ВывестиСтроку("Счет на оплату № " + Счет.Номер + " от " + Формат(Счет.Дата, "ДФ=dd.MM.yyyy")); ТабДок.ВывестиСтроку("Организация: " + Счет.Организация.Наименование); ТабДок.ВывестиСтроку(""); // Заполняем таблицу товаров ТаблицаТоваров = Счет.Товары; ТабДок.ВывестиСтроку("Наименование | Кол-во | Цена | Сумма"); Для Каждого Строка Из ТаблицаТоваров Цикл ТабДок.ВывестиСтроку(Строка.Номенклатура + " | " + Формат(Строка.Количество, "ЧГ=0") + " | " + Формат(Строка.Цена, "ЧЦ=2") + " | " + Формат(Строка.Сумма, "ЧЦ=2")); КонецЦикла; // Вставляем печать и подпись в зависимости от организации Если Счет.Организация = Справочники.Организации.НайтиПоНаименованию("ООО Ромашка") Тогда // Загружаем изображения из файлов или ресурсов Печать = ПолучитьИзображениеПечати("RomashkaStamp.png"); Подпись = ПолучитьИзображениеПодписи("RomashkaSign.png"); ИначеЕсли Счет.Организация = Справочники.Организации.НайтиПоНаименованию("ЗАО Василек") Тогда Печать = ПолучитьИзображениеПечати("VasilekStamp.png"); Подпись = ПолучитьИзображениеПодписи("VasilekSign.png"); Иначе Печать = Неопределено; Подпись = Неопределено; КонецЕсли; Если Печать <> Неопределено Тогда ТабДок.ВывестиСтроку(""); ТабДок.ВывестиИзображение(Печать, 100, 100); КонецЕсли; Если Подпись <> Неопределено Тогда ТабДок.ВывестиСтроку(""); ТабДок.ВывестиИзображение(Подпись, 100, 50); КонецЕсли; // Показать печатную форму ТабДок.Показать(); КонецПроцедуры // Функции загрузки изображений из файлов или ресурсов Функция ПолучитьИзображениеПечати(ИмяФайла) Путь = КаталогВременныхФайлов() + "" + ИмяФайла; Если Файлы.Существует(Путь) Тогда Возврат Новый Рисунок(Путь); Иначе Возврат Неопределено; КонецЕсли; КонецФункции Функция ПолучитьИзображениеПодписи(ИмяФайла) // Аналогично Возврат ПолучитьИзображениеПечати(ИмяФайла); КонецФункции |
—
### Что нужно сделать дополнительно:
— Подготовить изображения печатей и подписей для каждой организации и положить их в папку, доступную обработке.
— В форме обработки добавить выбор документа «Счет на оплату» (через стандартный справочник или выбор из списка).
— Вызвать процедуру печати с передачей ссылки на выбранный счет.
—
### Рекомендации:
— Если хотите, чтобы печать и подпись были в определённых местах, используйте методы ТабличногоДокумента для позиционирования (например, УстановитьТекущуюЯчейку).
— Можно сделать отдельный справочник «Печати и подписи организаций» с привязкой к организациям, чтобы не хранить изображения в обработке.
— Для более сложных печатных форм используйте встроенный редактор печатных форм или внешние шаблоны (FastReport).
—
Рекомендую посмотреть пример по работе с ТабличнымДокументом и вставке изображений здесь:
https://infostart.ru/public/1790657/ (пример с печатной формой и изображениями)
Если нужна готовая обработка — на Infostart часто выкладывают внешние печатные формы для УТ 11, можно поискать там с ключевыми словами «внешняя печатная форма счет на оплату с печатью».
—
Если нужна помощь с конкретным кодом или формой — могу помочь написать более точный пример.