Печать в Mobile SMARTS

Теги: печать
Последние изменение: 08.11.2019

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

С точки зрения Mobile SMARTS все принтеры грубо делятся на два типа:

  1. Специальные этикеточные принтеры, в которые встроена поддержка штрихкодов.  Печать на такие принтеры возможна как через windows-драйвер (этикетки LBL и XAML), так и напрямую в языке принтера для достижения максимальной скорости и качества печати (этикетки RAW).
  2. Обычные офисные принтеры, печать на которые возможна только через windows-драйвер (только этикетки LBL и XAML), при этом всё печатается "как картинки".

При этом не важно, стационарный это принтер или мобильный.

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

Печать на офисные принтеры возможна только через сервер печати Mobile SMARTS.

Печать напрямую с мобильного устройства

Печать напрямую с мобильного устройства происходит с помощью мобильного принтера, который соединяется с ТСД по Bluetooth или Wi-Fi. В данном режиме мобильное устройство подключается к принтеру напрямую, и может отправлять на печать только этикетки, разработанные на языке печати данного принтера (так называемые RAW-этикетки).

 

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

Печать через сервер — происходит через посредника в виде специального сервера печати Mobile SMARTS.   Сервер умеет печатать на стационарные принтеры по USB, Ethernet и Wi-Fi и на мобильные принтеры по Wi-Fi, но не умеет печатать на мобильные принтеры по Bluetooth.

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



FILE: /var/www/clever_user/data/www/clever.invbl.ru/bitrix/modules/iblock/classes/mysql/iblockelement.php
LINE: 803
MySQL Query Error: SELECT BE.NAME as NAME,BE.ID as ID,DATE_FORMAT(BE.TIMESTAMP_X, '%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,UNIX_TIMESTAMP(BE.TIMESTAMP_X) as TIMESTAMP_X_UNIX,BE.MODIFIED_BY as MODIFIED_BY,DATE_FORMAT(BE.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as DATE_CREATE,UNIX_TIMESTAMP(BE.DATE_CREATE) as DATE_CREATE_UNIX,BE.CREATED_BY as CREATED_BY,BE.IBLOCK_ID as IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,BE.ACTIVE as ACTIVE,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as ACTIVE_FROM,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_TO)>0, DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y')) as ACTIVE_TO,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_FROM)>0, DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_FROM, '%d.%m.%Y')) as DATE_ACTIVE_FROM,IF(EXTRACT(HOUR_SECOND FROM BE.ACTIVE_TO)>0, DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y %H:%i:%s'), DATE_FORMAT(BE.ACTIVE_TO, '%d.%m.%Y')) as DATE_ACTIVE_TO,BE.SORT as SORT,BE.PREVIEW_PICTURE as PREVIEW_PICTURE,BE.PREVIEW_TEXT as PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.DETAIL_TEXT as DETAIL_TEXT,BE.DETAIL_TEXT_TYPE as DETAIL_TEXT_TYPE,BE.SEARCHABLE_CONTENT as SEARCHABLE_CONTENT,BE.WF_STATUS_ID as WF_STATUS_ID,BE.WF_PARENT_ELEMENT_ID as WF_PARENT_ELEMENT_ID,BE.WF_LAST_HISTORY_ID as WF_LAST_HISTORY_ID,BE.WF_NEW as WF_NEW,if (BE.WF_DATE_LOCK is null, 'green', if(DATE_ADD(BE.WF_DATE_LOCK, interval 60 MINUTE)<now(), 'green', if(BE.WF_LOCKED_BY=0, 'yellow', 'red'))) as LOCK_STATUS,BE.WF_LOCKED_BY as WF_LOCKED_BY,DATE_FORMAT(BE.WF_DATE_LOCK, '%d.%m.%Y %H:%i:%s') as WF_DATE_LOCK,BE.WF_COMMENTS as WF_COMMENTS,BE.IN_SECTIONS as IN_SECTIONS,BE.SHOW_COUNTER as SHOW_COUNTER,DATE_FORMAT(BE.SHOW_COUNTER_START, '%d.%m.%Y %H:%i:%s') as SHOW_COUNTER_START,BE.SHOW_COUNTER_START as SHOW_COUNTER_START_X,BE.CODE as CODE,BE.TAGS as TAGS,BE.XML_ID as XML_ID,BE.XML_ID as EXTERNAL_ID,BE.TMP_ID as TMP_ID,concat('(',U.LOGIN,') ',ifnull(U.NAME,''),' ',ifnull(U.LAST_NAME,'')) as USER_NAME,concat('(',UL.LOGIN,') ',ifnull(UL.NAME,''),' ',ifnull(UL.LAST_NAME,'')) as LOCKED_USER_NAME,concat('(',UC.LOGIN,') ',ifnull(UC.NAME,''),' ',ifnull(UC.LAST_NAME,'')) as CREATED_USER_NAME,L.DIR as LANG_DIR,B.LID as LID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.NAME as IBLOCK_NAME,B.XML_ID as IBLOCK_EXTERNAL_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,B.LIST_PAGE_URL as LIST_PAGE_URL,B.CANONICAL_PAGE_URL as CANONICAL_PAGE_URL,DATE_FORMAT(BE.DATE_CREATE, '%Y.%m.%d') as CREATED_DATE,if(BE.WF_STATUS_ID = 1, 'Y', 'N') as BP_PUBLISHED FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID INNER JOIN ( SELECT DISTINCT BSE.IBLOCK_ELEMENT_ID FROM b_iblock_section_element BSE INNER JOIN b_iblock_section BS ON BSE.IBLOCK_SECTION_ID = BS.ID WHERE ((( (BS.LEFT_MARGIN >= 313 AND BS.RIGHT_MARGIN <= 324) ))) ) BES ON BES.IBLOCK_ELEMENT_ID = BE.ID LEFT JOIN b_user U ON U.ID=BE.MODIFIED_BY LEFT JOIN b_user UL ON UL.ID=BE.WF_LOCKED_BY LEFT JOIN b_user UC ON UC.ID=BE.CREATED_BY WHERE 1=1 AND ( ((((BE.IBLOCK_ID = '15')))) AND ((((BE.ACTIVE='Y')))) ) AND (((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL))) ORDER BY BE.NAME asc [[3] Error writing file '/tmp/MYL7nmbA' (Errcode: 28 - No space left on device)]

DB query error.
Please try later.