Каталог решений - Штрих-код для любых объектов, в том числе и на Документы!

Штрих-код для любых объектов, в том числе и на Документы!

Штрих-код для любых объектов, в том числе и на Документы!

В наличии

Формирование Штрих-Кода для любого объекта, с дальнейшим его считыванием сканером

Категория:

Описание

1. Формируем код для объекта, с помощью ЗначениеВСтрокуВнутр
2. Делаем расшифровку с помощью ЗначениеИзСтрокиВнутр
3. В процедуру ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Добавляем проверку-расшифровку кода и, в зависимости от полученного объекта, делаем с ним что хотим.

Например, я использовал для Документов.

1)

Функция глОбъект_СформироватьШтрихКод(Объект) Экспорт

сПредставлениеОбъекта = СтрЗаменить(ЗначениеВСтрокуВнутр(Объект),"""","");
сПредставлениеОбъекта = СтрЗаменить(сПредставлениеОбъекта,"{","");
сПредставлениеОбъекта = СтрЗаменить(сПредставлениеОбъекта,"}","");
сПредставлениеОбъекта = СтрЗаменить(сПредставлениеОбъекта,",",РазделительСтрок);

сТипОбъекта = СокрЛП(СтрПолучитьСтроку(сПредставлениеОбъекта,1));
сИДТаблицы = СокрЛП(СтрПолучитьСтроку(сПредставлениеОбъекта,4));
сИДОбъекта = СокрЛ(СтрПолучитьСтроку(сПредставлениеОбъекта,7));
сИДОбъекта = СтрЗаменить(сИДОбъекта," ","_");

Возврат Шаблон("[сТипОбъекта]#[сИДОбъекта]@[сИДТаблицы]");

КонецФункции // глОбъект_СформироватьШтрихКод

2)

Функция глОбъект_НайтиПоШтрихкоду(сШтрихКод) Экспорт 

Если 0 = глСтрока_ЯвляетсяШтрихКодомОбъектаБД(сШтрихКод) Тогда
Возврат "";//пустое значение
КонецЕсли;

мнсСтрока = СтрЗаменить(сШтрихКод, "#", РазделительСтрок);
мнсСтрока = СтрЗаменить(мнсСтрока, "@", РазделительСтрок);
мнсСтрока = СокрЛП(мнсСтрока);

сТип = СтрПолучитьСтроку(мнсСтрока,1);
сИДОбъекта = СтрПолучитьСтроку(мнсСтрока,2);
сИДТаблицы = СтрПолучитьСтроку(мнсСтрока,3); 

сИДОбъекта = СтрЗаменить(сИДОбъекта, "_", " ");

сВнутреннееПредставление = "{""";
сВнутреннееПредставление = сВнутреннееПредставление + сТип + """,""0"",""0"",""";
сВнутреннееПредставление = сВнутреннееПредставление + сИДТаблицы+""",""0"",""0"",""";
сВнутреннееПредставление = сВнутреннееПредставление + Прав(" "+сИДОбъекта, 13) + """}"; // если база не распределенная, то надо делать так:
// сВнутреннееПредставление = сВнутреннееПредставление +Прав(" "+сИДОбъекта+" ", 13));
// Сообщить(сВнутреннееПредставление);
Объект = ЗначениеИзСтрокиВнутр(сВнутреннееПредставление);

Возврат Объект;

КонецФункции // глОбъект_НайтиПоШтрихкоду 

Функция глСтрока_ЯвляетсяШтрихКодомОбъектаБД(сСтрока) Экспорт

мнсСтрока = СтрЗаменить(сСтрока, "#", РазделительСтрок);
мнсСтрока = СтрЗаменить(мнсСтрока, "@", РазделительСтрок);
мнсСтрока = СокрЛП(мнсСтрока); 

Если СтрКоличествоСтрок(мнсСтрока) <> 3 Тогда
Возврат 0;
КонецЕсли; 

сТип = СтрПолучитьСтроку(мнсСтрока,1);

Если СтрДлина(сТип) <> 1 Тогда
Возврат 0;
КонецЕсли; 

сИДОбъекта = СтрПолучитьСтроку(мнсСтрока,2);
сИДТаблицы = СтрПолучитьСтроку(мнсСтрока,3);

Возврат 1; 

КонецФункции // глСтрока_ЯвляетсяШтрихКодомОбъектаБД

3)

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)

Если Событие = "BarCodeValue" Тогда
Если глСканерВключен() = 1 Тогда
глСканерПосылкаДанных(1);
КонецЕсли; 


Объект = глОбъект_НайтиПоШтрихкодуК(Данные);

Если ТипЗначенияСтр(Объект) = "Документ" Тогда
// ищем, открываем форму, в общем, что нам нужно, то и делаем
ОткрытьФорму(Объект);
КонецЕсли; 
Иначе
глОбработкаВнешнегоСобытия(Источник, Событие, Данные); 
КонецЕсли;

КонецПроцедуры // ОбработкаВнешнегоСобытия()

4)
Далее вставляем ШК в табличную часть дока, к примеру, (EAN128), пишем там, глОбъект_СформироватьШтрихКод(Объект), и все работает.

has been added to your cart:
Оформление заказа