Имя: Пароль:
1C
1С v8
ВПФ Штрихкода в УФ
0 ejiki
 
24.12.14
06:08
Разбираюсь в этой теме

http://programna1c.narod.ru/docs/Articles/BarcodeUprApp/BarcodeUprApp.html

Установил компоненту "1С: Печать штрихкода"

Так и собственно сабж по коду


Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
        ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("Обработка.ПечатьЭтикетокИЦенников.Макет.КомпонентаПечатиШтрихкодовWindows32", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
    

Что же мне указать вместо "Обработка.ПечатьЭтикетокИЦенников.Макет.КомпонентаПечатиШтрихкодовWindows32" ?!?!

Пока честно говоря в недоумении. Находил в ОбщихМакетах ПечатьЭтикетокИЦенников. Но при подстановке все так же у ПодключениеВыполнено значение ЛОЖЬ.

Есть интересные идеи или примеры личного опыта?
1 ejiki
 
24.12.14
06:29
Не знаю как но замена на "ОбщийМакет.КомпонентаПечатиШтрихкодов". Вдруг сработала корректно.

Видимо затупил.

Другая бяда в коде при присвоении штрихкода


Шапка.Рисунки.Штрихкод.Картинка = ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, Объект.Штрихкод, 50, 30);


Жалуется что


Поле объекта недоступно для записи (Картинка)


Интересноо..
2 Andrewww123
 
24.12.14
06:42
(1) В макете Штрихкод - это точно рисунок?
3 ejiki
 
24.12.14
06:43
Короче говоря


Возврат Новый Картинка(ДвоичныеДанныеКартинки);


При просмотре через вычислить выражение "Значение не определено"
4 ejiki
 
24.12.14
06:44
(2) Да. Добавлял через Таблица - Рисунки - Вставить Объект - ну и там компоненту v8 Печать штрих кода
5 Andrewww123
 
24.12.14
06:45
(4) Нужно Таблица - Рисунки - Картинка
6 ejiki
 
24.12.14
06:49
(5) оО. Во всех описаниях указывалось что компоненту.. Окей.. Попробуем так)
7 ejiki
 
24.12.14
06:50
А где среди картинок там находится Рисунок штрихкода?! я вот не нашел.
8 Andrewww123
 
24.12.14
06:53
(7) Добавить любую картинку, потом в свойствах очистить поле "Картинка"
9 Andrewww123
 
24.12.14
06:54
+ (8) В имя написать "Штрихкод".
10 ejiki
 
24.12.14
06:54
(8) Поясни что ты подразумеваешь под "в свойствах очистить поле "Картинка""?
11 ejiki
 
24.12.14
06:55
(9) Ну в имя понятно. С очистить не ясно %)
12 ejiki
 
24.12.14
06:57
Кажется понял, в свойствах в реквизите "картинка" очистить значение по shift+F4
13 ejiki
 
24.12.14
06:57
тестируем..
14 Rie
 
24.12.14
06:59
(11) Что-то я не понял проблему...
На форму бросаем декорацию типа картинка.
ПриОткрытии
Элементы.ДекорацияШтрихКод = НужнаяКартинка;

Или требуется нечто иное?
15 ejiki
 
24.12.14
07:16
Ахахаха)) получил на выходе фигню какую-то)))

<a href="http://www.ximage.ru/index.php?id=1419394532">http://www.ximage.ru/index.php?id=1419394532</a>;
16 ejiki
 
24.12.14
07:16
http://www.ximage.ru/index.php?id=1419394532

поправил ссылочку
17 ejiki
 
24.12.14
07:24
Почему такая хрень могла получиться на выходе?
18 Andrewww123
 
24.12.14
07:26
(15) Это уже внешнюю компоненту нужно коврять, рисунок-то вывелся.
Я тут подумал, а зачем так сложно? :) Если установлена "1С: Печать штрихкода", то на макет добавляешь объект и программно ему в свойство(не помню какое, "значение" наверное) передаешь значение штрихкода и всё.
19 ejiki
 
24.12.14
07:28
(18) Не поверишь. Пробовал. Не помогает. Установлена компонента. Но на УФ походу только описанным в статье методом. Больше вариантов не нашел.
20 Andrewww123
 
24.12.14
07:31
(19) Верю, сам не пробовал.. Когда картинка вот эта сформировалась, ты что в качестве значения ШК ввел?
21 Andrewww123
 
24.12.14
07:32
+ (20) Полный код нужно видеть. Может быть со шрифтом что-то, может еще чего.
22 ejiki
 
24.12.14
08:17
(21) полный код какой процедуры\функции?)
23 ejiki
 
24.12.14
08:18
Ну вот полный код определения


&НаСервере
Функция ПодключитьВнешнююКомпонентуПечатиШтрихкода() Экспорт
    
    // В зависимости от типа платформы подключим соответствующую внешнюю компоненту
    СистемнаяИнформация = Новый СистемнаяИнформация;

    Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Тогда
        ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
    
    ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
        ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
    
    ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Linux_x86 Тогда
        ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
    
    Иначе
        ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
    
    КонецЕсли;

    // Создадим объект внешней компоненты
    Если ПодключениеВыполнено Тогда
        ВнешняяКомпонента = Новый("AddIn.КартинкаШтрихкода.Barcode");
    Иначе
        Возврат Неопределено;
    КонецЕсли;
    
    // Если нет возможности рисовать
    Если НЕ ВнешняяКомпонента.ГрафикаУстановлена Тогда
        // То картинку сформировать не сможем
        Возврат Неопределено;
    Иначе
        
        // Установим основные параметры компоненты
        
        // Если в системе установлен шрифт Tahoma
        Если ВнешняяКомпонента.НайтиШрифт("Tahoma") = Истина Тогда
            // Выбираем его как шрифт для формирования картинки
            ВнешняяКомпонента.Шрифт = "Tahoma";
        Иначе
            
            // Шрифт Tahoma в системе отсутствует
            // Обойдем все доступные компоненте шрифты
            Для Сч = 0 По ВнешняяКомпонента.КоличествоШрифтов -1 Цикл
                // Получим очередной шрифт, доступный компоненте
                ТекущийШрифт = ВнешняяКомпонента.ШрифтПоИндексу(Сч);
                // Если шрифт доступен
                Если ТекущийШрифт <> Неопределено Тогда
                    // Они и будет шрифтом для формирования штри-кода
                    ВнешняяКомпонента.Шрифт = ТекущийШрифт;
                    Прервать;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
        
        // Утановим размер шрифта
        ВнешняяКомпонента.РазмерШрифта = 10;
        
        Возврат ВнешняяКомпонента;
        
    КонецЕсли;
    
КонецФункции

&НаСервере
Функция ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, Штрихкод, Ширина, Высота) Экспорт
    
    // Зададим размер картинки
    ВнешняяКомпонента.Ширина = Ширина;
    ВнешняяКомпонента.Высота = Высота;
    
    // Разрешим компоненте самой определять тип кода // ИЛИ НЕТ хДД
    ВнешняяКомпонента.АвтоТип = Ложь;
    ВнешняяКомпонента.ТипКода = 1;
    
    // Если код содержит контрольный символ, обязательно указываем
    ВнешняяКомпонента.СодержитКС = СтрДлина(Штрихкод) = 13;
    
    // Если отображать контрольный символ не нужно
    // ВнешняяКомпонента.ВидимостьКС = Ложь;
    
    // Формируем картинку штрихкода
    ВнешняяКомпонента.ЗначениеКода = Штрихкод;
    
    // Если установленная нами ширина меньше минимально допустимой для этого штрихкода
    Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
        // Скорректируем ширину
        ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода + 10;
    КонецЕсли;
    
    // Сформируем картинку
    ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
    
    // Если картинка сформировалась
    Если ДвоичныеДанныеКартинки <> Неопределено Тогда
        // Формируем из двоичных данных
        Возврат Новый Картинка(ДвоичныеДанныеКартинки);
    КонецЕсли;
    
    Возврат Неопределено;
    
КонецФункции
24 ejiki
 
24.12.14
10:18
Пока все безуспешно. Ломаем голову дальше.
25 Andrewww123
 
24.12.14
11:26
Какая конфигурация?
26 ejiki
 
24.12.14
12:27
В общем одолел)) Выдавало в итоге Invalid Barcode/ Решением было то что я сам вручную вбил. Т.е. для EAN13 13-ый символ(проверочный) я не рассчитал а просто вбил. Вот и ошибка)) всем спасибо за внимание) все здорово.