Работа ТСД с документом

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

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

Открыть документ для работы можно следующими способами:

  1. Получить документ-задание автоматически в рамках раздачи сервером Mobile SMARTS нужных документов, нужным людям;
  2. Сканировать штрихкод (с бумажной накладной, с этикетки паллеты и т.д.) и получить с сервера соответствующий ему документ;
  3. Создать новый документ-задание на ТСД самостоятельно (если это разрешено конфигурацией).

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

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

  1. Внести данные – штрихкоды, числа и строки – в именованные переменные текущей сессии ТСД, в которой отражен редактируемый документ, текущий пользователь и вообще все непосредственно доступные в данный момент данные. Сессию можно представить себе как вместилище записей вида «имя – значение»;
  1. Когда все данные, необходимые для формирования строки документа, введены, выполняется специальное действие «Занесение данных в буфер», которая формирует из переменных сессии строку документа, но пока вносит ее не в документ, а в специальную табличную часть, называемую буфером, и также находящуюся в сессии. Это позволяет набрать несколько строк с возможностью отменить их все еще до внесения изменений в документ. Когда новая строка заносится в буфер, она не обязательно дописывается в конец – этим занесение и отличается от добавления. В зависимости от настроек конфигурации, она может быть объединена с какой-нибудь уже существующей строкой буфера, например для того, чтобы вместо множества строк с одинаковой номенклатурой и разным количеством иметь в буфере строки «суммированные» по номенклатуре. Всё это настраивается свойствами действия «Занесение данных в буфер»;
  1. В нужный момент, когда буфер уже содержит хотя бы одну строку, может быть выполнено специальное действие «Занесение буфера в документ», которая заносит строки буфера в реальную табличную часть документа (CurrentItems). Как и в случае с буфером, занесение не обязательно означает добавление строк в конец – строки буфера могут быть объединены со строками документа по нужным критериям с суммированием количеств. Именно в момент занесения буфера содержимое документа изменяется а сам документ сохраняется;
  1. В любой момент можно удалить ненужные строки документа, при этом будут автоматически выполнены все корректировки количеств;

* Можно собрать данные из сессии и занести их в документ за один шаг, Выполнив действие «Прямая запись в документ». Результат будет тот же, что и для пунктов 2 и 3, но делается всё без создания буфера.

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

Ошибка может быть двух типов:

  • Фатальная, приводящая к прекращению обработки документа.
  • Некритическая, позволяющая продолжить обработку задания.