Настройка свойств действий в Mobile SMARTS


Действие «Выбор номенклатуры»

Действие с многозначительным названием «Выбор номенклатуры» выполняет очень важную функцию: указать программе тот самый товар, для которого будут вводиться количества и пр. Одно и то же действие отвечает за любой способ выбора товара. Способы могут быть следующими:

  1. Сканирование ШК товара;
  2. Ввод ШК товара вручную;
  3. Ввод кода или артикула товара;
  4. Выбор товара из списка;
  5. Поиск товара по базе на основании ШК, кода или артикула, указанного в переменной сессии.

Действие выбора номенклатуры поддерживает наиболее вероятные сценарии выбора товара. В нем есть настройки отображения списка для выбора товара из списка. Есть настройки для реакции на неверный ввод.

 

Полный список свойств данного действия следующий:

Автоматический выбор единственного товара из списка.

Да/Нет. Определяет, следует ли автоматически выбирать товар из списка товаров (при вводе в качестве штрихкода ‘0’), если в списке всего один товар. Да — выбрать и перейти к следующему действию. Нет — вывести список с одним товаром для подтверждения выбора.

Автоматический выбор первого товара из списка.

Да/Нет. Определяет, следует ли автоматически выбирать первый же товар из списка товаров (при вводе в качестве штрихкода ‘0’). Да — выбрать и перейти к следующему действию. Нет — вывести список товаров для ручного выбора.

Смена регистра штрихкода.

Без изменения | К верхнему регистру | К нижнему регистру. Задает тип изменения регистра символов введенного штрихкода.

Фильтр товаров для поиска по присутствию признака.

Список идентификаторов. Позволяет указать фильтрацию товаров для поиска по присутствию признака. Поиск будет производиться только среди тех товаров, у которых стоят все указанные признаки. Можно указывать идентификатор признака, идентификатор типа признака или путь к переменной, содержащей признак, тип признака или их идентификатор.

Фильтр товаров для поиска по отсутствию признака.

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

Заголовок окна выбора товара из списка.

Строка. Текст, выводимый в заголовке окна со списком товаров.

Игнорировать политику ввода количества.

Да/Нет. Игнорировать политику учета товара, даже если она у товара выставлена.

Быстро вводить количество.

Да/Нет. Быстрый выбор продукта. Товар выбирается в базовом типе упаковки с количеством = 1.

Типы признаков для построения дерева.

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

Переменная хранилища.

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

Сразу показывать список товаров.

Да/Нет. Включает режим выбора продукта без штрихкода, из списка. Для вывода онлайн справочника ДОЛЖНО быть выставлено древовидное отображение товаров.

Выбирать из ранее найденных.

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

Переменная штрихкода товара.

Строка. Имя переменной сессии, используемой для хранения введенного штрихкода товара. По-умолчанию ‘ScannedBarcode’, если задать пустое значение (null), штрихкод в сессии сохранен не будет.

Обработать штрихкод из сессии.

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

При удачном вводе.

Действие, на который произойдет переход в случае удачного выбора товара.

Источник списка товаров.

Строка. Имя переменной, в которой содержится список товаров для выбора и поиска, либо пусто для поиска в общем списке.

Игнорировать базовый штрихкод товара.

Да/Нет. Игнорировать базовые штрихкоды товаров. Если флаг выставлен, поиск будет учитывать только штрихкоды упаковок, но не штрихкоды товаров.

При ошибке ввода.

Строка. Текст ошибки на случай, если товар не найден.

Позволять выбор из списка.

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

Ограничивать товарами документа.

Да/Нет. Признак, того, что справочник продуктов при поиске и отображении ограничивается позициями, присутствующими в документе.

При ошибке ввода.

Действие, на которое произойдет переход в случае, если товар не найден.

Выбирать паллету сканированием.

Да/Нет. Может ли по введенному штрихкоду, помимо поиска товара, производиться и поиск паллеты.

Текст выбора паллеты.

Строка. Текст сообщения, отображаемый в том случае, если сканированный штрихкод оказался штрихкодом паллеты.

Перейти по выбору паллеты.

Действие, на который произойдет переход в том случае, если сканированный штрихкод оказался штрихкодом паллеты.

Выбирать ячейку сканированием.

Да/Нет. Может ли по введенному штрихкоду, помимо поиска товара, производиться и поиск ячейки.

Текст выбора ячейки.

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

Перейти по выбору ячейки.

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

Формат позиций окна выбора из списка.

Строка. Текстовый шаблон для вывода строк в просмотре справочника товаров (списке выбора товара при нажатии «0»).

 

Рассмотрим несколько сценариев использования действия выбора номенклатуры:

Сканирование штрихкода товара и возможность ввода с клавиатуры.

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

Выбор товара по ручному вводу артикула.

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

Выбор товара из списка.

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

В том случае, если где-то требуется вывести только список, следует выставить в «Да» свойство «Сразу показывать список товаров». Как только исполнение операции достигнет такого действия, на экране сразу же будет выведен список товаров для выбора.

Состав выводимого списка управляется свойствами из группы «Данные» и свойством «Ограничивать товарами документа» из группы «Ограничения».

Два самых распространенных вариантов списка – это полный список всех товаров и список только тех товаров, что присутствуют в документе. Обоих можно добиться одним только свойством «Ограничивать товарами документа». Если оно выставлено в «Нет», то список окажется полным, в противном случае в списке будут только товары по накладной.

Для настройки отображения списка существует свойство «Формат позиций окна выбора из списка». Свойство принимает текстовый шаблон отображения позиции номенклатуры. Каждая позиция в списке – это пара «товар + упаковка», поэтому для обращения к номенклатуре и её упаковке в шаблоне используются пути «Item.Product» и «Item.Packing». Например, шаблон

«<Blue>{Item.Packing.Barcode} – {Item.Packing.Marking}</Blue> {Item.Product.Name:(0:E12)}»

выведет на экран следующее:

 

Распознавание товара по штрихкоду, артикулу или коду.

Иногда необходимо найти в справочнике товар по заранее известному коду или артикулу, который указан где-то в документе, в переменной или просто равен «12345», допустим.

Для решения этой задачи в действии выбора номенклатуры предусмотрены свойства «Переменная штрихкода товара» и «Обработать штрихкод из сессии». «Переменная штрихкода товара» используется для хранения штрихкода. При сканировании товара туда попадает сканированный штрихкод. При выборе товара из списка туда чаще всего попадает «0» (т.к. для вызова списка в окне штрихкода вводится «0»). Это происходит по факту выбора, и если ничего выбрано или сканировано не было, то переменная не трогается.

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

Например, можно поместить в переменную «МойТовар» значение «001» и затем выставить «Переменная штрихкода товара» = «{МойТовар}», «Обработать штрихкод из сессии» = «Да». В этом случае действие выбора номенклатуры будет искать в справочнике товар, соответствующий строке «001». Как и при обычном сканировании товара, результат поиска может быть таким:

  1. Товар не был найден – издается громкий звук ошибки, на экран выводится текст из свойства «При ошибке ввода»;
  2. Был найден единственный товар – он кладется в сессию в переменную «SelectedProduct», а исполнение переходит либо к действию, указанному в свойстве «При удачном выборе», либо просто к следующему действию в дереве (если свойство пустое);
  3. Найдено несколько товаров – в зависимости от значения свойства «Автоматический выбор первого товара из списка» на экран либо выводится список найденных, либо выбирается первый же найденный товар и всё происходит как в пункте 2.

Следовательно, для полностью автоматического выбора заранее известного товара по его штрихкоду, коду или артикулу, необходимо выставить «Переменная штрихкода товара» = «{<Какая-то моя переменная>}», «Обработать штрихкод из сессии» = «Да», «Автоматический выбор первого товара из списка» = «Да».

Действие «Сообщение».

Действие позволяет выводить на экран сообщения для пользователя. Отображаемый в сообщении текст задается с помощью свойства «Текст сообщения» и поддерживает применение текстовых шаблонов .

Для визуального отображения является ли текст сообщением о какой-либо ошибке или нет, применяется «Отображать как ошибку». Сообщения ошибки отображаются белым текстом на красном фоне. Обычные сообщения – черным текстом на бежевом фоне.

Время отображения сообщения задается в секундах с помощью свойства «Время показа в секундах». Если время задано равным нулю – сообщение будет отображаться до нажатия пользователем любой клавиши.

Действие очистки данных

Действие, позволяющее удалить данные из сессии.

Иногда требуется удалить из сессии ранее введенные данные, чтобы они не нарушали процесс работы идущих далее действий. Для этих целей следует применять данное действие.

Действие «Новая упаковка».

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

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

Действие позволяет настроить автоматическое задание параметров упаковки с помощью свойств NewPackingAction.DefaultPackingName, NewPackingAction.DefaultQuantity и NewPackingAction.UseDefaultParams, либо позволить пользователю вводить параметры вручную.

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

  1. Заведение упаковки для товара на мобильном терминале с помощью действия Cleverence.Warehouse.NewPаckingAction. Все созданные упаковки хранятся на терминале и выгружаются на Сервер только во время процедуры обмена данными.
  1. Загрузка созданных упаковок в учетную систему. Для этих целей используется функция StorageConnector.GetUserAddedProducts(), которая возвращает коллекцию продуктов с новыми упаковками.
  1. После занесения новых упаковок в учетную систему следует провести процедуру выгрузки изменившихся позиций номенклатуры на Сервер.
  1. Сразу же после выгрузки изменившихся товаров, необходимо передать Серверу соответствия между упаковками, заведенными на мобильных терминалах, и упаковками, выгруженными из учетной системы. Это позволит Серверу переопределить хранимые в нем документы, соответствующей заменой идентификаторов упаковок. Для этого используется функция StorageConnector. SetReplacementsForUserAddedProduct(). Ей передается коллекция объектов типа Cleverence.Warehouse.IdReplacement, содержащих соответствия между идентификаторами упаковок.
  1. После этого Сервер уже автоматически сообщит на мобильные терминалы о сделанной подмене, что позволит им удалить у себя ставшие уже лишними упаковки.

В общем случае же рекомендуется избегать применения описанного выше функционала, так как вся процедура имеет достаточно много узких мест и потенциально может привести к ошибкам. Например, одна и та же физическая упаковка (или штрихкод) может быть заведена на двух терминалах сразу, что требует дополнительной обработки.