Завершен

уникод вместо штрихкода

Юзер 13 лет назад 8
Ситуация: сканируется товар, если штрихкода нет или его невозможно прочесть, то пользователи должны вводить спецкод, например, 1111111111111 и товар считается считанным.
Использовал стандартный выбор номенклатуры, добавил обработчик со штрихкодом 1111111111111 с переходом на следующее действие после проверки отсканированного ШК с нужным товаром(при обычном сканировании).
КОличество ++, все ок, но при выгрузке в 1С(УТ 10.3) обработчик Объект.Драйвер.ЗагрузитьДокументы(СписокДок, ТаблицаЗагрузки) возвращает значение ЛОЖЬ. При этом при сканировании настоящих шк все ок.

Подскажите, из какой переменной брать ШК, который сейчас должен сканроваться и в какую переменную его записывать?
посмотрите подробнее операцию для 1С драйвера - там, помимо выбора товара, идет запоминание штрихкода в колонку code в документе.
А откуда брать значение ШК, который сейчас должен быть?
я так понимаю, что выбором номенклатуры занимается действие "Выбор номенклатуры". Сравнивает введенный ШК со штрхкодами в базе. Нужно на этом этапе подменить 111..1 на правильный шк.
как можно получить ШК, если я знаю текущий {СтрокаДляПодбора.ProductId} ?
А откуда брать значение ШК, который сейчас должен быть?
я так понимаю, что выбором номенклатуры занимается действие "Выбор номенклатуры". Сравнивает введенный ШК со штрхкодами в базе. Нужно на этом этапе подменить 111..1 на правильный шк.
как можно получить ШК, если я знаю текущий {СтрокаДляПодбора.ProductId} ?

Не совсем понятно, что Вы пытаетесь сделать.
То, что у Вас функция загрузки возвращает ложь, означает что в ней произошла ошибка. Какая - надо смотреть логи. Она может быть связана с некорректным заполнением данных Вами, а может быть внутренняя. Тогда ее надо прислать на support@cleverence.ru
Вообще никакая строка документа не может быть вообще без товара. Хоть какой-то, пусть даже неизвестный, в стркое должен быть задан.
Советую Вам посмотреть как сделано в операции Сбор штрихкодов(Быстрая). Там реализовано так, что если сканируется неизвестный штрихкод, то в документ попадает строка с неизвестным товаром, а сам штрихкод попадает в дополнительное поле строки "code". А обработка этих кодов идет уже в процедуре загрузки 1С.
Сделал своим методом.
выгружаю вместо артикула ручной код(100000++), сам артикул помещаю в наименование товара. Итого имею код ручного ввода - каждый раз разный для товара. Ввод текущего артикула(1000000++) заменяет ввод ШК. Profit!
Сделал своим методом.
выгружаю вместо артикула ручной код(100000++), сам артикул помещаю в наименование товара. Итого имею код ручного ввода - каждый раз разный для товара. Ввод текущего артикула(1000000++) заменяет ввод ШК. Profit!

ну во-первых по артикулам и кодам 1с уже и так ищется - их можно вводить на терминале без боязни и оно распознает.

для работы драйвера необходимо, чтобы в загружаемых строках в колонке code стоял бы штрихкод, который есть в базе 1с. стандарт драйвера на торговое оборудование так написан - распознавание товаров выполняется в недрах стандартных конфигураций по переданному туда штрихкоду. поэтому несмотря на то, что товар распознается в Mobile SMARTS на терминале, в драйвере 1с он повторно распознается 1ской уже по штрихкоду. и этот штрихкод должен лежать в колонке code.
>>ну во-первых по артикулам и кодам 1с уже и так ищется - их можно вводить на терминале без боязни и оно распознает.

вот в том-то и дело - пользователи не будут вводить артикул товара как "ROMOHA-BELTS-21-4". Им проще будет ввести 1000003

>>для работы драйвера необходимо, чтобы в загружаемых строках в колонке code стоял бы штрихкод, который есть в базе 1с. стандарт драйвера на торговое оборудование так написан - распознавание товаров выполняется в недрах стандартных конфигураций по переданному туда штрихкоду. поэтому несмотря на то, что товар распознается в Mobile SMARTS на терминале, в драйвере 1с он повторно распознается 1ской уже по штрихкоду. и этот штрихкод должен лежать в колонке code.

Это понятно, но для моего случая это не выполнится. Если в базе номенклатуры ТСД не будет товара 1111..1, то поиск номенклатуры документа не сработает, не так ли?Ведь она ищет из загруженных те, которые есть в документе.
А если выгружать дополнительную номенклатуру 111..1, то при вводе 1111..1 каждый раз будет ++ номенклатура 111..1, а не та, что надо
(Добавление)
>>в драйвере 1с он повторно распознается 1ской уже по штрихкоду. и этот штрихкод должен лежать в колонке code.

Тогда в строках ручного ввода будет лежать code=111..1 и в 1С бкдет искаться номенлатура по этому коду. А это неправильно
ну а что, туда никак нельзя положить какой-нибудь штрихкод, который уже стоял бы у товара? на крайняк добавить всем товарам эти штрихкоды 111..1.

или значит вы придумали плохой вариант сделать что вам нужно. поменять тут ничего нельзя, потому что так вот стандартные конфигурации 1с работают с торговым оборудованием. ну или пишите загрузку документов сами отдельной обработкой.
>>ну или пишите загрузку документов сами отдельной обработкой.
Давно уже)
Имхо, мой вариант самый верный в данной ситуации. Действие "Выбор номенклатуры" просто напросто не отработает вариант со штрихкодом 111..1, если его нет в загруженном списке товаров. А если есть, то каждый раз будет выбираться именно он. И в ситуациях, когда у сканируемой(реальной) позиции нет ШК, или его невозможно прочесть - бедным пользователям остается только вводить артикул или код товара, что скажется на скорости работы кладовщиков - при большом ассортименте номенклатуры коды и артикулы их оказываются очень сложными для набора с ТСД.
Это косяк и причем серьезный.
(Добавление)
+ как вариант, можно написать запрос, который вытаскивает ШК текущего товара по {СтрокаДляПодбора.ProductId} и выводит этот ШК на экран для ручного ввода.
Цель ручного ввода - предоставить возможность ++ товар при физическом отсутствии ШК, при этом усложнить ввод, чтобы пользователи не злоупотребляли этой возможностью

Сервис поддержки клиентов работает на платформе UserEcho