Номенклатура и штрихкоды товаров

Для хранения информации о товарах и их количественных характеристиках в системе используются справочник номенклатуры.

Каждая позиция номенклатуры (Cleverence.Warehouse.Product) в системе Mobile SMARTS содержит информацию о наименовании, артикуле, базовом штрихкоде, а также типах упаковки товара.

Для каждого товара в системе может быть задано несколько типов упаковки товара (Cleverence.Warehouse.Packing), например пачка, блок и коробка.

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

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

«1С:Предприятие 7»:

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

Шаблоны штрихкода

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

Такой шаблон описывается в виде ###{шаблон}#…{шаблон}…###, где ### — некоторое количество фиксированных символов.

В качестве {шаблон} используются специальные выражения вида {имя:формат}, где имя задает имя параметра, а шаблон зависит от типа параметра. Если параметр – это строка или число, то в качестве шаблона можно указать количество символов штрихкода, отводимое под параметр.

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

  1. Добавить в типе документа дополнительное поле строки.
  2. Создать шаблон штрихкода, в котором упоминалось бы наименование этого поля.

Вот некоторые примеры использования шаблонов:

Шаблон Описание
{Quantity:число},
число – количество символов в
штрихкоде или два числа,
разделенных точкой (целая и
дробная части).
Позволяет точно определить количество сканируемого товара,
избегая его ввода вручную. Переменная Quantity используется
действием ввода количества товара, а также действиями
занесения сток в документ.Пример шаблона: 234{Quantity:3}634987Пример штрихкода: «234002634987» – будет выбрано «2» чего-то.Пример шаблона: 234{Quantity:3.2}4987Пример штрихкода: «234001864987» – будет выбрано «1,86» чего-
то.
{SSCC:число},
число – количество символов в
штрихкоде.
Позволяет привязывать к упаковкам какой-либо уникальный
номер SSCC. При сканировании такого штрихкода, код SSCC будет
заноситься в колонку «SSCC» новой строки документа, что
позволит в учетной системе отслеживать операции над
конкретными единицами товара.Пример шаблона: 7{ SSCC:5}1143576Пример штрихкода: «7231111143576». При сканировании такого
штрихкода в свойство SSCC (SelectedProduct.SSCC) будет занесено
«23111».
{Date:формат},
где формат – строковой формат
даты.
Позволяет заносить в штрихкод упаковки дату ее регистрации
(например, дату приемки).Пример шаблона: 2183{Date:ddMMyyyy}Пример штрихкода для типа упаковки «коробка»: «218322062005».
При сканировании такого штрихкода в свойство выбранного
товара (SelectedProduct.RegisteredDate) будет занесено 22 июня
2005 года.
{ExpDate:формат},
где формат – строковой формат
даты.

Позволяет ограничивать срок годности товара указанной датой.

Пример шаблона: 43{ExpDate:yyyyMMdd}21354

Пример штрихкода: «432007110821354». В поле ExpiredDate
выбранного товара будет занесена дата 8 ноября 2007 г.

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

 

Все описанные выше шаблоны могут применяться как по одиночке, так и в совокупности, например:

Шаблон Пример
11{SKU:6}{ExpDate:ddMMyyyy}{Quantity:3}45

«110102221302200401145»

SKU – 010222

Срок годности – 13.02.2004

Количество – 11 единиц

544332{Quantity:2}{SKU:8}

«5443320105490321»

SKU — 05490321

Количество – 1 единица

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

Общие шаблоны штрихкода

Кроме шаблонов у упаковки можно задать общие шаблоны, действующие на весь справочник товара сразу.

Такие шаблоны можно задать прямо через панель управления, в узле конфигурации «Номенклатура»:

-шаблоны-штрихкода-Mobile-Smarts.-Рисунок. Номенклатура и штрихкоды товаров

Правила задания общих шаблонов точно такие же, как и шаблонов в упаковках, кроме двух дополнительных полей в шаблоне:

Шаблон Пример

{ProductId:число},

число – количество символов кода
товара в штрихкоде

Обязательный элемент шаблона.

Определяет идентификатор товара в штрихкоде, для поиска в
справочнике номенклатуры. Является обязательным параметров в
общем шаблоне.Пример: шаблон «{ProductId:5}{Quantity:3}{Date:ddMMyyyy}»При вводе штрихкода «1200502612042010» будет производиться
поиск товара по коду «12005», и если он будет найден, то будет
выбран товар с этим кодом, в количестве 26 базовых упаковок и
проставлена RegistrationDate 12.04 2010 г.

{PackingId:число},

число – количество символов кода
упаковки в штрихкоде

Необязательный параметр.

Позволяет дополнительно определить выемку кода упаковки из
штрихкода. Не является обязательным параметром. Если он не
задан, то найденный товар выбирается в базовом типе упаковки.

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

Политика учета товара

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

Для этих целей используется политика учета количества (Cleverence.Warehouse.QuantityPolicy).

Политика задает коллекцию идентификаторов упаковок товара, в которых будет производиться ввод количества. Кроме того, с помощью свойства QuantityPolicy.Multiline, вы можете задать, как будет производиться добавление записи в документ: в виде нескольких строк, по одной строке на каждый тип упаковки, заданной в политике; либо в виде одной строки, в которой количество будет пересчитано в базовый тип упаковки для товара.

Привязка политики к товару осуществляется с помощью свойства Product.QuantityPolicy.

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

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

Кроме такой политики, для всех товаров, с которыми она будет применяться, необходимо создать упаковки с идентификаторами pid1 и pid2, описывающие штуки и коробки соответственно.

Выгрузка номенклатуры

Для выгрузки заполненного справочника следует применять StorageConnector.SetProducts(ProductCollection products) — для нескольких товаров за один раз, либо, StorageConnector.SetProduct(Product product) — в случае выгрузки одного, нового или изменившегося, товара.

Оба варианта функции дополняют существующий на сервере справочник номенклатуры. При этом, если на сервере уже есть товар с идентификатором, совпадающим с выгружаемым, то товар на сервере заменяется новой версией. Для полной очистки справочника или удаления одного товара на сервере необходимо использовать функции StorageConnector.RemoveProducts() и StorageConnector.RemoveProduct(string productId).

Альтернативная выгрузка номенклатуры для «1С:Предприятие»

Кроме основных методов выгрузки номенклатуры в объекте StorageConnector, для продуктов компании 1С разработаны также методы и обработки для выгрузки номенклатуры, соответствующие стандарту типовых конфигураций 1С для работы с ТСД.

Уже готовые обработки для различных конфигураций и платформ Вы можете найти в стандартной поставке Mobile SMARTS в папке «C:\Program Files\Cleverence Soft\Mobile SMARTS 2008\Demo\Конфигурация и обработки от драйвера 1С\Типовые обработки драйвера».

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