Печать штрих-кодов в управляемом приложении

Внешняя печатная форма печати штрих-кодов в управляемом приложении

Внешняя печатная форма для типовых конфгураций на управляемом приложении для печати штрих-кодов. 

В УТ 11 эта форма подключается к  документу реализации. Для подключения к другим документам и в других конфигурациях — смотрите процедуру ПолучитьНазначениеОбработки() в модуле объекта.

Печатная форма просто выводит список номенклатуры и штрих-коды из табличной  части.

12 Comments

  1. fibrsb

    >Внешняя печатная форма для типовых конфгураций на управляемом приложении для печати штрихкодов.

    >В УТ 11 эта форма подключается к документу реализации. для подключения к другим документам и в других конфигурациях — смотрите >процедуру ПолучитьНазначениеОбработки() в модуле объекта.

    >Печатная форма просто выводит список номенклатуры и штрихкода из табличной части.

    как раз столкнулся в необходимости в данной обработке, а какие форматы штрих кодов поддерживает обработка? Полагаю все?

    Reply
  2. Stim213

    все. Обработка использует типовые методы формирования ШК

    Reply
  3. RomanUzmov

    С 2D-штрихкодами тоже умеет работать?

    Reply
  4. Dethmond

    Интересно, спасибо

    Reply
  5. Stim213

    (3) а разве типовые базы умеют хранить двумерные ШК?

    а задача интересная

    Reply
  6. v.l.

    (5) О, да. Хранятся данные, которые потом этим кодом шифруются.

    Reply
  7. v.l.

    В статье напиши, пожалуйста, примеры кода. А кому лень — пусть качают.

    Reply
  8. serq82

    в данное время подключение компоненты делается так:

    ПодключениеВыполнено = ПодключитьВнешнююКомпоненту(«ОбщийМакет.КомпонентаПечатиШтрихкодов», «КартинкаШтрихкода», ТипВнешнейКомпоненты.Native);
    Reply
  9. markovki

    (2) благодарю за пример!!! Долго мучился, не получалось напечатать штрихкод в виде картинки, адаптировал несколько фрагметов кода под свою обработку печати этикеток и ценников, для конфигурации розница 2.1

    Reply
  10. roofless

    (10) markovki, получилось напечатать в виде картинки?

    Reply
  11. roofless

    (11) roofless, нужно было вывести именно картинку, не просто на печатную форму, а чтобы можно было копировать в буфер.

    сделал так

    &НаКлиенте
    Процедура ВывестиШтрихкод(Команда)
    ДанныеФайла = ВывестиШтрихкодНаСервере();
    ОткрытьЗначение(ДанныеФайла);
    КонецПроцедуры
    
    &НаСервере
    Функция ВывестиШтрихкодНаСервере()
    Запрос = Новый Запрос(«ВЫБРАТЬ
    | ШтрихкодыНоменклатуры.Штрихкод,
    | ШтрихкодыНоменклатуры.Номенклатура.НаименованиеПолное КАК НаименованиеПолное
    |ИЗ
    | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
    |ГДЕ
    | ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура»
    
    );
    
    Запрос.УстановитьПараметр(«Номенклатура», Объект.Ссылка);
    МассивРезультатов = Запрос.ВыполнитьПакет();
    ДанныеПечати = МассивРезультатов[0].Выбрать();
    
    Если ДанныеПечати.Количество() = 0 Тогда
    Возврат Неопределено
    Иначе
    
    ВнешняяКомпонента = Обработки.ПечатьЭтикетокИЦенников.ПодключитьВнешнююКомпонентуПечатиШтрихкода();
    Если ВнешняяКомпонента = Неопределено Тогда
    ВызватьИсключение НСтр(«ru = ‘Ошибка подключения внешней компоненты печати штрихкода!'»);
    КонецЕсли;
    
    Пока ДанныеПечати.Следующий() Цикл
    ФайлКартинки = ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, ДанныеПечати.Штрихкод, 300, 110);
    КонецЦикла;
    
    Возврат ФайлКартинки;
    КонецЕсли;
    
    КонецФункции
    
    &НаСервере
    Функция ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, Штрихкод, Ширина, Высота) Экспорт
    
    // Зададим размер картинки
    ВнешняяКомпонента.Ширина =Ширина;
    ВнешняяКомпонента.Высота =Высота;
    
    // Разрешим компоненте самой определять тип кода
    ВнешняяКомпонента.АвтоТип = истина;
    
    // Если код содержит контрольный символ, обязательно указываем
    ВнешняяКомпонента.СодержитКС = СтрДлина(Штрихкод) = 13;
    
    // Если отображать контрольный символ не нужно
    // ВнешняяКомпонента.ВидимостьКС = Ложь;
    
    // Формируем картинку штрихкода
    ВнешняяКомпонента.ЗначениеКода = Штрихкод;
    
    // Если установленная нами ширина меньше минимально допустимой для этого штрихкода
    Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда
    // Скорректируем ширину
    ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода + 10;
    КонецЕсли;
    // Сформируем картинку
    ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод();
    
    // Если картинка сформировалась
    Если ДвоичныеДанныеКартинки <> Неопределено Тогда
    // Формируем из двоичных данных
    Возврат Новый Картинка(ДвоичныеДанныеКартинки);
    КонецЕсли;
    
    Возврат Неопределено;
    
    КонецФункции

    Показать

    Reply
  12. alex8miros

    Зря только последний $m отдал. Совсем не то, что нужно 🙁

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *