Печать этикеток с дополнительной информацией о товаре
Вводные данные
- Номенклатура: запчасти автомобилей. 
- Тип адресного хранения: справочное размещение по ячейкам. 
- Серии товаров: нет. 
- Единица хранения: шт. 
- Упаковки: нет. 
- Учетная система: «1С:Управление нашей фирмой» (1С:УНФ). 
- Конфигурация мобильного приложения: Simple.Учет+. 
Задача
Заказчик: магазин со справочным адресным складом.
Приемка поступлений предполагает бизнес-процесс маркировки товаров этикетками с номерами ячеек хранения МЦ (материальных ценностей) - номенклатурных единиц. Работа ведется на справочном адресном складе с динамическим хранением:
- товар не привязывается к конкретной ячейке и сведения о ней могут меняться; 
- в мобильном приложении в табличной части «Товары» сведения о ячейке, в которую помещается МЦ, не хранятся. 
Решение: печать этикеток в онлайн-режиме. Любые сведения для макета лейбла подтягиваются из 1С:УНФ.
Алгоритм решения
Итак, мы автоматизировали печать этикеток. Рассмотрим этот процесс пошагово.
I. Мы создали ZPL-шаблон этикетки и добавили его в соответствующий справочник расширения Simple. Воспользуемся им:

Рис. 1
Пример кода ZPL-шаблона этикетки:
			 ^XA
		
			 ^CI28
		
			 ^CF0,33
		
			 ^FO1,25,2^FB300,2,,L,1^A0,26,22^FD[Артикул]^FS
		
			 ^FO1,240^FB400,2,,L,1^A0,24,19^FD[ТекущийПользователь] [ТекущееВремя]^FS
		
			 ^CF0,20
		
			 ^FO1,270^A0,20,20^FDООО "КАМАЗ Центр" тел.(8172)770099 ^FS
		
			 ^CF0,25
		
			 ^FO1,55^FB400,2,,L,1^FD[НоменклатураНаименованиеПолное]^FS
		
			 ^CF0,30
		
			 ^FO1,190^FB145,2,,L,1^FD[Ячейка]^FS
		
			 ^CF0,30
		
			 ^FO160,190^FB160,2,,L,1^A0,25,21^FD[Штрихкод]^FS
		
			 ^FO2,100^BY2,3,60^B3N,N,85,N,N^FD[Штрихкод]^FS
		
			 ^XZ
		
	 Правила составления шаблона этикетки:
- Константы шаблона указываются как текст. 
- Переменные шаблона указываются в квадратных скобках. Вот так: [нужная переменная]. 
- Штрихкод всегда указывается так: [штрихкод]. Его тип указывается на языке ZPL. Например, для печати, штрихкод формата EAN-13 указывается так: «B3N,N,85,N,N^FD[соответствующий штрихкод формата EAN-13]». 
Примечание. ZPL-шаблоны используются, если за один раз необходимо напечатать несколько этикеток. В отличие от шаблонов 1С, на стороне мобильного приложения Simple не требуется конвертация данных в понятный для принтера вид. Работать с принтером можно напрямую.
II. Решили, что информацию для шаблона этикетки будем получать из базы 1С:УНФ. В настройках подсистемы заполняем запрос для получения нужных сведений:
			 ВЫБРАТЬ РАЗЛИЧНЫЕ
		
			   спрНоменклатура.Ссылка КАК Номенклатура,
		
			   ЕСТЬNULL(ХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика,
		
			   ЕСТЬNULL(ШтрихкодыНоменклатуры.Штрихкод, "") КАК Штрихкод
		
			 ПОМЕСТИТЬ втДанные
		
			 ИЗ
		
			   Справочник.Номенклатура КАК спрНоменклатура
		
			 ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
		
			 ПО (спрНоменклатура.ВидНоменклатуры = ХарактеристикиНоменклатуры.Владелец
		
			      ИЛИ спрНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец)
		
			    И (ХарактеристикиНоменклатуры.Ссылка В (&Характеристика))
		
			 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
		
			 ПО (спрНоменклатура.Ссылка = ШтрихкодыНоменклатуры.Номенклатура)
		
			    И (ЕСТЬNULL(ХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) = ШтрихкодыНоменклатуры.Характеристика)
		
			 ГДЕ
		
			   спрНоменклатура.Ссылка В(&Номенклатура)
		
			 ;
		
			 ////////////////////////////////////////////////////////////////////////////////
		
			 ВЫБРАТЬ ПЕРВЫЕ 1
		
			   втДанные.Номенклатура.Артикул КАК Артикул,
		
			   втДанные.Штрихкод КАК Штрихкод,
		
			   &ДатаЗапроса КАК Дата,
		
			   РазмещениеНоменклатурыПоСкладскимЯчейкам.Ячейка.Наименование КАК Ячейка,
		
			   втДанные.Номенклатура.НаименованиеПолное КАК НоменклатураНаименованиеПолное,
		
			   &ДатаЗапроса КАК ТекущееВремя,
		
			   SUI_МобильныеУстройства.МобильныйКлиент.Пользователь.Наименование КАК ТекущийПользователь
		
			 ИЗ
		
			   втДанные КАК втДанные
		
			 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РазмещениеНоменклатурыПоСкладскимЯчейкам КАК РазмещениеНоменклатурыПоСкладскимЯчейкам
		
			 ПО (РазмещениеНоменклатурыПоСкладскимЯчейкам.Номенклатура = втДанные.Номенклатура),
		
			   ПланОбмена.SUI_МобильныеУстройства КАК SUI_МобильныеУстройства
		
			 ГДЕ
		
			   SUI_МобильныеУстройства.Ссылка = &МобильноеУстройство
		
			 ;
		
			 ////////////////////////////////////////////////////////////////////////////////
		
			 УНИЧТОЖИТЬ втДанные
		
Примечание. Представление сведений в запросе должно соответствовать их наименованиям в шаблоне этикетки.
III. Подключаем Bluetooth-принтер1 к ТСД (терминалу сбору данных). Проверяем совместную работу устройств: убеждаемся, что печать выполняется корректно. Первичные настройки вносятся в разделе «Параметры» → «Печать».

Рис. 2
IV. Печать этикеток доступна в бизнес-процессах «Документы» - как для конкретного товара, так и для всего списка, и «Печать этикеток» - моментальное изготовление лейбла для любой позиции из базы учетной системы.
Небольшой совет в завершение
Комбинацию ZPL-шаблонов и запросов в 1С:УНФ можно использовать для печати сложных параметрических этикеток. Например, если те или иные элементы в шаблонах отображаются только при определенных условиях.
Заменяем блок полностью, только если новая цена совпадает со старой.

Рис. 3
Как печатать этикетки в офлайн-режиме и использовать 1С-шаблоны, читайте в следующих статьях.
1 Мы решили печатать этикетки на Bluetooth-принтере — из-за простого сопряжения с мобильными устройствами, в том числе и ТСД.
 









