1С: Кнопка печати на управляемой форме
Для того чтобы на форме автоматически появилась кнопка печати, достаточно:
1.Создать команду, с именем надписи которая будет в выпадающей кнопке печати

2. В модуле команды разместить код вывода печатной формы. Примерно что-то в этом духе:
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
Функция КомпонентаФормированияQRКода() QRCodeGenerator = Неопределено; Попытка Если ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиQRКода24", "QR") Тогда QRCodeGenerator = Новый("AddIn.QR.QRCodeExtension"); Иначе Возврат Неопределено; КонецЕсли; Исключение сообщить(ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; Возврат QRCodeGenerator; КонецФункции &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) СК_ЖурналДействийПользователей.ЗарегистрироватьДействие( "ВызовКоманды", ПараметрыВыполненияКоманды.НавигационнаяСсылка, ПараметрКоманды ); ТабДок = ПолучитьТабДок(ПараметрКоманды); ТабДок.Показать(); КонецПроцедуры &НаСервере Функция ПолучитьТабДок(ДокСсылка) ТабДок = Новый ТабличныйДокумент; ТабДок.АвтоМасштаб = Истина; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СК_ГР_РеестрУведомленныхПотребителей"; QRCodeGenerator = КомпонентаФормированияQRКода(); Макет = Документы.СК_ГР_РеестрУведомленныхПотребителей.ПолучитьМакет("Квитанция"); КоличествоКвитанций=0; для каждого стр из ДокСсылка цикл КоличествоКвитанций =КоличествоКвитанций + 1; ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьШапка.Параметры.Адрес = стр.АдресПотребителя; если ТипЗнч(стр.лс)=Тип("Строка") тогда лицсч=стр.лс; иначе лицсч=стр.лс.код; конецесли; ОбластьШапка.Параметры.ЛС= "9" + Строка(лицсч); ОбластьШапка.Параметры.ФИО = стр.ФИО_потребителя; ОбластьШапка.Параметры.СуммаРуб =Цел(стр.ПолнаяОплатаЗадолженостиСумма); ОбластьШапка.Параметры.СуммаКоп = Прав(Формат(стр.ПолнаяОплатаЗадолженостиСумма,"ЧДЦ=2"),2); ИмяQRКода = "ШтрихКод"; Попытка УровеньКоррекции = 0; Размер = 120; ДанныеВШК = "ST00012|Name=ООО Сукацукая|PersonalAcc=234к234к34к|BankName=ПАО СБЕРБАНК|BIC=044525225|CorrespAcc=епукепк|Category=екпукеп|PayeeINN=4543е345е|Purpose=ОТКЛЮЧЕНИЕ/ПОДКЛЮЧЕНИЕ|PersAcc="+"9" + Строка(лицсч)+"|PayerAddress="+стр.АдресПотребителя+"|Sum="+формат(Цел(стр.ПолнаяОплатаЗадолженостиСумма*100),"ЧГ=")+""; ДанныеQRКода = QRCodeGenerator.GenerateQRCode(ДанныеВШК, УровеньКоррекции, Размер); Исключение сообщить(описаниеОшибки()); КонецПопытки; Если ДанныеQRКода <> Неопределено Тогда ОбластьШапка.Рисунки[ИмяQRКода].Картинка = Новый Картинка(ДанныеQRКода); КонецЕсли; Если КоличествоКвитанций = 2 Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КоличествоКвитанций = 0; КонецЕСли; ТабДок.Вывести(ОбластьШапка); конеццикла; ТабДок.ТолькоПросмотр = истина; ТабДок.АвтоМасштаб = истина; Возврат ТабДок; КонецФункции |
3. В модуле менеджера документа разместить функцию:
1 2 3 |
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; КонецПроцедуры |
И всё. Теперь на форме документа и форме списка появится кнопка «Печать» с выпадающим списком.
