ПолучитьТоварыПоСпискуId

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

Обработчик события вызывается при запросе с терминала группы товаров с конкретными упаковками, если товары не найдены в выгруженном справочнике.

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

Параметры

Имя параметра Тип данных Описание
ИдТоваров Массив строк (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"] = СтрокаТовара["ИдНоменклатуры"]; ... КонецЦикла; Возврат Результат; КонецФункции