При работе с мобильной платформой 1С:Предприятие многие разработчики сталкиваются с тем, что стандартные механизмы печати не всегда корректно взаимодействуют с принтерами, которые «видит» операционная система мобильного устройства. Давайте разберем, почему это происходит и какие существуют эффективные способы решения данной задачи.
Важно помнить, что мобильная платформа 1С работает в изолированной среде. Когда ваше устройство на базе Android «видит» сетевой принтер, это заслуга системных служб операционной системы. Однако платформа 1С не имеет универсального драйвера для всех существующих моделей принтеров. Встроенный функционал платформы ориентирован на специфические устройства, поддерживающие прямые протоколы (например, ESC/POS или ZPL для чековой печати).
Если в вашей инфраструктуре используются принтеры с Ethernet-модулем, самым надежным способом является их ручное добавление в приложение 1С. Рассмотрим этот процесс по шагам:
Ethernet в той же сети).IP-адрес принтера.Этот метод позволяет платформе обращаться к принтеру напрямую, минуя системные ограничения ОС.
Если первый метод не подходит или принтер не поддерживается платформой напрямую, самым стабильным решением является «делегирование» печати системным средствам Android. Мы можем сохранить табличный документ как PDF-файл, а затем запустить его через внешнее приложение, которое гарантированно умеет работать с вашим принтером (например, HP Print Service Plugin или Epson iPrint).
Для реализации этого подхода используйте следующий программный код в мобильном клиенте:
#Если МобильноеПриложениеКлиент Тогда
// Определяем путь к файлу в локальной файловой системе устройства
АдресФайла = КаталогДокументов() + "Документ.pdf";
// Сохраняем табличный документ в формате PDF
ТабДок.Записать(АдресФайла, ТипФайлаТабличногоДокумента.PDF);
// Вызываем системный обработчик (интент) для открытия файла
ЗапуститьПриложение(АдресФайла);
#Иначе
// Стандартная печать для десктопной версии
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
#КонецЕсли
Разберем, что происходит в этом коде:
КаталогДокументов() для получения доступа к защищенному хранилищу приложения.ТабДок.Записать() преобразует макет в PDF, что обеспечивает сохранение верстки документа.ЗапуститьПриложение() на мобильной платформе вызывает системный диспетчер файлов, который предложит пользователю выбрать приложение для открытия PDF. Именно в этот момент пользователь сможет выбрать системный плагин печати или установленное приложение производителя принтера.При выборе стратегии печати проанализируйте ваши бизнес-процессы:
IP-адрес в настройках 1С.PDF, так как это гарантирует корректное отображение шрифтов и графики, заложенных в макете 1С.Если данные способы не помогают, рекомендуем рассмотреть настройку серверной печати, когда мобильное устройство отправляет задачу на сервер 1С, который, в свою очередь, направляет документ на сетевой принтер, установленный в корпоративной сети.