ПолучитьТовар

Последние изменение: 28.08.2019

Событие о том, что товар был запрошен терминалом по идентификатору или каким-либо реквизитам (штрихкод, артикул, код) с сервера и не был найден в серверном справочнике. Позволяет реализовать поиск товаров непосредственно в базе учетной системы, без предварительной выгрузки. 

Для того, чтобы выполнялся вызов обработчика события, в настройках номенклатуры должен быть включен «Поиск на сервере» и «Поиск во внешней системе».

Параметры

Имя параметра Тип данных Описание
ИдТовара 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»:

C#
Функция ПолучитьТовар(ПараметрНоменклатуры, ПараметрУпаковки, 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”).

Пример: