Выгрузка, загрузка и удаление документов

Выгрузка документов на Сервер осуществляется с помощью функции StorageConnector.SetDocuments. Для загрузки, соответственно, применяется функция StorageConnector.GetDocuments.

 

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

Каждая строка декларативной и текущей частей документа представляет собой объект типа Cleverence.Warehouse.DocumentItem и состоит из следующих фиксированных позиций.

ProductId, PackingId —  Идентификаторы продукта и упаковки. Указывают для строки номенклатуру, и упаковку, в которой измеряется товар.

DeclaredQuantity —  Количественные характеристики товара. Исчисляются в указанной для строки упаковке. Отвечает за хранение заявляемого количества товара. Если документ создается на терминале, заявленное количество товара будет равно нулю.

CurrentQuantity —  Содержит текущее, набранное пользователем количество товара.

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

RegisteredDate, ExpiredDate — Временные характеристики для товара в строке. Могут применяться, например, для сбора данных о дате занесения товара на склад его сроке годности.

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

SSCC — Уникальный номер единицы хранения. Служит для идентификации конкретных штучных экземпляров товара. Заполняется из штрихкода товара по шаблону при выполнении операции.

Рассмотрим пример заполнения документа перед выгрузкой. В примере показано заполнение документа Mobile SMARTS на основе документа 1С (парДокумент).

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

После инициализации шапки документа, необходимо заполнить его декларативную часть. Так как в данном случае рассматривается документ приемки, то нам достаточно для каждой строки учетной системы создать эквивалентную строку в документе Mobile SMARTS. Проходя в цикле по строкам документа-прототипа, мы создаем новые строки Cleverence.Warehouse.DocumentItem, и заполняем их соответствующими значениями.

 

Загрузка документов

При загрузке документов не требуется заранее создавать объект коллекции. Он создается компонентой доступа автоматически. Кроме того, функция загрузки позволяет получить только выполненные документы, которые уже готовы к переносу назад, в учетную систему. Для этой цели применяется второй параметр функции загрузки (первый – имя типа документов). Если его значение ложное (в учетных системах, не поддерживающих булевый тип данных, обычно используется false = 0, true = 1), то Сервер вернет все выгруженные документы указанного типа.

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

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

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