helpf.pro
Регистрация

v8: QR код

Ermak
09.09.2015 17:38Прочитано: 4176

Добрый день! Подскажите как можно решить такую проблему, подцепил я QR код к макеты, вывожу информацию получается очень большой код, есть способ его уменьшить но чтобы вмещалась вся информация? Потом я сохраняю в PDF, открываю файл а там очень большой код, даже не вмещается на лист файла, как сделать чтобы все вмещалось???

Вот мой код

Код 1C v 8.3
  ТабДок = Новый ТабличныйДокумент;   
Код 1C v 8.3
  Макет = ПолучитьМакет("Макет");   
Код 1C v 8.3
  Шапка = Макет.ПолучитьОбласть("Шапка");   
Код 1C v 8.3
  Область3 = Макет.ПолучитьОбласть("Область3");   
Код 1C v 8.3
  Период = ПредставлениеПериода(НачалоДня(НачПериода),КонецДня(КонПериода),);    
Код 1C v 8.3
  Область1 = Макет.ПолучитьОбласть("Область1");   
Код 1C v 8.3
  Область1.Параметры.Дата = Период;   
Код 1C v 8.3
  Область3.Параметры.Дата = Период;   
Код 1C v 8.3
  сч=0;   
Код 1C v 8.3
  Для Каждого ТС Из Предупреждения Цикл   
Код 1C v 8.3
  Если Не ТС.Выписывать Тогда   
Код 1C v 8.3
  Продолжить;   
Код 1C v 8.3
  КонецЕсли;   
Код 1C v 8.3
  Запрос = Новый Запрос (   
Код 1C v 8.3
  "ВЫБРАТЬ   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.Период,   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.ЛицевойСчет,   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.Услуги,   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.Регион,   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.Сумма,   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.Период КАК Период1   
Код 1C v 8.3
  |ИЗ   
Код 1C v 8.3
  |РегистрНакопления.НачислениеКвартПлатыЛСОплата КАК НачислениеКвартПлатыЛСОплата   
Код 1C v 8.3
  |ГДЕ   
Код 1C v 8.3
  |НачислениеКвартПлатыЛСОплата.ЛицевойСчет =ЛицевойСчет   
Код 1C v 8.3
  |И НачислениеКвартПлатыЛСОплата.Услуги =Услуги   
Код 1C v 8.3
  |И НачислениеКвартПлатыЛСОплата.Регион =Регион");   
Код 1C v 8.3
  ТекстУсловий="";   
Код 1C v 8.3
  Запрос.УстановитьПараметр("ЛицевойСчет",ТС.ЛицевойСчет);   
Код 1C v 8.3
  Запрос.УстановитьПараметр("Услуги",Услуга);   
Код 1C v 8.3
  Запрос.УстановитьПараметр("Регион",Регион);   
Код 1C v 8.3
  ТекстУсловий=ТекстУсловий+?(ТекстУсловий="",""," И ");   
Код 1C v 8.3
  ТекстУсловий=ТекстУсловий+" Квитанция.Дата>=&НачДата И Квитанция.Дата<=&КонДата";    
Код 1C v 8.3
  Результат = Запрос.Выполнить().Выбрать();   
Код 1C v 8.3
  Пока Результат.Следующий() Цикл   
Код 1C v 8.3
  ПослОплата = Результат.Сумма;   
Код 1C v 8.3
  ДатаОплаты = Результат.Период;   
Код 1C v 8.3
  КонецЦикла;   
Код 1C v 8.3
  сч=сч+1;    
Код 1C v 8.3
  ТабДок.Вывести(Шапка);   
Код 1C v 8.3
  ЛСч = СтрЗаменить(ТС.ЛицевойСчет,Символы.НПП,"");   
Код 1C v 8.3
  ЛСчет = Прав(ЛСч, 6);    
Код 1C v 8.3
  Область1.Параметры.ЛС = ЛСчет;   
Код 1C v 8.3
  ТабДок.Вывести(Область1);   
Код 1C v 8.3
  Область2 = Макет.ПолучитьОбласть("Область2");   
Код 1C v 8.3
  Долг = Формат(ТС.Долг, "ЧДЦ=2");   
Код 1C v 8.3
  Область2.Параметры.Сумма = Долг;   
Код 1C v 8.3
  Область2.Параметры.ПослОпл = Формат(ПослОплата, "ЧДЦ=2") + " " + "руб." + " " + "от" + " " + Формат(ДатаОплаты, "ДФ=dd.MM.yyyy") + " " + "г.";   
Код 1C v 8.3
  Месяц = Формат(КонПериода, "ДФ=MM");   
Код 1C v 8.3
  Год = Формат(КонПериода, "ДФ=yyyy");   
Код 1C v 8.3
  Область2.Рисунки.ЛШК.Объект.ТекстКода = 1862800051+Месяц+Год+ТС.Долг+ЛСч;   
Код 1C v 8.3
  Область2.Рисунки.ДШК.Объект.barcode = "Name=";   
Код 1C v 8.3
  Область2.Рисунки.ДШК.Высота = 10;   
Код 1C v 8.3
  //Область2.Рисунки.ДШК.border_width = 50;   
Код 1C v 8.3
  ФИОбуфер=СтрЗаменить(ТС.Плательщик," ", Символы.ПС);   
Код 1C v 8.3
  Ф=СтрПолучитьСтроку(ФИОбуфер,1);    
Код 1C v 8.3
  ФИО= Ф + " " + ВРЕГ(Лев(СтрПолучитьСтроку(ФИОбуфер,2),1))+"."+ВРЕГ(Лев(СтрПолучитьСтроку(ФИОбуфер,3),1)+".");    
Код 1C v 8.3
  Область2.Параметры.Ответст = ФИО;   
Код 1C v 8.3
  Область2.Параметры.Адрес = ТС.Адрес;   
Код 1C v 8.3
  Табл=УстановленноеОборудование(ТС.ЛицевойСчет);   
Код 1C v 8.3
  Для Каждого ТС1 Из Табл Цикл   
Код 1C v 8.3
  Область2.Параметры.Оборудования = ТС1.Оборудование;   
Код 1C v 8.3
  КонецЦикла;   
Код 1C v 8.3
  Область2.Параметры.Стоимость = "0";   
Код 1C v 8.3
  Область2.Параметры.Сумма = Долг;    
Код 1C v 8.3
  Область2.Параметры.Итого = Долг;   
Код 1C v 8.3
  ТабДок.Вывести(Область2);    
Код 1C v 8.3
  Подвал = Макет.ПолучитьОбласть("Подвал");   
Код 1C v 8.3
  ТабДок.Вывести(Подвал);    
Код 1C v 8.3
  Область3.Параметры.ЛС = ЛСчет;     
Код 1C v 8.3
  Область3.Параметры.Сумма = Долг;   
Код 1C v 8.3
  Область3.Рисунки.ЛШК1.Объект.ТекстКода = 1862800051+ Месяц+Год+ТС.Долг+ЛСч;    
Код 1C v 8.3
  Область3.Параметры.Ответст = ФИО;   
Код 1C v 8.3
  Область3.Параметры.Адрес = ТС.Адрес;    
Код 1C v 8.3
  Для Каждого ТС1 Из Табл Цикл   
Код 1C v 8.3
  Область3.Параметры.Оборудования = ТС1.Оборудование;   
Код 1C v 8.3
  КонецЦикла;   
Код 1C v 8.3
  Область3.Параметры.Стоимость = "0";   
Код 1C v 8.3
  Область3.Параметры.Сумма = Долг;    
Код 1C v 8.3
  Область3.Параметры.Итого = Долг;   
Код 1C v 8.3
  ТабДок.Вывести(Область3);   
Код 1C v 8.3
  КонецЦикла;   
Код 1C v 8.3
  //Опции отображения макета   
Код 1C v 8.3
  ТабДок.ОтображатьСетку = Ложь;   
Код 1C v 8.3
  ТабДок.ОтображатьЗаголовки = Ложь;   
Код 1C v 8.3
  //Вывод макета на экран   
Код 1C v 8.3
  ТабДок.Показать("Печать созданных документов");   
Код 1C v 8.3
  ТабДок.Автомасштаб=истина;   
Код 1C v 8.3
  ТабДок.РазмерСтраницы="A4";   
Код 1C v 8.3
 ТабДок.Записать("E:\file.pdf", ТипФайлаТабличногоДокумента.PDF);   
Yandex
Возможно, вас также заинтересует
Реклама на портале
EMigachev
10.09.2015 13:40Ответ № 1

макет поделен на области? рисунок для QR находится в одной области?

он не должен выходить за края области

Ermak
10.09.2015 15:27Ответ № 2

Макет на областиНаходится в области

Код не выходит за край области, и все равно не правильно показывает

EMigachev
10.09.2015 16:48Ответ № 3

а если программно задать ширину рисунка?

Ermak
10.09.2015 16:53Ответ № 4

Покажите на примере, я делал все равно слетало

EMigachev
10.09.2015 17:38Ответ № 5

В вашем же коде есть:

Область2.Рисунки.ДШК.Высота = 10;

и также нужно установить Ширину

Ermak
11.09.2015 10:15Ответ № 6

В свойства QR код есть параметр ширины, я прописываю его но мне выдает ошибку{Форма.Форма.Форма(92)}: Поле объекта не обнаружено (border_width)

Область2.Рисунки.ДШК.border_width = 10;

IBReiter
11.09.2015 13:15Ответ № 7

А почему border_width вы присваиваите, а не ширина

Ermak
14.09.2015 08:30Ответ № 8

я перепутал, присвоил ширину, печатная форма выводится нормально, а в ФАЙЛЕ PDF линейный и двухмерный принимают большой масштаб, как исправить?

Ermak
14.09.2015 17:09Ответ № 9

я решил сделать через виртуальный принтер DoPDF. Только не знаю как сделать чтобы не выбирать куда сохранить, а заранее указать путь.

Код 1C v 8.х
  Локатор = Новый COMОбъект("WbemScripting.SWbemLocator");
            СлужбаWMI = Локатор.ConnectServer();
            ПринтерыВСистеме = СлужбаWMI.InstancesOf("Win32_Printer");
            Для Каждого Принтер Из ПринтерыВСистеме Цикл
                Если Принтер.Name="doPDF v7" Тогда
                    ИмяПринтера = Принтер.Name;
                КонецЕсли;
            КонецЦикла;  
            ТабДок.ИмяПринтера =ИмяПринтера;
            ТабДок.Напечатать(Истина);
EMigachev
14.09.2015 17:34Ответ № 10

С этим принтером не подскажу, но есть пример с другими:

Печать в PDF с использованием виртуального принтера bioPDF

или

Экспорт печатных форм и любых данных из 1С в BMP, JPEG, PCX, PDF, PNG и TIFF.

Ermak
15.09.2015 08:24Ответ № 11

спасибо

Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.