Друк штрих-коду в керованому додатку 8.2
Програмуючи під 8.2, що працює в режимі керованого застосування, я зіткнувся з проблемою друку штрих-коду. Для платформи 8.1 і платформи 8.2 в режимі звичайного застосування такої проблеми не було: встановлюємо елемент «1С: Друк штрих-кодів» в макет і насолоджуємося вертикальними рисками. У режимі керованого застосування вивалюється помилка:
Що ж трапилося?
Справа в тому, що для керованого застосування зовнішні компоненти розробляються за іншою технологією. Приклад зовнішньої компоненти для друку штрих-коду в 8.2 є в демонстраційній конфігурації "Керована додаток" в макетах довідника Товари або в конфігурації «1С: Управління торгівлею» версії 11, макети обробки «Друк етикеток і цінників».
Дана компонента, отримавши в якості параметра рядок штрихкоду, повертає картинку - штрихкод, яку програмісту пропонується помістити в будь-який зручний місце друкованої форми.
Тепер як це зробити.
Всього обробок аж чотири штуки:
Всі вони завантажені в однойменні макети. Функція, що підключає зовнішню компоненту в залежності від платформи може виглядати так:
У коді вище все компоненти завантажені в макети обробки «ПечатьЕтікетокІЦенніков». В принципі ніщо не заважає помістити їх в будь-яке інше місце. Виклик функції здійснюється командою:
Якщо щось не вийшло - повертає не визначено.
Далі опишемо функцію, яка, отримавши дані, сформує потрібну нам картинку з штрихкодом:
У даній функції використовується автовизначення типу штрихкоду командою
Можна тип штрих-коду вказати вручну:
ТіпКода - число від 0 до 15: 0 - EAN8, 1 - EAN13, 2 - EAN128. Ось повний список типів по порядку:
EAN8, EAN13, EAN128, Code39, Code128, Code16k, PDF417, Standart (Industrial) 2 of 5, Interleaved 2 of 5, Розширення Code39, Code93, ITF14, RSS14, CodaBar, EAN13 AddOn 2, EAN13 AddOn 5.
Крім типу штрихкоду, компонента має ряд інших властивостей, наприклад ВнешняяКомпонента.ОтображатьТекст, ВнешняяКомпонента.РазмерШріфта та інші, можна подивитися у властивостях.
Нарешті останнє - висновок штрих-коду. Для цього в макет помістимо картинку з ім'ям «Штрихкод». Отримуємо і виводимо штрихкод в область командою:
Де Штрихкод - змінна, що містить рядок штрихкоду номенклатури, 50 - необхідна ширина, 30 - висота картинки. У макеті розмір картинки найкраще поставити «Реальний розмір».
Зауваження. Відразу впадає в око те, що я вручну вказую розмір необхідної картинки - 50 на 30. Виникає питання, а чи не можна розміри необхідної картинки отримати з картинки на макеті? Звичайно можна:
На жаль, цифри одержувані цими командами чомусь занадто малі. Як отримати реальний видимий розмір картинки я поки не знаю, може хто підкаже?