Работа с 1С через веб-интерфейс на мобильном устройстве открывает широкие возможности для удаленного доступа, однако вопрос печати документов часто вызывает затруднения. Когда вы находитесь вне офиса, ваш телефон физически не связан с сетевым принтером, установленным в локальной сети компании. Давайте разберем, как правильно выстроить этот процесс, чтобы печать документов происходила корректно.
Наиболее универсальным и надежным способом является формирование печатной формы в формате PDF с последующей отправкой документа на печать. Поскольку браузер на телефоне не имеет прямого доступа к аппаратной части вашего офисного сервера, мы рекомендуем использовать промежуточное сохранение.
Рассмотрим алгоритм действий:
ТабличныйДокумент в коде 1С.Записать() для сохранения документа в файл.Email-to-Print.Пример программного сохранения документа на стороне сервера:
// Пример формирования и сохранения PDF
ТабДок = Новый ТабличныйДокумент;
// ... (код заполнения табличного документа)
ИмяФайла = ПолучитьИмяВременногоФайла("pdf");
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
Если база развернута на сервере и принтер находится в той же локальной сети, вы можете настроить печать через сервер 1С. В этом случае команда на печать отправляется с телефона, но исполняется процессом сервера, к которому подключен принтер.
Важное замечание: При такой схеме служба сервера 1С (например, USR1CV8) должна иметь права доступа к сетевому принтеру. Если принтер не виден под системной учетной записью, задание просто не уйдет в очередь.
Метод Напечатать() позволяет программно отправить документ на принтер без вызова диалога выбора устройства:
// Отправка на принтер по умолчанию
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
Для более сложных сценариев, например, когда требуется печать на разные принтеры или в разных офисах, рекомендуется создавать собственные HTTP-сервисы. Вы отправляете POST-запрос с мобильного устройства, который содержит параметры документа. Фоновое задание на сервере принимает этот запрос и выполняет печать.
Этот метод исключает зависание интерфейса браузера на мобильном устройстве, так как основная работа по формированию документа ложится на серверную часть. Мы советуем использовать РегламентныеЗадания для обработки таких очередей печати, чтобы гарантировать выполнение задачи даже при нестабильном интернет-соединении.
Не забывайте, что работа через веб-клиент накладывает ограничения на доступ к ресурсам клиента. Попытка вызвать метод Напечатать() напрямую из веб-клиента на телефоне не приведет к печати на «домашнем» принтере пользователя, так как браузер изолирует 1С от аппаратных средств устройства.
Чтобы избежать ошибок, мы рекомендуем следующие шаги:
1С:Предприятие.API.COM-объектов (например, Word.Application) при печати на сервере, так как это крайне нестабильно. Используйте встроенные средства работы с ТабличныйДокумент и БСП.Проанализировав эти способы, вы сможете выбрать наиболее подходящий вариант для вашей архитектуры, обеспечив стабильную печать документов из любой точки мира, где есть доступ к интернету.