Обрезать qr код

1. Greek26rusa 2 10.06.17 16:18 Сейчас в теме
добрый день помогите пожалуйста разобраться .
Добрый день вопрос состоит в том как отрезать штрих код.

Товар поставщика весь про макрирован qr кодами что бы заного не проклеивать хотел бы использовать его коды. ну дела в том что его код состоит из 2х блоков первый это штрих кода 13 значный ean 13 стоит пробел и 2 блок это служебные цифры определяющий дату номер и число сортировки.

то есть при сканировании qr кода выплывает вот такая длинная строка

2000013001061 3700011101013
а мне нужно что бы при сканировании этого qr кода он сканировал только первые 13 цифр и все. qr код прикладываю к скрину. помогите добрые люди.

Подскажите добрые люди как можно поправить функцию

Связался с ИТС ОНИ СКАЗАЛИ можно модифицировать обработку ТОСервер
функцию ОбработкаСобытийШК


Функция ОбработатьСобытиеСШК(Обработка, Объект, Клиент, Событие, Данные, СШК)
	
	Результат = мНетОшибки;

	ШК        = Неопределено;
	ТипШК     = Неопределено;
	Результат = Обработка.ОбработатьСобытиеСШК(Объект,
	                                           Событие,
	                                           Данные,
	                                           ШК,
	                                           ТипШК);
											   
    	
	Если ЗначениеЗаполнено(Результат) Тогда
		Возврат Результат;
	КонецЕсли;

	Если ПустаяСтрока(ШК) Тогда
		Возврат Результат;
	КонецЕсли;

	Если НЕ ЗначениеЗаполнено(ТипШК) Тогда
		Если РаботаСТорговымОборудованием.ТипШтрихкодаEAN8ТО(ШК) Тогда
			ТипШК = мEAN8;
		ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаEAN13ТО(ШК) Тогда
			ТипШК = мEAN13;
		ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаPDF417(ШК) Тогда
			ТипШК = "PDF417";
		ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаCODE39ТО(ШК) Тогда
			ТипШК = мCODE39;
		КонецЕсли;
	КонецЕсли;

	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|    СпрСН.Ссылка КАК СерийныйНомер
	|ИЗ
	|    Справочник.СерийныеНомера КАК СпрСН
	|ГДЕ
	|    (ВЫРАЗИТЬ(СпрСН.Код КАК СТРОКА(" + Формат(СтрДлина(ШК), "ЧН=0; ЧГ=0") + "))) = &Код");
	Запрос.УстановитьПараметр("Код", ШК);
	РезультатЗапроса = Запрос.Выполнить();
	Если Не РезультатЗапроса.Пустой() Тогда
		РезультатЗапроса = РезультатЗапроса.Выбрать();
		РезультатЗапроса.Следующий();

		Ответ = Клиент.СШКСерийныйНомер(РезультатЗапроса.СерийныйНомер, СШК);
		Если Ответ Тогда
			Возврат Результат;
		КонецЕсли;
	КонецЕсли;

	Если ЗначениеЗаполнено(мПрефиксВесовогоТовара)
		 И ЗначениеЗаполнено(мДлинаКодаВесовогоТовара)
		 И ТипШК = мEAN13
		 И Лев(ШК, 2) = "2" + мПрефиксВесовогоТовара Тогда

		КодТовара        = Сред(ШК, 3, мДлинаКодаВесовогоТовара);
		КоличествоТовара = Сред(ШК, 3 + мДлинаКодаВесовогоТовара, 10 - мДлинаКодаВесовогоТовара);
		Запрос           = Новый Запрос(
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|    РегКВТ.Номенклатура                         КАК Номенклатура,
		|    РегКВТ.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
		|    РегКВТ.ХарактеристикаНоменклатуры           КАК ХарактеристикаНоменклатуры,
		|    " + КоличествоТовара + " / 1000             КАК Количество,
		|    РегКВТ.СерияНоменклатуры                    КАК СерияНоменклатуры,
		|    ВЫБОР
		|        КОГДА РегКВТ.Качество = &КачествоПустаяСсылка ТОГДА
		|            &КачествоНовый
		|        ИНАЧЕ
		|            РегКВТ.Качество
		|    КОНЕЦ                                       КАК Качество
		|ИЗ
		|    РегистрСведений.КодыВесовогоТовара          КАК РегКВТ
		|ГДЕ
		|    РегКВТ.Код = &Код");
		Запрос.УстановитьПараметр("КачествоПустаяСсылка", мКачествоПустаяСсылка);
		Запрос.УстановитьПараметр("КачествоНовый",        мКачествоНовый);
		Запрос.УстановитьПараметр("Код",                  Число(КодТовара));

		РезультатЗапроса = Запрос.Выполнить();
		Если Не РезультатЗапроса.Пустой() Тогда
			РезультатЗапроса = РезультатЗапроса.Выбрать();
			РезультатЗапроса.Следующий();

			Ответ = Клиент.СШКНоменклатура(РезультатЗапроса.Номенклатура,
			                               РезультатЗапроса.ХарактеристикаНоменклатуры,
			                               РезультатЗапроса.СерияНоменклатуры,
			                               РезультатЗапроса.Качество,
			                               РезультатЗапроса.ЕдиницаИзмерения,
			                               РезультатЗапроса.Количество,
			                               СШК);
			Если Ответ Тогда
				Возврат Результат;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;

	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|    РегШК.Владелец                   КАК Владелец,
	|    РегШК.ЕдиницаИзмерения           КАК ЕдиницаИзмерения,
	|    РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	|    РегШК.СерияНоменклатуры          КАК СерияНоменклатуры,
	|    РегШК.Качество                   КАК Качество
	|ИЗ
	|    РегистрСведений.Штрихкоды        КАК РегШК
	|ГДЕ
	|    РегШК.Штрихкод = &Штрихкод");
	Запрос.УстановитьПараметр("Штрихкод", ШК);
	РезультатЗапроса = Запрос.Выполнить();
	Если Не РезультатЗапроса.Пустой() Тогда
		РезультатЗапроса = РезультатЗапроса.Выбрать();
		РезультатЗапроса.Следующий();
		Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.ИнформационныеКарты") Тогда
			Ответ = Клиент.СШКИнформационнаяКарта(РезультатЗапроса.Владелец, СШК);
			Если Ответ Тогда
				Возврат Результат;
			КонецЕсли;
		Иначе // Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.Номенклатура")
			Ответ = Клиент.СШКНоменклатура(РезультатЗапроса.Владелец,
			                               РезультатЗапроса.ХарактеристикаНоменклатуры,
			                               РезультатЗапроса.СерияНоменклатуры,
			                               РезультатЗапроса.Качество,
			                               РезультатЗапроса.ЕдиницаИзмерения,
			                               1,
			                               СШК);
			Если Ответ Тогда
				Возврат Результат;
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Результат) и ТипШК = "PDF417" Тогда
		Клиент.СШКОбработатьШтрихкод(ШК);
		Возврат Результат;
	КонецЕсли;
	
	Ответ = Клиент.СШКНеизвестныйКод(ШК, ТипШК, СШК);
	Если Ответ Тогда
		Возврат Результат;
	КонецЕсли;

	Результат = мОшибкаНеизвестныйШтрихкод;
	Клиент.СШКОшибка(Результат, ШК, ТипШК, СШК);

	Возврат Результат;

КонецФункции // ОбработатьСобытиеСШК()
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tata_1211 63 10.06.17 16:27 Сейчас в теме
Так вы ведь можете из полученной строки взять требуемое количество левых символов. Приведите полученную строку к нужному формату типа ШК = Лев(ШК, 13), и получите необходимый штрихкод.
FilimonVl; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот