Статья успешно отправлена на почту

Событие сервера Mobile SMARTS «ПолучитьСписокТоваров»

Применимо к продуктам: Mobile SMARTS платформа
Последние изменения: 2024-03-26

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

Аргументы:

Имя параметра Тип данных Описание
ИдРодителя 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"] = ЕдиницаИзмерения;
...
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Была ли статья полезна?
Спасибо за ваш отзыв!
Отзыв
Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
0/500