Начиная с версии 5.1 в Моби-С появилась возможность выгружать на КПК под управлением операционной системы Android, любое количество дополнительных реквизитов для документов Продажа, Заказ, Покупка, ПКО, Анкеты, Наличие и цены и Новый клиент. Реквизиты можно добавить в как в шапку так и табличную часть документа. Добавленные реквизиты появляются на вкладке Прочее документа и при вводе количества товара(карточка товара).
Реквизиты могут быть:
В Моби-С реквизиты и их значения выгружаются в момент выполнения запроса Полная загрузка. За выгрузку реквизитов отвечает подзапрос Requisites
[<КодРеквизита>\t<Наименование>\t<Документ>\t<ПолеПривязки>\t<ТипДанных>\t<ОбязательноКЗаполенению>\r\n]
Параметр | Тип в КПК | Назначение |
КодРеквизита |
строка |
Уникальный код реквизита. |
Наименование |
строка |
Отображаемое на КПК наименование реквизита. |
Документ |
число |
Код привязки реквизита к документу. 12 - Продажа, реквизит документа (появится на вкладке Прочее формы документа), 13 - Продажа, реквизит товара (появится в диалоге ввода количества товара) 14 – Заказ, реквизит документа 15 – Заказ, реквизит товара 16 – Покупка, реквизит документа 18 - ПКО 19 - Анкета 29 - Новый клиент 37 - Наличие и цены |
ПолеПривязки |
строка |
Это поле актуально только если вы используете реквизит типа Список значений. Содержимое списка значений шапки документа возможно заполнить в зависимости от выбранного в документе клиента или договора клиента. Contract - содержимое реквизита зависит от выбранного договора Client - содержимое реквизита зависит от выбранного клиента Содержимое списка значений табличной части документа возможно заполнить в зависимости от выбранного товара или единицы товара. Good - содержимое реквизита зависит от выбранного товара Unit - содержимое реквизита зависит от единицы выбранного товара Если оставить поле пустым то будут отображаться все значения списка выгруженные запросом ReqValues. |
ТипДанных |
число |
Тип создаваемого реквизита 0 - выбор из списка, значения брать из подзапроса ReqValues, 1 - Строка . 2 - Число. 3 - Булево. 4 - Дата/время. 5 - Ввод штрихкода камерой КПК. 6 - Ввод штрихкода камерой КПК, разрешен ввод нескольких штрихкодов. 7 - Ввод штрихкода камерой КПК и с клавиатуры. 8 - Ввод штрихкода камерой КПК и с клавиатуры, разрешен ввод нескольких штрихкодов. 9 - поле вывода статической информации, поддерживает HTML теги. Значение задается в поле ReqValues. Обязательно установите значение ЗначениеПоУмолчанию в 1 |
ОбязательноКЗаполенению |
bool |
1 - реквизит обязателен к заполнению. Если реквизит не заполнен то документ не возможно сохранить. |
Для 1С 7.7 строка добавления реквизита будет выглядеть так.
Ответ=Ответ+"6"+Таб+"Номер доверенности"+Таб+"12"+Таб+""+Таб+"1"+Таб+"0"+РазделительСтрок;
На скриншоте результат добавления реквизита.
Для 1С 7.7 строка добавления реквизита будет выглядеть так.
Ответ=Ответ+"7"+Таб+"Отпуск разрешил"+Таб+"14"+Таб+""+Таб+"0"+Таб+"0"+РазделительСтрок;
На скриншоте результат добавления реквизита. Обратите внимание, что список пока пустой.
Для 1С 7.7 строка добавления реквизита будет выглядеть так.
Ответ=Ответ+"8"+Таб+"На полке"+Таб+"15"+Таб+""+Таб+"1"+Таб+"0"+РазделительСтрок;
На скриншоте результат добавления реквизита.
Подзапрос ReqValues предназначен для передачи в КПК данных для заполнения реквизитов с типом Список значений.
[<КодЗначения>\t<КодРеквизита>\t<КодПривязки>\t<Представление>\r\n]
Параметр | Тип в КПК | Назначение |
КодЗначения |
строка |
Уникальный код значения реквизита. Код значения нужен что бы идентифицировать реквизит при выгрузке значений реквизитов из КПК в 1С. |
КодРеквизита |
строка |
Уникальный код реквизита который выгружается запросом Requisites |
КодПривязки |
строка |
Код обьекта привязки. Например вы сделали привязку реквизита к Клиенту. В это поле нужно выгрузить код клиента. Когда в документе будет выбран этот клиент то для списка значений по этому коду будут отобраны только нужны значения. |
Представление |
строка |
Представление значения реквизита. Возможно отображение в 2 строки. Строки разделяются вертикальной табуляцией. Например Например: тип, номер, дата и сумма документа. |
ЗначениеПоУмолчанию |
bool |
1 - данный элемент будет выбран в списке значений, 0 - для всех остальных элементов. |
В предыдущем примере мы добавили к документу "Заказ" реквизит "Отпуск разрешил".
Для 1С 7.7 добавление значений реквизита будет выглядеть так.
Ответ=Ответ+"000000057"+Таб+"7"+Таб+""+Таб+"Ляпушкин"+Таб+"0"+РазделительСтрок;
Ответ=Ответ+"000000056"+Таб+"7"+Таб+""+Таб+"Сидоченко К.В."+Таб+"0"+РазделительСтрок;
На КПК создайте новый документ Заявка, выберите клиента и договор с кодом 000000192. На скриншоте результат добавления реквизита.
В протоколе обмена при выгрузке шапки любого документа есть параметр ДопРеквизиты. Значением этого параметра являются
набор реквизитов и их значений. Разделитель реквизитов RS, разделитель кода реквизита и значения US.
Для 1С 7.7 разбор параметра ДопРеквизиты значений реквизита будет выглядеть так.
Реквизиты=СтрЗаменить(СтрШапки.ДопРеквизиты,Символ(30),РазделительСтрок);
Для Н=1 По СтрКоличествоСтрок(Реквизиты) Цикл
РеквЗнач=СтрЗаменить(СтрПолучитьСтроку(Реквизиты,Н),Симв(31),РазделительСтрок);
КодРеквизита=СтрПолучитьСтроку(РеквЗнач,1);
Значение=СтрПолучитьСтроку(РеквЗнач,2);
КонецЦикла;
Для 1С 8.x разбор параметра ДопРеквизиты значений реквизита будет выглядеть так.
Реквизиты=СтрЗаменить(СтрШапки.ДопРеквизиты,Символ(30),РазделительСтрок);
Для Н=1 По СтрЧислоСтрок(Реквизиты) Цикл
РеквЗнач=СтрЗаменить(СтрПолучитьСтроку(Реквизиты,Н),Символ(31),РазделительСтрок);
КодРеквизита=СтрПолучитьСтроку(РеквЗнач,1);
Значение=СтрПолучитьСтроку(РеквЗнач,2);
КонецЦикла;
То же самое и для считывания реквизитов из табличной части.
Для 1С 7.7 добавление реквизита будет выглядеть так.
Ответ=Ответ+"2"+Таб+"Привязка к товару"+Таб+"15"+Таб+"Good"+Таб+"0"+"0"РазделительСтрок;
Ответ=Ответ+"3"+Таб+"Привязка к единице"+Таб+"15"+Таб+"Unit"+Таб+"0"+"0"РазделительСтрок;
Для 1С 7.7 добавление значений реквизита будет выглядеть так.
Ответ=Ответ+"1"+Таб+"2"+Таб+"cbcf493f55bc11d9848a00112f43529a"+Таб+"Товар 1"+Таб+"0"+РазделительСтрок;
Ответ=Ответ+"2"+Таб+"2"+Таб+"cbcf493f55bc11d9848a00112f43529a"+Таб+"Товар 2"+Таб+"0"+РазделительСтрок;
Ответ=Ответ+"3"+Таб+"3"+Таб+"000000055"+Таб+"Единица 1"+Таб+"0"+РазделительСтрок;
Ответ=Ответ+"4"+Таб+"3"+Таб+"000000055"+Таб+"Единица 2"+Таб+"0"+РазделительСтрок;
Ответ=Ответ+"5"+Таб+"3"+Таб+"000000099"+Таб+"Единица 3"+Таб+"0"+РазделительСтрок;
Ответ=Ответ+"6"+Таб+"3"+Таб+"000000099"+Таб+"Единица 4"+Таб+"0"+РазделительСтрок;