Mobile SMARTS — это программная система, которая представляет собой «конструктор», позволяющий гибко и быстро построить складскую логику из набора высокоуровневых логических блоков. Результатом процесса будет служить список складских операций и документов с четко определенными инструкциями для их выполнения на мобильном терминале. Mobile SMARTS поддерживает любое число типов документов и практически любую сложность операций.
Продемонстрируем это на простом примере для операции поступления товара. Для составления схемы обработки документа требуется составить небольшой план того, как сотрудник будет пользоваться ТСД, обрабатывая поступление. Рассмотрим такой план по шагам.
Допустим, выгрузка товара начинается с ввода номера пломбы на воротах транспортного средства. Итак, первое, что должен увидеть человек, — окно ввода номера пломбы.
Далее было бы полезным просмотреть содержимое накладной. Допустим, в одной руке у него будет накладная, а во второй — мобильный ТСД с заявкой на эту накладную в электронном виде. Итак, второе — показать содержимое документа.
Теперь необходимо сверить товар по накладной с реальностью и с данными заявки и затем расфасовать приход по палетам. Будем рассматривать вариант, когда товар пришел навалом, и вся передняя стенка заставлена коробками. Необходимо взять свободный поддон и набрать на него коробок одноименного товара. Допустим, коробки обматываются пленкой. Теперь на сцену выходит штриховое кодирование, а именно рулон заранее распечатанных этикеток палет.
Клеить заранее распечатанные безымянные этикетки намного быстрее, чем печатать более информативные этикетки по ходу приемки. Сотрудник берет готовый рулон и налепляет по одной этикетке из рулона на каждый палет.
Наступило время ввода данных. Необходимо сканировать этикетку и ввести данные о палете. Итак, третье — сканирование штрихкода палеты.
Четвертое — ввод номенклатуры товара, сканирование штрихкода коробки или выбор товара из списка.
Пятое — ввод количества.
Данные введены, и нужно переходить к следующей палете, т. е. на шаг 3. А если не нужно больше палет?
Для этого шестое — спросить, не пора ли уже заканчивать приемку.
Теперь, когда у нас есть план работы сотрудника с мобильным терминалом, его необходимо переложить на язык схемы обработки, понятный Mobile SMARTS. Рассмотрим пример создания такой схемы «с нуля». По шагам:
Пустая конфигурация создается по алгоритму, описанному в статье «Заведение базы данных Mobile SMARTS по шаблону»
Для добавления действий в алгоритм нажмите правой кнопкой мыши на «Алгоритм» или действие, после которого хотите добавить еще одно, и выберите «Добавить действие». Из списка выберите нужное и нажмите кнопку «Добавить».
![]()
Или, выберите нужное действие левой клавишей мыши, удерживая клавишу, перенесите действие в нужное место алгоритма.
![]()
Для того чтобы выбирать палеты для них должны быть заведены штрихкода с помощью шаблонов. Подробнее смотрите «Добавление контейнеров и палет» и «Шаблоны контейнеров и палет».
![]()
Вопрос (подробнее смотрите действие «Выбор Да/Нет»)
В выпадающем списке напротив «При выборе Да» и «При выборе Нет» отображаются возможные варианты перехода по нажатию таких кнопок:
В нашем случае, при выборе «Да» необходимо назначить переход на действие «Выбор номенклатуры». Для перехода по «Нет» мы создадим меню, в котором будут кнопки для выбора новой палеты с переходом на действие «Выбор палеты» и кнопка для завершения документа, которая будет нужна, если весь поступивший товар был принят (подробнее смотрите действие «Меню»).
Вот и всё, схема обработки готова. Как это будет выглядеть на мобильном терминале?
В результате составления схемы обработки документа, выполненной на предыдущем шаге, мы получим на терминале следующую складскую операцию:
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
Каким же образом «Поступление» попадет на мобильный терминал и как оно окажется в учетной системе?
Для взаимодействия учетной системы с Mobile SMARTS применяется компонента доступа, с помощью которой учетная система обменивается документами с сервером Mobile SMARTS. Интеграция систем заключается в разработке процедур выгрузки и загрузки данных с Сервера. Эти процедуры создаются непосредственно в учетной системе, на ее внутреннем языке. Работа с Сервером происходит через операции с объектами и функциями, предоставляемыми компонентой доступа через механизм OLE Automation.
Схема взаимодействия между компонентами системы выглядит следующим образом:
На примере кода для «1С:Предприятие 7.7»:
//создание объекта документа и заполнение его шапочной части
document = СоздатьОбъект("Cleverence.Warehouse.Document");
document.Id = СформироватьИдентификатор(парДокумент, парТипДокумента);
document.Name = Строка(парДокумент);
document.UserName = имяПользов;
document.CreateDate = парДокумент.ДатаДок;
document.DocumentTypeName = парТипДокумента;
document.InProcess = 0;
document.Finished = 0;
document.Modified = 0;
document.WarehouseId = 1;
document.Description = "приемка товара";
document.Priority = парДокумент.Приоритет;
document.Barcode = глШтрихКод("ЗаявкаНаПоставку", парДокумент.НомерДок);
document.DistributeByBarcode = 0;
//заполнение табличной части
парДокумент.ВыбратьСтроки();
Пока парДокумент.ПолучитьСтроку() <> 0 Цикл
лКоличество = парДокумент.Количество * парДокумент.Единица.Коэффициент;
documentItem = СоздатьОбъект("Cleverence.Warehouse.DocumentItem");
documentItem.ProductId = парДокумент.Товар.Код<;
documentItem.PackingId = "pid1";
documentItem.CurrentQuantity = 0;
documentItem.DeclaredQuantity = лКоличество;
document.DeclaredItems.Add(documentItem);
КонецЦикла;
// Создание объекта коннектора и инициализация его соединения с сервером
connector = СоздатьОбъект("Cleverence.Warehouse.StorageConnector");
connector.InitializeServerConnection(СокрЛП(Константа.ПолучитьАтрибут("СтрокаПодключения")));
//создание коллекции документов для выгрузки
outDocuments = СоздатьОбъект("Cleverence.Warehouse.DocumentCollection");
//добавление документа в коллекцию выгружаемых документов
outDocuments . Add ( document );
//выгрузка документов
connector . SetDocuments ( outDocuments );