Обработчик события вызывается при отображении на терминале справочника номенклатуры с сервера, позволяет организовать вывод иерархического справочника номенклатуры из учетной системы.
Аргументы:
Имя параметра | Тип данных | Описание |
---|---|---|
ИдРодителя | string (строка) | Идентификатор позиции (папки), вложенные элементы которой следует вернуть. Для верхнего уровня - пустая строка или Null. |
ИдПользователя | string (строка) | Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика. |
XmlСессии | string (строка) | Xml представление объекта Cleverence.Warehouse.ServerSession (см. справочник) или Null (если в настройках событий сервера в конфигурации Mobile SMARTS отключено добавление сессии в обработчики событий). Объект может быть загружен с помощью функции FromXml объекта Cleverence.Warehouse.StorageConnector. |
В панели управления:
<id коннектора>:<имя функции-обработчика>
При запросе позиций верхнего уровня ИдРодителя пустой. Когда пользователь на терминале при просмотре списка номенклатуры выбирает элемент, являющийся группой, в параметр ИдРодителя передается идентификатор выбранной группы. При этом функция должна вернуть элементы, вложенные в группу (элементы могут сами являться группами или позициями номенклатуры).
Результат, возвращаемый функцией, должен быть в виде Xml-представления объекта Cleverence.Warehouse.PackedProductCollection (коллекция товаров с упаковками, см. справочник). Xml-представление объектов Mobile SMARTS следует получать с помощью функции ToXml компоненты StorageConnector.
В случае 1С функция может возвращать таблицу значений, которая на сервере Mobile SMARTS преобразуется в объект коллекции. Наименования колонок таблицы значений должны начинаться на “Product_”, если поле относится к товару и на “Packing_”, если это поле упаковки. Например, “Product_Id”, “Packing_Barcode”, “Packing_Характеристика”.
Если возвращаемый элемент является группой, у объекта PackedProduct, добавляемого в коллекцию, не должно быть заполнено свойство Packing (упаковка), этот признак используется клиентом Mobile SMARTS для определения того, что внутрь элемента при выборе его из списка можно зайти. В случае таблицы значений в строке, представляющей группу, должны быть заполнены только колонки товара (Product) и не заполнены колонки упаковки (Packing).
Пример
1C
Функция ПолучитьСписокНоменклатуры(ИдРодителя, userId, mXmlDoc=Неопределено) Экспорт
Родитель = Неопределено;
Если Не ЗначениеЗаполнено(ИдРодителя) Тогда
Родитель = Справочники.Номенклатура.ПустаяСсылка();
Иначе
Попытка
Гуид = Новый УникальныйИдентификатор(ИдРодителя);
Родитель = Справочники.Номенклатура.ПолучитьСсылку(Гуид);
Исключение
Родитель = Справочники.Номенклатура.ПустаяСсылка();
КонецПопытки;
КонецЕсли;
ЗапросНоменклатуры = Новый Запрос;
...
ЗапросНоменклатуры.УстановитьПараметр("Родитель", Родитель);
ТаблицаТоваров = ЗапросНоменклатуры.Выполнить().Выгрузить();
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Product_Id");
Результат.Колонки.Добавить("Product_Marking" );
Результат.Колонки.Добавить("Product_Barcode" ); Результат.Колонки.Добавить("Product_Name" );
Результат.Колонки.Добавить("Product_BasePackingId" );
...
Результат.Колонки.Добавить("Packing_Id" );
Результат.Колонки.Добавить("Packing_Name" );
Результат.Колонки.Добавить("Packing_Marking" );
Результат.Колонки.Добавить("Packing_Barcode" );
…
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
СтрокаРезультата = Результат.Добавить();
СтрокаРезультата["Product_Id"] = СтрокаТовара["ИдНоменклатуры"];
СтрокаРезультата["Product_Name"] = Строка(СтрокаТовара["Номенклатура"]);
Если СтрокаТовара["ЭтоГруппа"] Тогда
СтрокаРезультата["Product_ЭтоГруппа"] = Истина;
Иначе
...
СтрокаРезультата["Product_Marking"] = Артикул;
СтрокаРезультата["Product_Barcode"] = Код;
СтрокаРезультата["Packing_Barcode"] = ШК;
СтрокаРезультата["Product_BasePackingId"] = ФлагБазовойЕдиницы;
СтрокаРезультата["Packing_Id"] = ЕдиницаИзмерения;
СтрокаРезультата["Packing_Name"] = ЕдиницаИзмерения;
...
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции