Перейти к основному содержимому
Версия: 3.4

События сервера Mobile SMARTS

События сервера Mobile SMARTS — это специальный механизм, позволяющий выполнять вызов функций внешних соединений (коннекторов) при наступлении определенных событий (например, запрос номенклатуры по идентификатору или штрихкоду с ТСД, получение сервером с ТСД завершенного документа и др.). При вызове функции-обработчика события коннектор, как правило, выполняет обращение к внешней системе, передавая параметры события во внешнюю систему (например, штрихкод, по которому нужно найти номенклатуру или идентификатор завершенного документа, по которому документ можно получить из базы Mobile SMARTS), внешняя система возвращает результат в требуемом виде (например, объект «Товар с упаковкой» PackedProduct, сериализованный в xml), коннектор передает результат серверу для возврата его на ТСД (подробнее написано в статье «Основной принцип работы коннекторов»). В некоторых случаях логика обработки определенных событий может быть реализована непосредственно в самом коннекторе, без вызова внешней системы (например, при добавлении в базу документа для обработки на ТСД коннектор может выполнить построение дополнительных таблиц документа или запретить добавление документа, если не заполнены определенные поля).

Настройка обработчиков событий сервера выполняется через панель управления. Для большинства стандартных коннекторов, входящих в дистрибутив Mobile SMARTS, функции-обработчики указываются в параметрах самого коннектора:

панель управления

Указание обработчиков событий сервера в свойствах коннектора позволяет организовать вызов нескольких обработчиков для одного события. Порядок вызова обработчиков редактируется в панели управления в свойствах узла «События сервера»:

панель управления

Примечание. Задание имени функции-обработчика события в параметрах коннектора не является обязательным условием для вызова обработчика. В платформе Mobile SMARTS версий до 3.1 (3.0.xx.xxxx) обработчики событий указывались только в узле «События сервера» в формате «Ид коннектора:Имя функции-обработчика», и коннекторы не имели параметров для задания обработчиков. Такой механизм поддерживается и в версиях 3.1.xx.xxxx. Т. е. если используется коннектор, разработанный для платформы 3.0, не имеющий параметров для указания обработчиков, и обработчик задан в узле «События сервера», вызов обработчика сервером будет выполняться.

Параметры, передаваемые в функцию-обработчик, для каждого события, фиксированные, и функция для успешного вызова должна соответствовать этим параметрам.

ДокументДобавлен​

Событие, возникающее после добавления документа на сервере. Вызывается при выгрузке документа в базу Mobile SMARTS из внешней системы.

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который выгружен на сервер.
ИдПользователяstring (строка)Передается null.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document).

Обработчик может внести изменения в документ. После вызова обработчика документ сохраняется на сервере.

Описание в панели управления:

C#

<ид. коннектора>:ДокументДобавлен

Описание в панели управления:

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ДокументДобавлен

панель управления панель управления

ДокументДобавляется​

Событие, возникающее в процессе добавления документа на сервере. Вызывается при выгрузке документа в базу Mobile SMARTS из внешней системы.

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который выгружается на сервер.
ИдПользователяstring (строка)Передается null
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document). Если выполнение серверной операции прерывается (переход [прервать операцию]), добавление документа на сервер отменяется. Если отмена добавления не требуется, операция должна завершиться по переходу [завершить операцию].

В случае обычных коннекторов, если обработчик события вернул null, добавление документа на сервер отменяется.

Описание в панели управления:

C# 

<ид. коннектора>:ДобавлениеДокумента

Ид. коннектора — задается в панели управления.

Например: OneC_DriverConnector:ДобавлениеДокумента

панель управления

ДокументИзменен​

Событие об изменении документа. Вызывается при сохранении документа на сервер в процессе работы на ТСД при использовании в конфигурации Mobile SMARTS действия «Сохранение документа на сервер».

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который был изменен.
ИдПользователяstring (строка)Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document).

Описание в панели управления:

C# 

<ид. коннектора>:ДокументИзменен

Ид. коннектора — задается в панели управления.

Например: OneC_DriverConnector:ДокументИзменен

ДокументНазначаетсяПользователю​

Событие о том, что документ готов передаваться на мобильное устройство. Вызывается при запросе с ТСД получения документа для работы.

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который получает пользователь для работы на ТСД.
ИдПользователяstring (строка)Ид. пользователя ТСД, который выполнил запрос.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка«Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document). Если выполнение серверной операции прерывается (переход [прервать операцию]), назначение документа пользователю ТСД отменяется. Если отмена назначения не требуется, операция должна завершиться по переходу [завершить операцию].

В случае обычных коннекторов, если обработчик события вернул null, назначение документа отменяется.

Описание в панели управления:

C# 

<ид. коннектора>:ДокументНазначается

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ДокументНазначается

панель управления панель управления

ДокументНазначенПользователю​

Событие о том, что документ захвачен на обработку. Вызывается в момент, когда документ был передан на ТСД для работы с ним.

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который отправлен для работы на ТСД.
ИдПользователяstring (строка)Ид. пользователя ТСД, который выполнил запрос.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document).

Обработчик может внести изменения в документ. После вызова обработчика документ сохраняется на сервере.

Описание в панели управления:

C# 

<ид. коннектора>:ДокументНазначен

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ДокументНазначен

панель управления панель управления

ДокументУдален​

Событие об удалении документа с сервера. Удаление выполняется внешней системой.

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который получает пользователь для работы на ТСД.
ИдПользователяstring (строка)Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document).

Описание в панели управления:

C# 

<ид. коннектора>:ДокументУдален

Ид. коннектора — задается в панели управления.

Например: OneC_DriverConnector:ДокументУдален

панель управления панель управления

ДокументВозвращенСТсдБезОбработки​

Вызывается, когда документ с терминала был возвращен пользователем вызовом release (вернуть документ без изменений).

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который получает пользователь для работы на ТСД.
ИдПользователяstring (строка)Ид. пользователя ТСД, который выполнил запрос.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document).

Описание в панели управления:

C# 

<ид. коннектора>:ДокументВозвращен

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ДокументВозвращен

панель управления панель управления

ДокументЗавершен​

Событие о завершении обработки документа. Вызывается при получении сервером завершенного документа с ТСД. Может использоваться для автоматической загрузки завершенных документов в учетную систему. Учетная система может выполнить загрузку документа по ID с помощью функции GetDocument компоненты Cleverence.Warehouse.StorageConnector, после загрузки документ может быть удален из базы с помощью вызова RemoveDocument. Подробнее описано здесь.

Параметры

Имя параметраТип данныхОписание
ИдДокументаstring (строка)Код документа, который был завершен.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию передается сам документ (переменная сессии Document).

Описание в панели управления:

C# 

<ид. коннектора>:ДокументЗавершен

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ДокументЗавершен

панель управления панель управления

ПолучитьДокумент​

Событие о запросе получения документа по идентификатору или штрихкоду с сервера. Событие может использоваться совместно с событием «Получить список документов». Обработчик события «Получить список документов» возвращает список описаний документов (Cleverence.Warehouse.DocumentDescriptionCollection). Cписок отображается в окне выбора документа на ТСД, пользователь ТСД выбирает позицию из списка, идентификатор выбранного документа передается сервером в обработчик события «Получить документ». Обработчик «Получить документ» возвращает документ Mobile SMARTS (объект Cleverence.Warehouse.Document, сериализованный в xml).Также получение документа может выполняться по штрихкоду, отсканированному в окне выбора документов. В этом случае в параметрах типа документа должна быть включена настройка «Выбирать по штрихкоду с сервера — Да».

Параметры

Имя параметраТип данныхОписание
ИдПользователяstring (строка)Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика.
КодДокументаstring (строка)Идентификатор или штрихкод запрашиваемого документа.
ТипДокументаstring (строка)Тип документов, которые запрашиваются с терминала.
Режимint (целое число)=0 — получить документ по коду;
=1 — получить документ по штрихкоду.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий».

Возвращаемое значение

Функция должна вернуть объект типа Cleverence.Warehouse.Document в виде XML или пустую строку, если документ не найден.

Событие может быть обработано модулем «Вызов серверных операций». В этом случае в серверную операцию в переменную сессии Document передается результат вызова предыдущего обработчика в цепочке обработчиков данного события (если задано несколько обработчиков). Если предыдущих обработчиков в цепочке нет или результат вызова предыдущего обработчика = null, то создается новый документ с указанным типом. Также в сессию заносятся следующие значения: DocumentTypeName (тип запрошенного документа), DocumentId (ид. или штрихкод запрошенного документа), GetDocumentMode (режим получения документа: 0 — по ид., 1 — по штрихкоду). Возвращаемое значение (документ) операция должна занести в переменную Result.

Описание в панели управления:

C#

<ид. коннектора>:ПолучитьДокумент

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ПолучитьДокумент

Пример функции

Для «1С:Предприятия 8»:

1CФункция ПолучитьДокумент(UserId, КодДокумента, ОперацияТСД, Режим, mXmlDoc = Неопределено) Экспорт
//код обработки поиска документа
...
ДокументТСД = Новый COMОбъект ("Cleverence.Warehouse.Document");
//заполнение документа ТСД данными из документа 1С
...
Результат = StorageConnector.ToXml (ДокументТСД);
Возврат Результат;
КонецФункции

ПолучитьСписокДокументов​

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

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

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

Параметры

Имя параметраТип данныхОписание
ИдПользователяstring (строка)Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика.
ТипДокументаstring (строка)Тип документов, которые запрашиваются с терминала. Если тип документа null (неопределено) или пустая строка — запрашиваются все документы, вне зависимости от их типа.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS, сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий»

Возвращаемое значение

В качестве возвращаемого значения ожидается коллекция описаний документов Cleverence.Warehouse.DocumentDescriptionCollection, сохраненная в виде XML.

Событие может быть обработано модулем «Вызов серверных операций», в этом случае в серверную операцию в параметр Result передается результат вызова предыдущего обработчика в цепочке обработчиков данного события (если задано несколько обработчиков). Результат также возвращается в переменной Result. Серверная операция может изменить полученный из внешней системы список документов или вернуть свой собственный.

Описание в панели управления:

C#

<ид. коннектора>:ПолучитьСписокДокументов

Ид. коннектора — задается в панели управления.

Например: OneC_Connector:ПолучитьСписокДокументов

Пример функции для «1С:Предприятия 8»

Ниже приведен пример метода «ПолучитьСписокДокументов» для использования в «1С:Предприятии» с целью получения списка документов в нужном формате. Процесс формирования списка документов на стороне 1С подробно не рассматривается (в данном примере он происходит в рамках функции «ОтобратьДокументы (…)»).

1CФункция ПолучитьСписокДокументов(UserId, ТипДокумента, mXmlDoc = Неопределено) Экспорт
StorageConnector = Новый COMObject("Cleverence.Warehouse.StorageConnector");
ДокументыТСД = Новый COMObject("Cleverence.Warehouse.DocumentDescriptionCollection");
ОтобранныеДокументы = ОтобратьДокументы(UserId, ТипДокумента);
Для Каждого СтрокаДок из ОтобранныеДокументы Цикл
DocDescr = Новый COMОбъект("Cleverence.Warehouse.DocumentDescription");
DocDescr.Id = XMLСтрока(СтрокаДок.Ссылка);
cDescr.Name = Строка(СтрокаДок.Ссылка);
DocDescr.DocumentTypeName = ТипДокумента;
DocDescrs.Add(DocDescr);
КонецЦикла;
Результат = StorageConnector.ToXml(DocDescrs);
Возврат Результат;
КонецФункции

В готовой интеграции «1С:Предприятия» и Mobile SMARTS рассматриваемая функция уже добавлена в модуль основной обработки «КлеверенсТСД_ОсновнаяОбработка.epf». Если вы делаете самостоятельную интеграцию Mobile SMARTS с «1С:Предприятием» с помощью основной обработки, то вы можете использовать готовые методы.

панель управления

Итогом выполнения функции «ПолучитьСписокДокументов» будет отображение документов из обработки 1С на экране мобильного устройства, подключенного к учетной системе (при работе в онлайн-режиме).

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

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

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

панель управления

Параметры

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

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

Пример:

панель управления

ПолучитьТоварПоЧастиНаименования​

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

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

Параметры

Имя параметраТип данныхОписание
ТекстДляПоискаstring (строка)Текст, введенный пользователем на терминале.
ИдПользователяstring (строка)Идентификатор пользователя Mobile SMARTS, при работе которого на ТСД, произошел вызов обработчика.
XmlСессииstring (строка)Объект сессии сервера Mobile SMARTS (Cleverence.Warehouse.ServerSession см. справочник), сериализованный в xml. Параметр передается, только если включена настройка «Добавлять объект сессии в вызов событий»

Возвращаемое значение

Результат, возвращаемый функцией, должен быть в виде Xml-представления объекта Cleverence.Warehouse.PackedProductCollection(коллекция товаров с упаковками, см. справочник). Xml-представление объектов Mobile SMARTS следует получать с помощью функции ToXml компоненты StorageConnector.

В случае 1С функция может возвращать таблицу значений, которая на сервере Mobile SMARTS преобразуется в объект коллекции. Наименования колонок таблицы значений должны начинаться на «Product_», если поле относится к товару и на «Packing_», если это поле упаковки. Например, «Product_Id», «Packing_Barcode», «Packing_Характеристика».

Описание в панели управления:

C#

<ид. коннектора>:НайтиНоменклатуруПоЧастиНаименования

Ид. коннектора — задается в панели управления.

Например: OneC_DriverConnector:НайтиНоменклатуруПоЧастиНаименования

Пример функции

Для «1С:Предприятия 8»:

1CФункция НайтиНоменклатуруПоЧастиНаименования(ТекстДляПоиска, userId, mXmlDoc=Неопределено) Экспорт
//код обработки поиска товара
...
StorageConnector = Новый COMОбъект("Cleverence.Warehouse.StorageConnector");
//создание объекта драйвера для передачи данных в компоненту
PackedProductCollection = Новый COMОбъект("Cleverence.Warehouse.PackedProductCollection")
...
//преобразование объекта драйвера в формат XML
Результат = StorageConnector.ToXml (PackedProductCollection);
//передача данных на сервер Mobile SMARTS
Возврат Результат;
КонецФункции

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

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

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

Параметры

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