Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 10:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Печать штрихкодов  (Прочитано 7294 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Golickoff

  • ****
  • Сообщений: 359
  • РЕПУТАЦИЯ: 36
  • КПД: 10%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет.

Пытаюсь добавить в конфигурацию возможность печати штрихкодов. За основу взял демонстрационную конфигурацию "Управляемое приложение". Нашёл в сети пару примеров её работы, но на обоих сайтах нет возможности задать вопрос, поэтому пишу здесь. Вот код работы со штрихкодом:
Функция ПолучитьКартинкуШтрихкода(ШтрихКод, ТипКода=1) Экспорт

 ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодовWindows64", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
 
 // Создадим объект внешней компоненты
 Компонент = Новый("AddIn.КартинкаШтрихкода.Barcode");

 // Если нет возможности рисовать
 Если НЕ Компонент.ГрафикаУстановлена Тогда

  // То картинку сформировать не сможем
  Возврат Неопределено;

 КонецЕсли;

 // Если в системе установлен шрифт Tahoma
 Если Компонент.НайтиШрифт("Tahoma") = Истина Тогда

  // Выбираем его как шрифт для формирования картинки
  Компонент.Шрифт = "Tahoma";

 Иначе

  // Шрифт Tahoma в системе отсутствует

  // Обойдем все доступные компоненте шрифты
  Для Сч = 0 По Компонент.КоличествоШрифтов -1 Цикл

   // Получим очередной шрифт, доступный компоненте
   ТекущийШрифт = Компонент.ШрифтПоИндексу(Сч);

   // Если шрифт доступен
   Если ТекущийШрифт <> Неопределено Тогда

    // Они и будет шрифтом для формирования штрихкода
    Компонент.Шрифт = ТекущийШрифт;
    Прервать;

   КонецЕсли;

  КонецЦикла;

 КонецЕсли;

 // Установим размер шрифта
 Компонент.РазмерШрифта = 12;

 // Зададим размер картинки
 Компонент.Ширина = 100;
 Компонент.Высота = 90;

 Если ТипКода = Неопределено Тогда
  // Разрешим компоненте самой определять тип кода
  Компонент.ТипКода = 1;;
  // ИЛИ установим код EAN-13
  // Компонент.ТипКода = 1;
  //
  // Тип смотрим в документации на внешнюю компоненту
 Иначе
  Компонент.ТипКода = ТипКода;
 КонецЕсли;
 
 // Если код содержит контрольный символ, обязательно указываем
 Компонент.СодержитКС = СтрДлина(Штрихкод) = 13;

 // Если отображать контрольный символ не нужно
 // Компонент.ВидимостьКС = Ложь;

 // Формируем картинку штрихкода
 Компонент.ЗначениеКода = Штрихкод;

 // Если установленная нами ширина меньше минимально допустимой для этого штрихкода
 Если Компонент.Ширина < Компонент.МинимальнаяШиринаКода Тогда

  // Скорректируем ширину
  Компонент.Ширина = Компонент.МинимальнаяШиринаКода + 10;

 КонецЕсли;

 // Сформируем картинку
 ДвоичныеДанныеКартинки = Компонент.ПолучитьШтрихкод();

 // Если картинка сформировалась
 Если НЕ ДвоичныеДанныеКартинки = Неопределено Тогда

  // Формируем из двоичных данных
  Возврат Новый Картинка(ДвоичныеДанныеКартинки);

 КонецЕсли;

 Возврат Неопределено;

КонецФункции
Конфигурация ругается на строку
Компонент = Новый("AddIn.КартинкаШтрихкода.Barcode");
и сообщает "Тип не определен (AddIn.КартинкаШтрихкода.Barcode)". В чём может быть проблема?
P.S. Если вы не знаете, что не так с этим кодом, но у вас есть свой рабочий пример, я буду несказанно рад ему.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.


Оффлайн LexaK

  • *****
  • Сообщений: 1267
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
а простой вариант с стандартным шрифтом 1С EANGNIVC.TTF чем не устраивает?
Добавлено: 09 Фев 2015, 10:24

пример печати штрих кода
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Golickoff

  • ****
  • Сообщений: 359
  • РЕПУТАЦИЯ: 36
  • КПД: 10%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
а простой вариант с стандартным шрифтом 1С EANGNIVC.TTF чем не устраивает?
Добавлено: 09 Фев 2015, 10:24

пример печати штрих кода
Я и не знал что так можно (Радченко молчит об этом в своих книгах), но суть уловил. Кстати, при открытии этой ВО у меня ничего не происходит. Платформа 8.3, интерфейс 8.2, включен режим использования модальности.
Добавлено: 09 Фев 2015, 11:30

На практике оказалось, что сканер не видит этот шрифт. Даже при воспроизведении штрихкода, который я только что считал с коробки и который выглядит точно также, как и на коробке, сканер его не видит, так что всё не так однозначно с этим шрифтом.
Добавлено: 10 Фев 2015, 09:28

Сегодня изучил алгоритм создания штрихкода EAN13, который мне изначально был необходим. Затем написал функцию для генерации этого штрихкода из строки, содержащей 12 цифр. По этим цифрам процедура генерирует контрольную, 13ю цифру, а затем переводит всё из цифр в набор символов, которые рекомендованный выше шрифт отображает как штрихкод. Короче, теперь генерация штрихкода происходит без использования ВК. Штрихкод в формате EAN13, считыватели его прекрасно видят. Если вдруг кому-то это интересно -- пишите.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Последний раз редактировалось: Golickoff; 10 Фев 2015, 09:28. Причина: Объединение сообщений


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
136 Сообщений
AIFrame
66 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 786
  • Точка Скрытых: 0
  • Точка Пользователей: 14
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal