Создание и редактирование печатных форм
Печатная форма это обычный, текстовый файл в формате xml. Файлы печатных форм хранятся в основном каталоге Моби-С в папке Forms.
Содержимое файла может быть произвольным, поэтому не возможно предоставить инструкцию по созданию печатной формы. Обычно берется за основу файл какой то имеющейся печатной формы и изменяется.
Данные в печатной форме передаются через переменные.
Печатные формы загружаются на КПК в подзапросе PrnForms запроса FullLoad. В данном запросе передается название печатной формы, объект для которого актуальная печатная форма и текст формы.
Настройка печатных форм на КПК
В печатных формах можно использовать значения дополнительных реквизитов. Для этого нужно использовать параметр Req_КодРеквизита.
Структура печатной формы
(1) - Значение указанное в ячейке (Cell) перекрывает значение указанное в секции (Section)
(2) - по умолчанию = 1
(3) - усли не указано, то в ячейки выводится значение из Text без каких-либо изменений
(4) - Используется только если в поле Text указан реквизит документа
Общее требования к колонкам и ячейкам в секции: количество ячеек (Cell, с учетом ColSpan) в каждом ряду (Row) должно быть равно количеству колонок (Column) в секции
(*) в качестве формулы могут использоваться:
- Числовые реквизиты и выражения составленные из них, например - Row.Sum / (Row.Count + Row.Bonus)
- Строковые реквизиты и выражения составленные их них, например - 'ИНН'||Client.INN'
КПП'||Client.KPP. Строки константы ограничиваются одиночными апострофами '. Конкатенация строк - ||. Через "&#x<код символа>;" выводится символ с кодом, например - '
' - перевод строки. Кавычки. угловые скобки - '"', '<' и тд.
- Функции описанные http://sqlite.org/lang_corefunc.html, http://sqlite.org/lang_datefunc.html, например - "strftime('%H:%M', time('now', 'localtime'))"
- Выражение CAST http://sqlite.org/lang_expr.html#castexpr, например "CAST(CAST(Row.Count+Row.Bonus AS INTEGER) AS TEXT)"
- Выражение CASE WHEN
Пример: <Cell Text="CASE WHEN Doc.Type='12' THEN 'Продажа' WHEN Doc.Type='14' THEN 'Заказ' WHEN Doc.Type='16' THEN 'Покупка' WHEN Doc.Type='18' THEN 'ПКО' WHEN Doc.Type='37' THEN 'Наличие и Цены' ELSE 'не известный тип' END" LabelType="Expression" />
Добавление изображения на печатную форму
Все используемые параметры и типы описаны выше в документации. Это базовые примеры для быстрой вставки основных типов изображений. Работаем в мобильном клиенте Моби-С начиная с код версии 46.
1) Добавление изображения по ссылке (http,https, ftp)
<Cell Image="https://mobi-c.ru/images/logo.png" Scale="Fit" />
2) Встраивание изображения в печатную форму
Необходима конвертация файла картинки в формат Base64. Сделать это можно на сайте https://www.base64encode.org/. Полученный текст вставьте в пример, вместо жирного текста.
<Cell Image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEwAACxMBAJqcGAAAAiJJREFUOI2Nks9LVFEUxz/nvDfjNGYZEi4szShLKppkqAQpkgQjF5VY
ixZBC120cWjh/xCBlCQ2u6CdhhC2MEjCRUgoRUS0KBGKosCM0l44vnNbvHHSUcQDl3PPvef7PT+F
IrF3Fxucr10414xPDQKIziA2pr43ILsGX6/0l+WLm2xLWiLRp8p1BND8b5E2dVlBurV6KCgQuMm2
pGl8VH1t2ghcIBHGRWnV6qFAAYxEnzptIoTNHDVOudB6AcReXG4Qz02hjrvDP1BPOJ1KcmRfyZro
oxMLqActjaXRu8oxdRZ2YUAoNB0u5fe8kX08F0UzVulM7zcyt78XbFuyTh+jGaIIwR8jc6mCREke
5PIZ5PWd7krUk4hUAXHNEo61L6qvsfWb5jZuptqiTxgZA6Nz3BqeLV6LdaXnagVdF8qjhoLOEEJ9
VcmmwACHauL5Pui0T8gYyv6muiS7K2J8ms3RoeXsJLYK9JUcw/aTmsoYjfVJ8pk/EzfSkcLjFQoT
HwKu3fvClB5E/y8pADkcJ9x7HvZUkT6QAHU4dUcFIHzSfl9FO1F4+TFgz0AZW52uIvilIZ8zC6Tr
EqBgQr93cvCGAsi8dNuSGyeE47Vb2J5aW/eONKT3JqL5hzzXIHkTooGgV4YCCWi10LIYxFtDZJsr
gKUc4udtGdyvueQ5OfPgL1BUKOBGOlJm1mnztIRv/VoEvAab1jL3VNRl9eyjNyv9/wF00c7KoatP
MwAAAABJRU5ErkJggg==" Scale="None" />
Добавление на форму штрихкода с номером документа
В Моби-С есть возможность добавить в любую печатную форму штрих код в котором выводиться номер документа. Это может пригодиться при поиске сканированием штрх-кода с формы документа соответствующего документа в 1С. Работаем в мобильном клиенте Моби-С начиная с код версии 46.
Для работы со штрих кодами во всех документах добавлены две переменные и один признак
Doc.ExtId - Уникальный идентификатор документа в 1С. На КПК доступен только после выгрузки документа в 1С. В протоколе обмена соответствует реквизиту СсылкаНаДокумент.
Пример: <Cell Text="Doc.ExtId" LabelType="Expression" Barcode="Code128B"/>
Doc.NumberBarcode - Внутренний номер документа на КПК(КодДок) или номер документа полученного из 1С(НомерДокумента). Если документ не выгружен то выводиться КодДок, если выгружен то НомерДокумента. Данные выводятся конвертированные в формат Base64.
Пример: <Cell Text="Doc.NumberBarcode" LabelType="Expression" Barcode="Code128B"/>
BarCode - выводить текст в виде штрих кода.
Варианты нумерации в Моби-С Пока документ не выгружен на КПК есть только внутренний код документа. В случае если используется нумерация "Номер присваивает 1С" на КПК нет ни какой возможности вывести в штрих код правильный номер документа. Если вы планируете выводить штрих код то мы рекомендуем использовать две оставшиеся схемы нумерации документов.
Мы рекомендуем использовать такой код: <Cell Text="CASE WHEN Doc.ExtId = '' THEN Doc.NumberBarCode ELSE Doc.ExtId END" LabelType="Expression" Barcode="Code128B"/>
Если документ уже выгружен то в штрих код выводиться уникальный идентификатор документа из 1С, если не выгружен то внутренний номер документа на КПК.