Имя: Пароль:
1C
1С v8
картинка штрихкода. 8.3
0 selenat
 
23.10.15
15:23
БП 8.3. В модуле обработки пишу

            Рисунок = ОбластьМакета.Рисунки.Штрихкодce1c4067_073f_44fe_9af9_0fffbfae575a;
            Если ЗначениеЗаполнено(СтрокаДанных.Штрихкод) Тогда
                ПараметрыШтрихкода = Новый Структура;
                ПараметрыШтрихкода.Вставить("Ширина", Рисунок.Ширина / КоличествоМиллиметровВПикселе);
                ПараметрыШтрихкода.Вставить("Высота", Рисунок.Высота / КоличествоМиллиметровВПикселе);
                ПараметрыШтрихкода.Вставить("Штрихкод", СтрокаДанных.Штрихкод);
                ПараметрыШтрихкода.Вставить("ТипКода", 1);
                ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
                ПараметрыШтрихкода.Вставить("РазмерШрифта", 12);
                Рисунок.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
            КонецЕсли;


На выходе получаю картинку с надписью "invalid barcode". Иду отладчиком, смотрю, что внешняя компонента подключается нормально. Убеждаюсь, что в качестве штрихкода передаю компоненте строку из 13 символов, в которых только цифры. Нет ни русских символов, ни пробелов. В чем может быть трабла?
1 anatoly
 
23.10.15
15:29
зачем столько буков?
у меня просто:
Область.Рисунки.ШтрихКод.Объект.Сообщение = ШтрихКод;

и все работает. тип тоже ЕАН13. правда 1С 8.2

у тебя рисунок - элемент управления?
2 selenat
 
23.10.15
15:36
(1) у меня такой код работает в 8.1. В 8.3 не работает, даже если перетаскиваю рисунок копипастом из 8.1.

У рискунка свойство элемент управления недоступно для чтения. Как и свойство объект кстати. Если использую рисунок, который переношу из 8.1 (где все работает), то Объект уже не "недоступно для чтения", а пустой с типом "неопределено". И такой как у тебя код в этом случае тоже не работает. Пробовал уже.
3 anatoly
 
23.10.15
15:42
не перетаскивай копипастом!!
в конфиге в макете: меню Таблица - Рисунки - Вставить объект...
отметить Элемент управления, выбрать компоненту "1С печать штрихкода".
в макете появится рисунок - на нем правый клик - свойства и вверху выбрать не рисунок а элемент управления.
4 selenat
 
23.10.15
15:50
Интересно. Сделал штрихкод из 12 символов, он нормально показался.
5 selenat
 
23.10.15
15:59
(3) сделал как ты сказал. Объект все равно имеет тип неопределено. А копипастом кстати я такие рисунки успешно перетаскивал неоднократно. Правда, только внутри конфы, рпаботающей на 8.1.
6 lenochka-semicova
 
23.10.15
16:32
(0) (4)
ШтрихКод.Объект - это старая компонента от 1С - которая актив-икс
а
МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода - это новая компонента - натив-апи, которая рисует картинку по параметрам

Если тип штрихкода еан13, и 13-ый символ некорректный, то он ее не нарисует правильно, а с 12-ю символами он автоматом 13-ый дорасчитывается

Нужно установить тип кода 99
ПараметрыШтрихкода.Вставить("ТипКода", 99);
Тогда, в функции ПолучитьКартинкуШтрихкода
сработает условие автоматического получения типа штрихкода

        ТипШтрихкодаВрем = ОпределитьТипШтрихкода(ПараметрыШтрихкода.Штрихкод);
        Если ТипШтрихкодаВрем = "EAN8" Тогда
            ТипКода = 0;
        ИначеЕсли ТипШтрихкодаВрем = "EAN13" Тогда
            ТипКода = 1;
        ИначеЕсли ТипШтрихкодаВрем = "EAN128" Тогда
            ВнешняяКомпонента.ТипКода = 2;
        ИначеЕсли ТипШтрихкодаВрем = "CODE39" Тогда
            ВнешняяКомпонента.ТипКода = 3;
        ИначеЕсли ТипШтрихкодаВрем = "CODE128" Тогда
            ВнешняяКомпонента.ТипКода = 4;
        ИначеЕсли ТипШтрихкодаВрем = "ITF14" Тогда
            ВнешняяКомпонента.ТипКода = 11;
        Иначе
            ВнешняяКомпонента.АвтоТип = Истина;
        КонецЕсли;
7 anatoly
 
23.10.15
16:42
(4) для 13и символов установи: СодержитКС = 1
8 lenochka-semicova
 
23.10.15
16:46
(7) в БП 30 встроена новая компонента по технологии натив-апи из состава БПО. она никак не связана со старой компонентой актив-икс, которая по сути, уже несколько лет не поддерживается 1С (не поддерживается - в плане - как продукт). Соответственно, старые методы в ней не сработают, а старых параметров нет.

Кроме того, под управляемыми формами на 8.3 старые компоненты могут вообще не взлететь. Поэтому в (5) "Объект все равно имеет тип неопределено"
9 selenat
 
23.10.15
16:59
(6) О, спасибо! Я так и понял, что там внутренний формат этого типа такой, что абы что туда не вобьешь. Теперь понятно. :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн