Событие о том, что товар был запрошен терминалом по идентификатору или каким-либо реквизитам (штрихкод, артикул, код) с сервера и не был найден в серверном справочнике. Позволяет реализовать поиск товаров непосредственно в базе учетной системы, без предварительной выгрузки.
Для того, чтобы выполнялся вызов обработчика события, в настройках номенклатуры должен быть включен «Поиск на сервере» и «Поиск во внешней системе».
Параметры
Имя параметра | Тип данных | Описание |
ИдТовара | string (строка) | Идентификатор или атрибут для поиска (штрихкод, артикул, код) для поиска. |
ИдУпаковки | string (строка) | Идентификатор упаковки товара. Заполняется только для режимов 2 и 3. |
ИдПользователя | string (строка) | Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика. |
Режим | int (целое число) |
Режим поиска =0 — поиск по коду товара, без указания конкретной упаковки. =1 — поиск по штрихкоду, артикулу или любой другой характеристике товара. =2 — поиск по коду товара с заданной упаковкой. =3 — поиск упаковки для товара. |
XmlСессии | string (строка) | Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий» |
Возвращаемое значение
В качестве возвращаемого значения ожидаются разные типы данных, в зависимости от режима:
Cleverence.Warehouse.Product, Cleverence.Warehouse.Packing, Cleverence.Warehouse.PackedProduct или Cleverence.Warehouse.PackedProductCollection в виде XML.
Режим 0:
Требуется найти товар по его идентификатору. Возвращаемое значение Cleverence.Warehouse.Product в виде XML. Если товар не найден, необходимо вернуть null (неопределено).
Следует возвращать товар с базовым типом упаковки. Если другие упаковки потребуются в процессе работы, программа запросит их с помощью режима 2 или 3.
В данном режиме событие вызывается, когда на ТСД было вызвано получение товара по идентификатору. Например, при отображении строк документа в списке выполняется получение товаров по их идентификаторам из строк документа.
Режим 1:
Требуется найти товар по штрихкоду, артикулу или иному реквизиту, по которому предусмотрен поиск. Возвращаемое значение Cleverence.Warehouse.PackedProduct или Cleverence.Warehouse.PackedProductCollection в виде XML. Если товар не найден, необходимо вернуть null (неопределено).
В данном режиме событие вызывается при сканировании на ТСД штрихкода товара в действии Выбор номенклатуры или при вводе пользователем значения, по которому требуется найти товар.
Режим 2:
Требуется найти товар по коду товара с заданной упаковкой. Возвращаемое значение Cleverence.Warehouse.Product в виде XML. Если товар не найден, необходимо вернуть null (неопределено). Отличие от режима 0 состоит в том, что в режиме 0 должен возвращаться товар с базовой упаковкой, а в данном режиме запрашивается товар с конкретной упаковкой.
Режим 3:
Требуется найти упаковку товара. Возвращаемое значение Cleverence.Warehouse.Packing в виде XML. Если товар не найден, необходимо вернуть null (неопределено).
Описание в панели управления:
C#
<ид. коннектора>:ПолучитьТовар
Ид. коннектора — задается в панели управления.
Например: OneC_Connector:ПолучитьТовар
При использовании коннекторов, у которых имена обработчиков указываются в свойствах самого коннектора (производные от ConnectorTypical), есть возможность указать разные обработчики для разных режимов получения товара:
Режим 0 и Режим 2 — «Получить товар по Id»,
Режим 1 — «Получить товар по реквизитам (Штрихкод, Код, Артикул)»,
Режим 3 — «Получить упаковку товара».
Параметры обработчиков те же, что описаны выше.
Пример функции
Для «1С:Предприятия 8»:
1C
Функция ПолучитьТовар(ПараметрНоменклатуры, ПараметрУпаковки, UserId, Режим = 0, mXmlDoc = Неопределено) Экспорт Результат = Неопределено; //код обработки поиска товара ... StorageConnector = Новый COMОбъект("Cleverence.Warehouse.StorageConnector"); //создание объекта драйвера для передачи данных в компоненту PackedProductCollection = Новый COMОбъект("Cleverence.Warehouse.PackedProductCollection"); ... //преобразование объекта драйвера в формат XML Результат = StorageConnector.ToXml (PackedProductCollection); //передача данных на сервер Mobile SMARTS Возврат Результат ; КонецФункции
Кроме изложенного варианта возврата результата из обработчика в виде xml-представления объектов Cleverence.Warehouse.Product, ProductCollection, PackedProduct и т. п., есть возможность возвращать из 1С таблицу значений. Наименования колонок таблицы значений должны начинаться на «Product_», если поле относится к товару и на «Packing_», если это поле упаковки. Например, «Product_Id», «Packing_Barcode», «Packing_Характеристика». Поле объекта PackedProduct (возвращается в режиме 2), не относящиеся ни к товару, ни к упаковке, указывается без префиксов «Product_» и «Packing_» (например, «Quantity»).
Пример: