Перейти к основному содержимому
Версия: 4.0

Печать через сервер Mobile SMARTS

Печать через сервер — это когда мобильное устройство связывается с принтером через посредника (ПК), на котором установлен сервер печати Клеверенса.

менеджер баз

Печать через сервер в Mobile SMARTS может быть двух видов: с мобильного устройства и из учетной системы.

Перед началом печати через сервер необходимо указать в настройках базы Mobile SMARTS, что сервер печати используется и указать адрес порта для печати.

тсд

Печать через сервер с ТСД​

Алгоритм печати через сервер печати:

  1. Предварительно нужно добавить принтер в панели управления и настроить его. Если это офисный принтер, то нужно запустить тестовую печать. Если это этикеточный принтер и хочется печатать на него RAW-этикетки, то в свойстве «Модель принтера» нужно указать имя папки с RAW-этикетками под этот принтер (см. структуру папок для шаблонов этикеток),

  2. Пользователь на мобильном устройстве находится в той операции, где предусмотрена печать или подключение принтера. Он осуществляет выбор принтера с помощью действия «Выбор принтера». Выбирать принтер не обязательно, если либо принтер уже выбирался ранее и в программе конфигурации программистом прописано, что URL выбранного принтера где-то запоминается на будущее и затем восстанавливается при попытке печати, либо используется привязка принтера по пользователю, по складу или по типу документа, что удобно для больших складов.

  3. Действие печати этикетки подготавливает и отправляет данные на сервер Mobile SMARTS, вместе с данными отправляется "Имя этикетки" и имя принтера.

  4. Сервер Mobile SMARTS ищет шаблон этикетки по указанному имени этикетки и имени принтера. На сервере может быть несколько этикеток с одним именем, в вариантах для печати на разные модели принтеров (см. структуру папок для шаблонов этикеток).

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

  6. На сервере печати формируется готовая этикетка, которая затем отправляется на принтер, используя стандартные методы печати Windows, либо, в случае RAW этикеток, напрямую: через USB, сеть или COM\ LPT порты.

Для печати RAW-этикеток на этикеточные принтеры необходимо указать название модели принтера, которое будет совпадать с названием папки, в которой лежат RAW-этикетки под этот принтер:

тсд

Для печати LBL или XAML этикеток, которые созданы в визуальном редакторе, достаточно просто произвести настройку принтера и выполнить пробную печать:

тсд тсд тсд

Если на каком-то из предыдущих этапов возникла ошибка, она записывается в лог ошибок на мобильном устройстве и на сервере Mobile SMARTS. На мобильном устройстве ошибка выдаётся на экран, после чего алгоритм на мобильном устройстве переходит из действия печати этикетки к действию, указанному в действии печати этикетки в свойстве «При ошибке печати» (см. алгоритмы в Mobile SMARTS).

Печать через сервер из учётной системы​

В Mobile SMARTS есть возможность печати этикеток прямо из товароучётной системы. Рассмотрим, как это происходит в системах, которые интегрированы с основными продуктами Mobile SMARTS, а именно «1С: Предприятие» и Axapta.

Параметры, которые необходимо указывать в функции печати, описаны здесь (printerId, label, copies).

  1. Если вы используете 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);
  2. Для печати из 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);
  3. Для печати из учетной системы 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(см. выше).

Проблемы печати через сервер​

  1. Не выполняется печать с ТСД на сетевой принтер с общим доступом.

Дано: два ПК, на одном из которых установлено ПО Mobile SMARTS, а ко второму подключен офисный принтер с помощью USB-кабеля. Принтер расшарен для обоих ПК с помощью стандартных средств Windows и добавлен в панели управления Mobile SMARTS как доступный для печати.

тсд

Проблема: при попытке печати на данный принтер с подключенного к базе ТСД на экране устройства появляется ошибка «Имя и модель принтера в панели указаны некорректно!» и печать не происходит.

Решение:

Основной причиной такой проблемы является то, что печать на сетевой принтер от имени службы NETWORK SERVICE в Mobile SMARTS невозможна. При добавлении такого принтера в панели управления появится соответствующее предупреждение:

тсд

Поэтому потребуется создать пользователя с правами, не ниже чем у NETWORK SERVICE и указать его данные в панели администрирования серверов Mobile SMARTS. Также необходимо проставить флаг в пункте «Используется».

тсд

После этого печать на добавленный в панели сетевой принтер будет происходить от имени указанного пользователя.

Если же указанный способ не помог избавиться от проблемы, установите нужного пользователя для Mobile SMARTS в списке служб Windows.

тсд тсд

Как добавить принтер​

Для того, чтобы осуществлять печать через сервер, в список принтеров необходимо добавлять принтеры с конкретными настройками для каждого. Без этого действия печать будет невозможна.

Добавление принтера осуществляется следующим образом:

  1. В дереве элементов выбрать пункт «Оборудование», выделить «Принтеры» и нажать кнопку «Добавить принтер». Система может работать с любыми принтерами, поддерживающими печать в Windows (посредством Windows driver).

    тсд
  2. При выборе принтера отображается список принтеров, доступного для данного ПК.

    Отображаются принтеры, доступные на том ПК, на котором вы запустили панель управления, и для того пользователя windows, под которым вы запустили панель управления. Но надо помнить, что печать происходит на сервере Mobile SMARTS под пользователем Network System (по умолчанию). Если вы не видите в списке желаемого принтера, то возможно надо выяснять, на каком ПК и под каким пользователем он будет виден.

    тсд

    Функция «Печать в изображение» предназначена для печати этикетки на виртуальный принтер Mobile SMARTS.

  3. После того как выбран нужный принтер, автоматически откроется окно настроек для него.

    тсд
  4. В этом окне нужно обязательно установить параметры принтера, которые будут использоваться для печати этикетки. Это действие является обязательным, т.к. на сервере печати настройки для данного принтера могут быть не заданы, и результат печати в таком случае окажется неверным.

    Надо помнить, что печать происходит на сервере Mobile SMARTS под пользователем Network System (по умолчанию). Если у вас не получается задать правильные настройки печати (размер бумаги, отступы), то возможно они по какой-то причине не применяются для пользователя Network System на том ПК, на котором установлен сервер Mobile SMARTS. Например, вы запустили Панель управления не на том ПК, на котором установлен сервер Mobile SMARTS (т.е. это удаленная база данных). Или у панели управления есть проблемы с доступом к реестру для Network System, чтобы применить туда настройки.

Добавление виртуального принтера​

Начиная с версии 3.3 платформы Mobile SMARTS у пользователя появилась возможность печатать этикетку на так называемом виртуальном принтере Mobile SMARTS. Такая возможность доступна только при печати через сервер и может быть полезна в случае, если вы хотите узнать, как будет выглядеть этикетка, но не хотите её реально печатать на бумаге. Этикетка, распечатанная на виртуальном принтере Mobile SMARTS будет сохраняться в виде картинки на ПК и всегда будет доступна для предварительного просмотра.

Данный функционал применим только при печати через сервер Mobile SMARTS на этикеточный или офисный принтер.

Для того чтобы добавить новый виртуальный принтер, необходимо:

  1. Добавить новый принтер в панели управления Mobile SMARTS.

    тсд
  2. В окне «Свойства» (пункт «Принтер») вместо указания конкретной модели принтера выбрать «Печать в изображение».

    тсд
  3. После этого автоматически откроется окно для выбора папки, в которую будут сохраняться изображения сформированных на сервере этикеток.

    Обратите внимание, что выбранная папка должна быть доступна пользователю, от имени которого запущен сервер печати Mobile SMARTS. Рекомендуем вам создать отдельную папку в папке базы вашего продукта Mobile SMARTS и использовать её для сохранения изображений.

    тсд
  4. Впоследствии изменить путь к папке можно с помощью пункта «Папка для сохранения изображений».

    тсд
  5. Сохраните изменения в конфигурации.

После всех вышеуказанных настроек при попытке печати этикетки в окне выбора принтера на мобильном устройстве (или в win-клиенте) выберите пункт «Печать в изображение».

тсд тсд

В результате этикетка не будет реально распечатана, но сохранится в виде картинки в папке на ПК, которую вы указали в настройках ранее.

тсд

Название файла каждой этикетки будет формироваться по принципу: «имя этикетки + дата и время печати».