Печать через сервер 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);
В интеграции Mobile SMARTS с учетной системой через REST API нет отдельной функции для печати («PrintLabel»), т.к. REST API — это способ обмена данными. В таком случае печать через сервер тоже можно реализовать через COM-объект Cleverence.Warehouse.StorageConnector(см. выше).
Проблемы печати через сервер
- Не выполняется печать с ТСД на сетевой принтер с общим доступом.
Дано: два ПК, на одном из которых установлено ПО Mobile SMARTS, а ко второму подключен офисный принтер с помощью USB-кабеля. Принтер расшарен для обоих ПК с помощью стандартных средств Windows и добавлен в панели управления Mobile SMARTS как доступный для печати.
Проблема: при попытке печати на данный принтер с подключенного к базе ТСД на экране устройства появляется ошибка «Имя и модель принтера в панели указаны некорректно!» и печать не происходит.
Решение:
Основной причиной такой проблемы является то, что печать на сетевой принтер от имени службы NETWORK SERVICE в Mobile SMARTS невозможна. При добавлении такого принтера в панели управления появится соответствующее предупреждение:
Поэтому потребуется создать пользователя с правами, не ниже чем у NETWORK SERVICE и указать его данные в панели администрирования серверов Mobile SMARTS. Также необходимо проставить флаг в пункте «Используется».
После этого печать на добавленный в панели сетевой принтер будет происходить от имени указанного пользователя.
Если же указанный способ не помог избавиться от проблемы, установите нужного пользователя для Mobile SMARTS в списке служб Windows.
![]()
![]()
Как добавить принтер
Для того, чтобы осуществлять печать через сервер, в список принтеров необходимо добавлять принтеры с конкретными настройками для каждого. Без этого действия печать будет невозможна.
Добавление принтера осуществляется следующим образом:
-
В дереве элементов выбрать пункт «Оборудование», выделить «Принтеры» и нажать кнопку «Добавить принтер». Система может работать с любыми принтерами, поддерживающими печать в Windows (посредством Windows driver).
-
При выборе принтера отображается список принтеров, доступного для данного ПК.
Отображаются принтеры, доступные на том ПК, на котором вы запустили панель управления, и для того пользователя windows, под которым вы запустили панель управления. Но надо помнить, что печать происходит на сервере Mobile SMARTS под пользователем Network System (по умолчанию). Если вы не видите в списке желаемого принтера, то возможно надо выяснять, на каком ПК и под каким польз ователем он будет виден.
Функция «Печать в изображение» предназначена для печати этикетки на виртуальный принтер Mobile SMARTS.
-
После того как выбран нужный принтер, автоматически откроется окно настроек для него.
-
В этом окне нужно обязательно установить параметры принтера, которые будут использоваться для печати этикетки. Это действие является обязательным, т.к. на сервере печати настройки для данного принтера могут быть не заданы, и результат печати в таком случае окажется неверным.
Надо помнить, что печать происходит на сервере Mobile SMARTS под пользователем Network System (по умолчанию). Если у вас не получается задать правильные настройки печати (размер бумаги, отступы), то возможно они по какой-то причине не применяются для пользователя Network System на том ПК, на котором установлен сервер Mobile SMARTS. Например, вы запустили Панел ь управления не на том ПК, на котором установлен сервер Mobile SMARTS (т.е. это удаленная база данных). Или у панели управления есть проблемы с доступом к реестру для Network System, чтобы применить туда настройки.
Добавление виртуального принтера
Начиная с версии 3.3 платформы Mobile SMARTS у пользователя появилась возможность печатать этикетку на так называемом виртуальном принтере Mobile SMARTS. Такая возможность доступна только при печати через сервер и может быть полезна в случае, если вы хотите узнать, как будет выглядеть этикетка, но не хотите её реально печатать на бумаге. Этикетка, распечатанная на виртуальном принтере Mobile SMARTS будет сохраняться в виде картинки на ПК и всегда будет доступна для предварительного просмотра.
Данный функционал применим только при печати через сервер Mobile SMARTS на этикеточный или офисный принтер.
Для того чтобы добавить новый виртуальный принтер, необходимо:
-
Добавить новый принтер в панели управления Mobile SMARTS.
-
В окне «Свойства» (пункт «Принтер») вместо указания конкретной модели принтера выбрать «Печать в изображение».
-
После этого автоматически откроется окно для выбора папки, в которую будут сохраняться изображения сформированных на сервере этикеток.
Обратите внимание, что выбранная папка должна быть доступна пользователю, от имени которого запущен сервер печати Mobile SMARTS. Рекомендуем вам создать отдельную папку в папке базы вашего продукта Mobile SMARTS и использовать её для сохранения изображений.
-
Впоследствии изменить путь к папке можно с помощью пункта «Папка для сохранения изображений».
-
Сохраните изменения в конфи гурации.
После всех вышеуказанных настроек при попытке печати этикетки в окне выбора принтера на мобильном устройстве (или в win-клиенте) выберите пункт «Печать в изображение».
В результате этикетка не будет реально распечатана, но сохранится в виде картинки в папке на ПК, которую вы указали в настройках ранее.
Название файла каждой этикетки будет формироваться по принципу: «имя этикетки + дата и время печати».