Обработчик события вызывается при запросе с терминала группы товаров с конкретными упаковками, если товары не найдены в выгруженном справочнике.
Для того, чтобы выполнялся вызов обработчика события, в настройках номенклатуры должен быть включен «Поиск на сервере» и «Поиск во внешней системе» .
Параметры
Имя параметра | Тип данных | Описание |
ИдТоваров | Массив строк (COMSafeArray) | Массив идентификаторов запрошенных товаров. |
ИдУпаковок | Массив строк (COMSafeArray) | Массив идентификаторов упаковок. |
ИдПользователя | string (строка) | Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика. |
XmlСессии | string (строка) | Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий». |
Массивы «ИдТоваров» и «ИдУпаковок» имеют одинаковую длину и содержат пары «ИдТовара-ИдУпаковки» данного товара.
Событие аналогично событию «Получить товар» в режиме 2 (поиск по коду товара с заданной упаковкой). Отличие в том, что «Получить товар принимает одну пару ИдТовара-ИдУпаковки» , а «Получить товары по списку Id» набор таких пар.
Возвращаемое значение
Результат, возвращаемый функцией, должен быть в виде Xml-представления объекта Cleverence.Warehouse.ProductCollection (коллекция товаров, см. справочник). Xml-представление объектов Mobile SMARTS следует получать с помощью функции ToXml компоненты StorageConnector.
В случае 1С функция может возвращать таблицу значений, которая на сервере Mobile SMARTS преобразуется в объект коллекции. Наименования колонок таблицы значений должны начинаться на “Product_”, если поле относится к товару и на “Packing_”, если это поле упаковки. Например, “Product_Id”, “Packing_Barcode”, “Packing_Характеристика”.
Обработчик события может найти не все запрошенные товары, тогда в таблице должны быть только строки, соответствующие найденным товарам. Если не найдено ни чего, возвращается пустая таблица.
Описание в панели управления:
C#
<ид. коннектора>:ПолучитьТовары
Ид. коннектора - задается в панели управления.
Например: OneC_Connector:ПолучитьТовары
Пример функции
Для «1С:Предприятия 8»:
C#
Функция ПолучитьТовары(ИдТоваров, ИдУпаковок, UserId, mXmlDoc=Неопределено) Экспорт ЗапросНоменклатуры = Новый Запрос; ... СписокНоменклатуры = Новый СписокЗначений; Для Каждого Ид из ИдТоваров Цикл СписокНоменклатуры.Добавить(ПолучитьСсылку("Номенклатура", Ид)); КонецЦикла; ЗапросНоменклатуры.УстановитьПараметр("П", СписокНоменклатуры); ТаблицаТоваров = ЗапросНоменклатуры.Выполнить().Выгрузить(); Результат = Новый ТаблицаЗначений; Результат.Колонки.Добавить("Product_Id"); Результат.Колонки.Добавить("Product_Marking" ); Результат.Колонки.Добавить("Product_Barcode" ); Результат.Колонки.Добавить("Product_Name" ); Результат.Колонки.Добавить("Product_BasePackingId" ); ... Результат.Колонки.Добавить("Packing_Id" ); Результат.Колонки.Добавить("Packing_Name" ); Результат.Колонки.Добавить("Packing_Marking" ); Результат.Колонки.Добавить("Packing_Barcode" ); … Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл СтрокаРезультата = Результат.Добавить(); СтрокаРезультата["Product_Id"] = СтрокаТовара["ИдНоменклатуры"]; ... КонецЦикла; Возврат Результат; КонецФункции