Advertisement
acsent

Вывести штрихкод

Nov 11th, 2021
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.00 KB | None | 0 0
  1. Процедура СформироватьКартинкуШтрихкодаНаСервере()
  2. ВнешняяКомпонента = ПодключитьВнешнююКомпонентуПечатиШтрихкода();
  3.  
  4. ПараметрыШтрихкода = Новый Структура;
  5. ПараметрыШтрихкода.Вставить("Ширина", 400);
  6. ПараметрыШтрихкода.Вставить("Высота", 100);
  7. ПараметрыШтрихкода.Вставить("Штрихкод", Объект.Штрихкод);
  8. ПараметрыШтрихкода.Вставить("ТипКода", 4);
  9. ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
  10. ПараметрыШтрихкода.Вставить("РазмерШрифта", 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. // Или установим код EAN-13
  37. // ВнешняяКомпонента.ТипКода = 1;
  38. //
  39. // Тип смотрим в документации на внешнуюю компоненту
  40.  
  41. // Если код содержит контрольный символ, обязательно указываем
  42. ВнешняяКомпонента.СодержитКС = ПараметрыШтрихкода.ТипКода = 1;
  43.  
  44. // Если отображать контрольный символ не нужно
  45. // ВнешняяКомпонента.ВидимостьКС = Ложь;
  46.  
  47. Если ПараметрыШтрихкода.Свойство("ПрозрачныйФон") Тогда
  48. ВнешняяКомпонента.ПрозрачныйФон = ПараметрыШтрихкода.ПрозрачныйФон;
  49. КонецЕсли;
  50. Если ПараметрыШтрихкода.Свойство("ЦветФона") Тогда
  51. ВнешняяКомпонента.ЦветФона = ПараметрыШтрихкода.ЦветФона;
  52. КонецЕсли;
  53. Если ПараметрыШтрихкода.Свойство("ЦветПолос") Тогда
  54. ВнешняяКомпонента.ЦветПолос = ПараметрыШтрихкода.ЦветПолос;
  55. ВнешняяКомпонента.ЦветТекста = ПараметрыШтрихкода.ЦветПолос;
  56. КонецЕсли;
  57. Если ПараметрыШтрихкода.Свойство("ОриентацияТекста") Тогда
  58. ВнешняяКомпонента.ОриентацияТекста = ПараметрыШтрихкода.ОриентацияТекста;
  59. // 0 - по центру, 1 - слева, 2 - справа, 3-6 - растянуть
  60. КонецЕсли;
  61. Если ПараметрыШтрихкода.Свойство("ПоложениеТекста") Тогда
  62. ВнешняяКомпонента.ПоложениеТекста = ПараметрыШтрихкода.ПоложениеТекста;
  63. // 0 - снизу, 1 - сверху
  64. КонецЕсли;
  65. Если ПараметрыШтрихкода.Свойство("УголПоворота") Тогда
  66. ВнешняяКомпонента.УголПоворота = ПараметрыШтрихкода.УголПоворота;
  67. КонецЕсли;
  68. Если ВнешняяКомпонента.ОтображатьТекст И ВнешняяКомпонента.ТипКода = 1 Тогда
  69. ВнешняяКомпонента.РазделителиКода = 60;
  70. КонецЕсли;
  71. // Формируем картинку штрихкода
  72. ВнешняяКомпонента.ЗначениеКода = ПараметрыШтрихкода.Штрихкод;
  73. //Если ВнешняяКомпонента.УголПоворота = 90 ИЛИ ВнешняяКомпонента.УголПоворота = 270 Тогда
  74. // // Если установленная нами ширина меньше минимально допустимой для этого штрихкода
  75. // Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
  76. // // Скорректируем ширину
  77. // ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяШиринаКода + 10;
  78. // КонецЕсли;
  79. // // Если установленная нами высота меньше минимально допустимой для этого штрихкода
  80. // Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
  81. // // Скорректируем ширину
  82. // ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяВысотаКода + 10;
  83. // КонецЕсли;
  84. //Иначе
  85. // Если установленная нами ширина меньше минимально допустимой для этого штрихкода
  86. Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
  87. // Скорректируем ширину
  88. ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода + 10;
  89. КонецЕсли;
  90. // Если установленная нами высота меньше минимально допустимой для этого штрихкода
  91. Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда
  92. // Скорректируем ширину
  93. ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода + 10;
  94. КонецЕсли;
  95. //КонецЕсли;
  96.  
  97. // Сформируем картинку
  98. ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
  99.  
  100. // Если картинка сформировалась
  101. Если ДвоичныеДанныеКартинки <> Неопределено Тогда
  102. // Формируем из двоичных данных
  103. Возврат Новый Картинка(ДвоичныеДанныеКартинки);
  104. КонецЕсли;
  105.  
  106. Возврат Неопределено;
  107.  
  108. КонецФункции
  109.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement