Сканер штрихкода на УФ Такси

1. Voblhned 58 12.12.16 11:53 Сейчас в теме
Добрый день, подскажите с какой стороны можно подойти к следующей задаче.
Есть самописная конфа(тест), есть документ реализиции, в него можно добавить номенклатуру у номенклатуры 2 реквизита, наименование и фото. Но хотелось бы, что бы из документа реализации можно было по штрих коду добавлять товары, товары уникальные, не повторяются.
Как прикрутить штрих коды, через регистры или напрямую через реквизит справочника Номенклатура, только сразу учесть, что каждый товар может иметь только 1н штрих код.
Как сделать поиск через сканер штрих кода в табличную часть товары.
Сканер подключен в разрыв клавиатуры, так что смысла в дровах, обработках подключения я не вижу.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Still325 22 12.12.16 12:26 Сейчас в теме
Добрый день.
Штрихкоды лучше хранить в регистре сведений, измерение - штрихкод, ресурсы: номенклатура, характеристика (если есть).
Для отлавливания сканера использовать событие формы документа "ОбработкаОповещения"
3. Voblhned 58 12.12.16 12:31 Сейчас в теме
(2)
ОбработкаОповещения

А на нее вешать поиск запросом с параметром и в качестве параметра передавать ШК?
4. herfis 513 12.12.16 12:38 Сейчас в теме
Ну, если конфа предельно простая, то может и нет смысла в отдельном регистре штрихкодов. Регистр интереснее только возможностями расширения и "облегчением" справочника номенклатуры. Ну и индекс по измерениям там "из коробки". Вопрос "как искать" даже не понял - а какие есть варианты? Запросом, конечно. Если номенклатуры не больше нескольких тысяч, то поле можно даже не индексировать. Хотя на файловой может и имеет смысл.
5. Voblhned 58 12.12.16 12:43 Сейчас в теме
(4) конфа очень простая, приход и расход. Тут справочник номенклатура подчинен справочнику Клиенты, то есть у клиента есть свой список номенклатуры. И как раз для нее надо сделать подбор по штрих коду. А есть какие либо варианты, практические, где делали самописный поиск по ШК, потому что все всегда используют только типовые решения, а они очень грамоздкие.
6. herfis 513 12.12.16 12:47 Сейчас в теме
(5) Типовые решения сложные, только потому что универсальные. А что за проблема у вас в поиске штрих-кода - никак понять не могу. Вас пугает слово "штрих-код"? Замените его на "поиск по альтернативному наименованию" :)
8. Voblhned 58 12.12.16 12:52 Сейчас в теме
(6) меня пугает, сканер ШК легко сканирует и передает код 2900000005686, в справочнике номенклатуры добавил реквизит ШтрихКод, создал обработку оповещения. И сижу не понимаю куда далее, потому что с обработкой оповещения не знаком, в общем все от нехватки знаний.
10. herfis 513 12.12.16 13:03 Сейчас в теме
(8) Не совсем понял, зачем тебе обработка оповещения. Для универсальности? Тебе сначала надо "поймать" штрихкод, а потом уже чего-то с ним делать.
Раз ты через разрыв клавиатуры решил работать, значит принимать штрихкод будешь в какое-то текстовое поле. Вот в нем и лови событие. Можно попробовать ловить ИзменениеТекстаРедактирования(). Или запрограммировать в сканере Enter постфиксом и тогда ловить "ПриИзменении". Я на самом деле никогда в разрыв клавиатуры не работал, потому как это налагает ограничения на удобные для оператора сценарии работы. Должно быть енто самое поле при сканировании, оно должно быть активным и т.п. На первый взгляд проще выглядит, чем событие от драйвера ловить, а на самом деле нет.
7. herfis 513 12.12.16 12:50 Сейчас в теме
Хотя, ньюансы могут быть конечно. Могут встретиться весовые штрих-кода или потребуется идентификация по служебным штрих-кодам с переменной информативной частью. Если у вас там везде штучный EAN-13, то проблем не вижу.
9. Voblhned 58 12.12.16 12:58 Сейчас в теме
как я понимаю сканер должен создавать какое то из событий "ВнешнееСобытие" или "ОбработкаОповещения", как узнать какое и как его потом обработать, просто нету почти инфы по этому, где можно почитать поучиться, попробовать.
11. herfis 513 12.12.16 13:04 Сейчас в теме
(9) Если ты "без драйверов" работаешь, как сказал, то "ВнешнееСобытие" тебе некому посылать :)
12. Voblhned 58 12.12.16 13:07 Сейчас в теме
(11) но как то же в Розница 2.2 ловится =) Там вообще просто подключаешь и он сразу работает. А как для темный лес.
14. herfis 513 12.12.16 13:09 Сейчас в теме
(12) Могу немного фонариком в лесу посветить: в типовых некоторые стандартные дрова прямо в конфу зашиты и автоматически устанавливаются по необходимости.
13. herfis 513 12.12.16 13:08 Сейчас в теме
Не, можно и через разрыв клавиатуры ловить "ВнешнееСобытие". Но это должен быть установлен драйвер, наученный ловить штрихкод из потока событий клавиатуры и генерить енто самое событие. А я так понял, ты хочешь без драйверов обойтись.
15. Voblhned 58 12.12.16 13:15 Сейчас в теме
(13) ну если это будет внедрение уже готовой обработки. Выгрузил например драйвер из той же розницы и подгрузил его. Я боюсь, что если к дровам приближусь, то вообще не 1на душа не сможет мне помочь xD
16. herfis 513 12.12.16 13:42 Сейчас в теме
Мне понятна твоя жажда халявы, но ее нет у меня :) Заставь себя хотя бы на инфостарте поискать по готовым обработкам.
А из продакшена и типовых готового красивого куска не выдернешь. Енто обычно целая подсистема.
Еще на users.1c.ru есть кажись еще для 8.2 обработки выложенные по работе со сканером, ну и вся "Библиотека подключаемого оборудования".
17. Voblhned 58 12.12.16 13:46 Сейчас в теме
(16) я на сайте итс нашел, вроде про работы с Native API и подключаемым оборудованием. Но сам процесс подклюения не могу допереть, не работает и все.
21. yaroslav.artem 12.12.16 14:15 Сейчас в теме
(17)СЕРВИСНЫЕ КОДЫ ТЕБЕ В ПОМОЩЬ)).
Переключи сканер в режим клавиатуры и всё!Любой штрихкод в любое место пиши, где только пишется.. хоть в ворд, хоть в 1Ску, хоть в проводник
23. Voblhned 58 12.12.16 14:23 Сейчас в теме
(21) Ну вот, я так и хотел! У меня он в разрыв через usb, он я открывают блокнот сканирую и он выводи штрихкод, без дров и прочего.
18. Voblhned 58 12.12.16 14:00 Сейчас в теме
(16) прочитал про нее, буду пробовать внедрить БПО
19. yaroslav.artem 12.12.16 14:10 Сейчас в теме
Не стал всё выше читать.. что то там про дрова и регистры..у меня самописная конфа со штрихкодами, маленько не так как у меня посоветую, конечно, у меня свой огород.Не надо никаких дров вам.. сканер в режим клавиатуры переключаешь сервисными штрихкодами (типо того называется это),чтобы он любой штрихкод в любое место компа и 1Ски, где печатать можно- будет как числа считывал и выводил.
Самое простое в реквизите справочника номенклатуры добавить реквизит с типом строка..и всё..Записал в номенклатуру номер штрихкода.. сделал поле "Штрихкод" индексируемым, чтобы по этому полю можно было поиск делать.. потом тупо в это поле в любой форме подбора или списка встаешь, чикаешь штрихкод и всё))Это самый простой вариант...
Если генерировать штрихкоды надо, тогда ВЫбратьМаксимум из Штриходы + 1(условно говоря)., на стандартном товаре и так штрихкоды уникальные.
У меня форма подбора для этого сделана..Для вашего случая примерно так опишу:
Отрывается форма, в ней заполняется табличная часть остатками номенклатуры. Также колонка индексируемая "штрихкод".. в нее встаешь, штрихкод считываешь и попадаешь на нужный элемент номенклатуры... у меня еще Булево запрятано в табличной части этой формы.. в обработчике ПриАктивизацииСтроки булево меняется истина на ложь и наоорот..если истина, тогда строка поменяй цвет, если ложь, поменяй цвет на обратный.. а ну и также в сканере должен быть сервисный штрих код, чтобы после считывания как бы Enter срабатывал..т.е он после считывания будет еще и энтер нажимать, чтобы она не только попадала на нужную позицию, но и обработчик срабатывал "ПриАктивизации" и строка выделялась..потом при окончании подборки уже в ВладельцаФормы переносишь..вот скрин с моей конфы вообщем.. тупо встаю в колонку номер(он же штрихкод на пакете для внутреннего учета) считываю штрих, он находит и подбирает нужную позицию..
Прикрепленные файлы:
20. yaroslav.artem 12.12.16 14:14 Сейчас в теме
(19)Без всяких драйверов..просто сканер в режиме клавиатуры. Поле штрихкод индексируемое т.е по нему можно делать поиск.
Всё, это ключевые моменты.
в УФ типо того что то можно изобразить 100%
22. yaroslav.artem 12.12.16 14:19 Сейчас в теме
(19)Т.е на картинке я в поле номер пакета встал, штрихкод считал, он нужный пакет нашел.Никаких дров не надо
24. Voblhned 58 12.12.16 14:27 Сейчас в теме
мне вот тут надо что бы он искал по ШК и выбирал товар у которого реквизит ШК совпадает с кодом штрихкода, желательно что бы просто при нажатии событие ловил, но не обязательно.
Прикрепленные файлы:
25. Voblhned 58 12.12.16 21:57 Сейчас в теме
в общем выдохся, на толстом работает немного, то есть дрова подключаются и Web а на тонком не в какую
26. Voblhned 58 13.12.16 17:49 Сейчас в теме
Итак выход был найден, через кнопку, пока перехват кнопки не сделал, но надо будет на Команду назначить кнопку и сканер запрограммировать на префикс, а пока так:

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

&НаКлиенте
Процедура Поиск(Команда)
	//Штрихкод = "2900000005686"; // для тестирования
	ТекстЗаголовка = НСтр("ru = 'Введите штрихкод'");
	Оповещения = Новый ОписаниеОповещения("ОповещениеПоискаПоШтрихкоду", ЭтотОбъект);
	ПоказатьВводСтроки(Оповещения, Штрихкод, ТекстЗаголовка);

КонецПроцедуры


&НаКлиенте
Процедура ОповещениеПоискаПоШтрихкоду(Результат, Параметры) Экспорт
	ШтрихКод = Результат;
	НоваяСтрока = Объект.Товары.Добавить();
	НоваяСтрока.Номенклатура = ПоискШк(ШтрихКод);
	НоваяСтрока.Количество = "1";
	Номенклатура = ПоискШк(ШтрихКод);
	НоваяСтрока.ЦенаПродажи = ПолучитьСтаруюЦену(Номенклатура);
	НоваяСтрока.СуммаПродажи = НоваяСтрока.Количество*НоваяСтрока.ЦенаПродажи;
	Объект.Итог = Объект.Товары.Итог("СуммаПродажи");
КонецПроцедуры                               
Показать
Оставьте свое сообщение

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