Печать с мобильного приложения
В рамках разработки мобильного приложения кладовщика столкнулись с необходимостью печати этикеток для обклейки заказа. В данном посте я поделюсь подходами, которые удалось реализовать для решения поставленной задачи. Так как задача решалась постепенно с разным набором оборудования получилось в результате два метода:
Отправка на печать через запущенную сессию 1с на компьютере.
Отправка на печать с мобильного приложения.
- Описание
- Подробнее
Описание
В обоих методах используется генерация этикетки на стороне центральной базы. Такой подход был принят с учетом условий:
- Этикетка на заказ должна печататься всегда одинаковая;
- Кладовщик не всегда следит за необходимостью обновить конфигурацию в мобильном приложении;
- Процесс приема заказов подразумевает наличие соединения мобильного приложения с центральной базой.
Отправка на печать через сессию на компьютере.
Исходные данные: Кладовщик перемещается по складу с мобильным устройством и портативным wi-fi принтером этикеток. Имеется постоянно запущенная сессия 1с на персональном компьютере.
В данном варианте мобильное приложение отправляет в центральную базу параметры этикетки, которую надо распечатать. На основании полученных через веб-сервис параметров центральная база формирует табличный документ этикетки заказа. После формирования табличного документа он помещается в регистр сведений с ресурс с типом ХранилищеЗначения. Табличный документ помещается в данные для печати с привязкой к пользователю, который инициировал операцию печати. Так как для вызова операции веб-сервиса центральной базы пользователь должен быть авторизован мы знаем кто инициировал печать данной этикетки.
Функция PrintOrderSticker(IDOrder)
ЗаказСсылка = Документы.ЗаказПокупателя.ПолучитьСсылку(Новый УникальныйИдентификатор(Idorder));
ТабДок = РаботаСЗаказами.СформироватьЭтикету(ЗаказСсылка);
МенеджерЗаписи = РегистрыСведений.ДанныеДляПечати.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ТабличныйДокумент = Новый ХранилищеЗначения(ТабДок);
МенеджерЗаписи.Код = Строка(Новый УникальныйИдентификатор);
МенеджерЗаписи.Создал = ПараметрыСеанса.ТекущийПользователь;
МенеджерЗаписи.Записать();
КонецФункции