Печать через сервер Mobile SMARTS
Печать через сервер — это когда мобильное устройство связывается с принтером через посредника (ПК), на котором установлен сервер печати Клеверенса.
Печать через сервер в Mobile SMARTS может быть двух видов: с мобильного устройства и из учетной системы.
Перед началом печати через сервер необходимо указать в настройках базы Mobile SMARTS, что сервер печати используется и указать адрес порта для печати.
Печать через сервер с ТСД
Алгоритм печати через сервер печати:
-
Предварительно нужно добавить принтер в панели управления и настроить его. Если это офисный принтер, то нужно запустить тестовую печать. Если это этикеточный принтер и хочется печатать на него RAW-этикетки, то в свойстве «Модель принтера» нужно указать имя папки с RAW-этикетками под этот принтер (см. структуру папок для шаблонов этикеток),
-
Пользователь на мобильном устройстве находится в той операции, где предусмотрена печать или подключение принтера. Он осуществляет выбор принтера с помощью действия «Выбор принтера». Выбирать принтер не обязательно, если либо принтер уже выбирался ранее и в программе конфигурации программистом прописано, что URL выбранного принтера где‑то запоминается на будущее и затем восстанавливается при попытке печати, либо используется привязка принтера по пользователю, по складу или по типу документа, что удобно для больших складов.
-
Действие печати этикетки подготавливает и отправляет данные на сервер Mobile SMARTS, вместе с данными отправляется «Имя этикетки» и имя принтера.
-
Сервер Mobile SMARTS ищет шаблон этикетки по указанному имени этикетки и имени принтера. На сервере может быть несколько этикеток с одним именем, в вариантах для печати на разные модели принтеров (см. структуру папок для шаблонов этикеток).
-
Сервер Mobile SMARTS отправляет другой службе, которая называется сервер печати Mobile SMARTS, исходный код выбранного шаблона этикетки и все данные для заполнения. Обычно служба сервера печати автоматически установлена рядом с просто сервером, на том же компьютере. Сервер печати выделен отдельно, в отдельную службу, потому что иногда иногда для печати нужно слишком много прав, потому что печать подвисает и т.п.
-
На сервере печати формируется готовая этикетка, которая затем отправляется на принтер, используя стандартные методы печати Windows, либо, в случае RAW этикеток, напрямую: через USB, сеть или COM\ LPT порты.
Для печати RAW-этикеток на этикеточные принтеры необходимо указать название модели принтера, которое будет совпадать с названием папки, в которой лежат RAW-этикетки под этот принтер:
Для печати LBL или XAML этикеток, которые созданы в визуальном редакторе, достаточно просто произвести настройку принтера и выполнить пробную печать:
Если на каком‑то из предыдущих этапов возникла ошибка, она записывается в лог ошибок на мобильном устройстве и на сервере Mobile SMARTS. На мобильном устройстве ошибка выдаётся на экран, после чего алгоритм на мобильном устройстве переходит из действия печати этикетки к действию, указанному в действии печати этикетки в свойстве «При ошибке печати» (см. алгоритмы в Mobile SMARTS).
Печать через сервер из учётной системы
В Mobile SMARTS есть возмож ность печати этикеток прямо из товароучётной системы. Рассмотрим, как это происходит в системах, которые интегрированы с основными продуктами Mobile SMARTS, а именно «1С: Предприятие» и Axapta.
Параметры, которые необходимо указывать в функции печати, описаны здесь (printerId, label, copies).
-
Если вы используете 1С версии 7.7, то для печати из учетной системы применяется функция «ПечататьЭтикетку» («PrintLabel»). В качестве параметров эта функция использует имя принтера и объект этикетки Cleverence.Warehouse.Label.
[1С 7.7]// Создание объекта коннектора и инициализация его соединения с сервером.
connector = СоздатьОбъект("Cleverence.Warehouse.StorageConnector"); connector.НастроитьСоединение("localhost:9000"); // 9000 для Mobile SMARTS и 9400 для Wi-Fi драйвера // создание этикетки для печати
label = СоздатьОбъект("Cleverence.Warehouse.Label"); // инициализация переменных
label.ДобавитьПараметр("название товара", "Мыло «Душистое»");
label.ДобавитьПараметр("производитель", "АОА «Корнейчуков»");
label.ИмяШаблона = "Этикетка1";
// печать этикетки
connector.ПечататьЭтикетку("LaserJet 100", label, 1); -
Для печати из 1С версии 8.0 применяется функция «Печатат ьЭтикетку» («PrintLabel»). В качестве параметров эта функция использует имя принтера и объект этикетки Cleverence.Warehouse.Label.
[1С 8] // Создание объекта коннектора и инициализация его соединения с сервером.
connector = новый COMОбъект("Cleverence.Warehouse.StorageConnector");
connector.НастроитьСоединение("localhost:9000"); // 9000 для Mobile SMARTS и 9400 для Wi-Fi драйвера
// создание этикетки для печати
label = новый COMОбъект("Cleverence.Warehouse.Label");
// инициализация переменных
label.ДобавитьПараметр("название товара", "Мыло «Душистое»");
label.ДобавитьПараметр("производитель", "АОА «Корнейчуков»");
label.ИмяШаблона = "Этикетка1";
// печать этикетки
connector.ПечататьЭтикетку("LaserJet 100", label, 1); -
Для печати из учетной системы Microsoft Dynamics AX (Axapta) применяется функция «ПечататьЭтикетку» («PrintLabel»). В качестве параметров эта функция использует имя принтера и объект этикетки Cleverence.Warehouse.Label.
[Axapta]COM connector;
COM label;
// Создание объекта коннектора и инициализация его соединения с сервером.
connector = new COM("Cleverence.Warehouse.StorageConnector");
connector.InitializeServerConnection("localhost:9000"); // 9000 для Mobile SMARTS и 9400 для Wi-Fi драйвера
// создание этикетки для печати
label = new COM("Cleverence.Warehouse.Label");
// инициализация переменных
label.Add("название товара", "Мыло «Душистое»");
label.Add("производитель", "АОА «Корнейчуков»");
label.TemplateName = "Этикетка1";
// печать этикетки
connector.PrintLabel("LaserJet 100", label, 1);