Штрих-код

Форум 1С: Одинэс.Ру

Найти!

Штрих-код

Goodwin
26.06.2009 - 05:15
Каков вообще принцип действия сканера штрих кода? Каким образом при проведении по нему сканером позиция Номенклатуры попадает в документ? Можно ли штрихкодировать не только элементы справочника, но и документы?
К списку тем 1 > К списку форумов
Google Adsense

Re: Штрих-код

lame
1 - 26.06.2009 - 05:18
сканер считал инфорамцию о ШК (каким образом он понимает - что это ШК и как он определеяепреобразует информацию из строчек в чсила - это написано где то было в инете)
а в дальнейшем - вызывается процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
(в стандартной ТиС - смотри документ Реализация к примеру)
где все и происходит , как то:
поиск по справочнику и подстановка найденного товара табличную часть локумента

Re: Штрих-код

victuan
2 - 26.06.2009 - 05:19
ЖКК - ОбработкаВнешнегоСобытия

Re: Штрих-код

Goodwin
3 - 26.06.2009 - 05:25
Можно ли поставить штрих-код на документ, а потом считать сканером данные документа, например Контрагента, номер документа, сумму?

Re: Штрих-код

Дятeл
4 - 26.06.2009 - 05:27
можно всё - только не спрашивайте как.

Re: Штрих-код

pit
5 - 26.06.2009 - 05:34
можно не только номер и дату писать - а еще и текст...
читай о штрих-кодировании в инете

Re: Штрих-код

Программ1
6 - 01.07.2009 - 10:50
Извините, может,подскажете обработочку, которая нарисует штрих-код на приложении к накладной? Очень нада... :)

Re: Штрих-код

Климов Сергей
7 - 01.07.2009 - 12:15
2(6) См. обработку печати этикеток в качестве примера.

Re: Штрих-код

USSR
8 - 01.07.2009 - 12:19
(6)Давайте мне фотку, и вышлю кусок кода, который формирует штрих-код по номеру заказа :))

Re: Штрих-код

USSR
9 - 01.07.2009 - 12:24
функция ПолучитьШтрихКод, EAN-13:
 
// -------------------------------
Функция ВычислитьШтрихКод(ШтрихКод)
 
// Вычисляет контрольный разряд и
// возвращает правильный штрихкод
 
Четн   = 0;
Нечетн = 0;
 
КоличествоИтераций = 6;
    
Для Индекс = 1 По КоличествоИтераций Цикл
Четн   = Четн   + Число(Сред(ШтрихКод, 2 * Индекс, 1));
Нечетн = Нечетн + Число(Сред(ШтрихКод, 2 * Индекс - 1, 1));
КонецЦикла;
 
Четн = Четн * 3;
 
КонтЦифра = 10 - (Четн + Нечетн) % 10;
Если  КонтЦифра = 10
Тогда КонтЦифра  = 0;
КонецЕсли;
    
Возврат Лев(ШтрихКод,12) + СокрЛП(Строка(КонтЦифра));
 
// Возврат ШтрихКод - ШтрихКод%10 + КонтЦифра;
 
КонецФункции
 

// -----------------------------------------
Функция ПолучитьКомбинацию(ИсхЧисло,Тип="X")
 
// Символы из таблицы для нижнего расположения
 
Если Тип = "A" Тогда
Возврат(Строка(ИсхЧисло));
 
ИначеЕсли Тип = "B" Тогда
Возврат(Симв(ИсхЧисло + 65));
 
ИначеЕсли Тип = "C" Тогда
Возврат(Симв(ИсхЧисло + 97));
Иначе
Возврат(Симв(ИсхЧисло + 35));
КонецЕсли;
 
КонецФункции
 

// ------------------------------
Функция ПолучитьШтрихКод (ШКИсх) Экспорт
 
// Возвращает печатный штрих-код
// для переданной строки символов
 
// ШК = Число (ШКИсх);
ШК = ВычислитьШтрихКод (ШКИсх);
 
СтрокаШК ="";
 
// EAN13
 
СтрокаШК =
ПолучитьКомбинацию(Число(Сред(ШК,1,1)));      //13
 
СтрокаШК = СтрокаШК +  "!";
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,2,1)),"A");  //12
 
Если Число(Сред(ШК,1,1)) < 4 Тогда            //11
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,3,1)),"A");
Иначе
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,3,1)),"B");
КонецЕсли;
                                     //10
Если ((Число(Сред(ШК,1,1)) = 0) ИЛИ      
  (Число(Сред(ШК,1,1)) = 4) ИЛИ
      (Число(Сред(ШК,1,1)) = 7) ИЛИ
          (Число(Сред(ШК,1,1)) = 8)) Тогда
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,4,1)),"A");
Иначе
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,4,1)),"B");
КонецЕсли;
 
                                    //09
Если ((Число(Сред(ШК,1,1)) = 0) ИЛИ
      (Число(Сред(ШК,1,1)) = 1) ИЛИ
      (Число(Сред(ШК,1,1)) = 4) ИЛИ
          (Число(Сред(ШК,1,1))  =5) ИЛИ
          (Число(Сред(ШК,1,1))  =9)) Тогда
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,5,1)),"A");
Иначе
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,5,1)),"B");
КонецЕсли;
                                        
                                    //08
Если ((Число(Сред(ШК,1,1)) = 0) ИЛИ
      (Число(Сред(ШК,1,1)) = 2) ИЛИ
      (Число(Сред(ШК,1,1)) = 5) ИЛИ
          (Число(Сред(ШК,1,1)) = 6) ИЛИ
          (Число(Сред(ШК,1,1)) = 7 )) Тогда
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,6,1)),"A");
Иначе
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,6,1)),"B");
КонецЕсли;
                                   //07
Если ((Число(Сред(ШК,1,1)) = 0) ИЛИ
      (Число(Сред(ШК,1,1)) = 3) ИЛИ
      (Число(Сред(ШК,1,1)) = 6) ИЛИ
          (Число(Сред(ШК,1,1)) = 8) ИЛИ
          (Число(Сред(ШК,1,1)) = 9)) Тогда
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,7,1)),"A");
Иначе
СтрокаШК = СтрокаШК +
ПолучитьКомбинацию(Число(Сред(ШК,7,1)),"B");
КонецЕсли;
 
СтрокаШК = СтрокаШК +
     "-" +
ПолучитьКомбинацию(Число(Сред(ШК,8,1)), "C") +  // 08
ПолучитьКомбинацию(Число(Сред(ШК,9,1)), "C") +  // 09
ПолучитьКомбинацию(Число(Сред(ШК,10,1)),"C") +  // 10
ПолучитьКомбинацию(Число(Сред(ШК,11,1)),"C") +  // 11
ПолучитьКомбинацию(Число(Сред(ШК,12,1)),"C") +  // 12
ПолучитьКомбинацию(Число(Сред(ШК,13,1)),"C") +  // 13
     "!";
 
Возврат(СтрокаШК);            
 
КонецФункции
 

Re: Штрих-код

USSR
10 - 01.07.2009 - 12:29
а сам штрих-код формирую, например вот так, Вы сделаете по свему:
 
ШтрихКод = "1" +Сред(НомерДок, 4,2) + Прав(НомерДок,5) + Формат(ДатаДок - Дата("01.01.2005"),"Ч(0)4.0") +"0";
ШтрихКодСимв = ПолучитьШтрихКод(ШтрихКод);
 
Важно, чтобы код подчинялся правилам, например EAN-13, и Вы могли из него извлечь всю инфу по которой искать документ, либо писать штрихкод прямо в реквизит

Re: Штрих-код

Serginio
11 - 01.07.2009 - 13:17
Помотри
http://www.mista.ru/articles1c/hare/article.20.html

Re: Штрих-код

Программ1
12 - 01.07.2009 - 13:29
(11) Спасибо! Буду пробовать.

Re: Штрих-код

Serginio
13 - 01.07.2009 - 13:35
Если в номере докумена не содержаться кирилица
 
то например
 
Функция СформироватьКод39(ВыбРеализация,Знач суффикс="") Экспорт
        Если ВыбРеализация.Выбран()=1 Тогда  
Номер=СокрП(ВыбРеализация.НомерДок);
// Номер=Трим(Номер);
            Код=Формат(ВыбРеализация.ДатаДок,"ДГГГГММДД")+Номер;
Если ПустаяСтрока(Суффикс)=0 Тогда
    Код=Код+Суффикс;
КонецЕсли;
 
Стр=Code39Generate(код);
возврат Стр
КонецЕсли;
возврат "";
КонецФункции

Re: Штрих-код

USSR
14 - 01.07.2009 - 13:58
Блин, я привел готовый, несколько лет работающий код, а спасибо другому, за ссылку, по которой в принципе все тоже самое. И есть ли в этом мире хоть толика справедливости? ))

Re: Штрих-код

Serginio
15 - 01.07.2009 - 14:01
(14) а где же шрифты, Code39? (широчайшая улыбка)
А со справедливостью в нашем мире весьма сложно.

Re: Штрих-код

USSR
16 - 01.07.2009 - 14:03
я писал про EAN-13, его достаточно, шрифт EanGnivc из регл отчетности

Re: Штрих-код

Serginio
17 - 01.07.2009 - 14:19
Я кстати многими шрифтами пользуюсь. Нужно подбирать оптимальные размеры.
А то, что спасибо не говорят за бескорыстную помощь не есть правильно.

Re: Штрих-код

Чучундер
18 - 02.07.2009 - 00:23
http://www.infostart.ru/blogs/226/
http://www.infostart.ru/projects/4603/

Re: Штрих-код

Программ1
19 - 02.07.2009 - 05:17
(10) Спасибо! Буду разбираться.
(17) Я стараюсь всегда быть вежливой. Извините.
А за помощь и участие - просто огромнейшее спасибо.
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
© 2009 Форум 1С: Одинэс.Ру
В основу сайта был положен архив форума «Территория 1С»