<< Нажмите для отображения Оглавления >>

Навигация:  Для разработчиков >

Дополнительные реквизиты

Начиная с версии 5.1 в Моби-С появилась возможность выгружать на КПК под управлением операционной системы  Android, любое количество дополнительных реквизитов для документов Продажа, Заказ, Покупка, ПКО, Анкеты, Наличие и цены и Новый клиент. Реквизиты можно добавить в как в шапку так и табличную часть документа. Добавленные реквизиты появляются на вкладке Прочее документа и при вводе количества товара.

 

Реквизиты могут быть:

Список значений (для этого типа реквизита можно выгрузить значения списка)

Числовое поле (ввод только цифровой информации)

Текстовое поле (ввод любой текстовой информации)

Флажок

Ввод даты и времени

 

Выгрузка реквизитов

 

В Моби-С реквизиты и их значения выгружаются в момент выполнения запроса Полная загрузка. За выгрузку реквизитов отвечает подзапрос Requisites

 

[<КодРеквизита>\t<Наименование>\t<Документ>\t<ПолеПривязки>\t<ТипДанных>\t<ОбязательноКЗаполенению>\r\n]

 

Параметр

Тип в КПК

Длина

Назначение

KeyКодРеквизита

строка

32

Уникальный код реквизита.

Наименование

строка

50

Отображаемое на КПК наименование реквизита.

Документ

число

 

Код привязки реквизита к документу.

12 - Продажа, реквизит документа (появится на вкладке Прочее формы документа),

13 - Продажа, реквизит товара (появится в диалоге ввода количества товара)

14 – Заказ, реквизит документа

15 – Заказ, реквизит товара

16 – Покупка, реквизит документа

18 - ПКО

19 - Анкета

29 - Новый клиент

37 - Наличие и цены

Таблица кодов документов

ПолеПривязки

строка

32

Это поле актуально только если вы используете реквизит типа Список значений. Содержимое списка значений шапки документа возможно заполнить в зависимости от выбранного в документе клиента или договора клиента.

Contract - содержимое реквизита зависит от выбранного договора

Client - содержимое реквизита зависит от выбранного клиента

Содержимое списка значений табличной части документа возможно заполнить в зависимости от выбранного товара или единицы товара.

Good - содержимое реквизита зависит от выбранного товара

Unit - содержимое реквизита зависит от единицы выбранного товара

Если оставить поле пустым то будут отображаться все значения списка выгруженные запросом ReqValues.

ТипДанных

число

 

Тип создаваемого реквизита

0 - выбор из списка, значения брать из подзапроса ReqValues, 1 - Строка, 2 - Число, 3 - Булево, 4 - Дата/время

ОбязательноКЗаполенению

bool

 

1 - реквизит обязателен к заполнению. Если реквизит не заполнен то документ не возможно сохранить.

 

hmtoggle_plus1Пример: Добавим к документу Продажа текстовый реквизит c названием Номер доверенности.

 

Для 1С 8 строка добавления реквизита будет выглядеть так.

 

Ответ=Ответ+"6"+Таб+"Номер доверенности"+Таб+"12"+Таб+""+Таб+"1"+Таб+"0"+РазделительСтрок;

 

На скриншоте результат добавления реквизита.

 

a67

 

hmtoggle_plus1Пример: Добавим к документу "Заказ" список значений c названием "Отпуск разрешил".

 

Для 1С 8 строка добавления реквизита будет выглядеть так.

 

Ответ=Ответ+"7"+Таб+"Отпуск разрешил"+Таб+"14"+Таб+""+Таб+"0"+Таб+"0"+РазделительСтрок;

 

На скриншоте результат добавле0ния реквизита. Обратите внимание, что список пока пустой.

 

a68

 

hmtoggle_plus1Пример: Добавим к документу "Заказ" текстовый реквизит с названием "На полке" в табличную часть.

 

Для 1С 8 строка добавления реквизита будет выглядеть так.

 

Ответ=Ответ+"8"+Таб+"На полке"+Таб+"15"+Таб+""+Таб+"1"+Таб+"0"+РазделительСтрок;
 

На скриншоте результат добавления реквизита.

 

a73

 

 

Выгрузка значений реквизитов

 

Подзапрос ReqValues предназначен для передачи в КПК данных для заполнения реквизитов с типом Список значений.

 

[<КодЗначения>\t<КодРеквизита>\t<КодПривязки>\t<Представление>\r\n]

 

Параметр

Тип в КПК

Длина

Назначение

KeyКодЗначения

строка

32

Уникальный код значения реквизита. Код значения нужен что бы идентифицировать реквизит при выгрузке значений реквизитов из КПК в 1С.

КодРеквизита

строка

32

Уникальный код реквизита который выгружается запросом Requisites

КодПривязки

строка

32

Код обьекта привязки. Например вы сделали привязку реквизита к Клиенту. В это поле нужно выгрузить код клиента. Когда в документе будет выбран этот клиент то для списка значений по этому коду будут отобраны только нужны значения.

Представление

строка

500

Представление значения реквизита. Возможно отображение в 2 строки. Строки разделяются вертикальной табуляцией. Например Например: тип, номер, дата и сумма документа.

ЗначениеПоУмолчанию

bool


1 - данный элемент будет выбран в списке значений, 0 - для всех остальных элементов.

 

hmtoggle_plus1Пример: Добавим к реквизиту документа "Заказ" значения для списка значений.

 

В предыдущем примере мы добавили к документу "Заказ" реквизит "Отпуск разрешил".

Для 1С 8 добавление значений реквизита будет выглядеть так.

 

Ответ=Ответ+"000000057"+Таб+"7"+Таб+""+Таб+"Ляпушкин"+Таб+"0"+РазделительСтрок;

Ответ=Ответ+"000000056"+Таб+"7"+Таб+""+Таб+"Сидоченко К.В."+Таб+"0"+РазделительСтрок;

 

На КПК создайте новый документ Заявка, выберите клиента и договор с кодом 000000192. На скриншоте результат добавления реквизита.

 

a69

 

Сохраняем в 1С результаты заполнения реквизитов на КПК

 

В протоколе обмена при выгрузке шапки любого документа есть параметр ДопРеквизиты. Значением этого параметра являются

набор реквизитов и их значений.  Разделитель реквизитов RS, разделитель кода реквизита и значения US.

Для 1С 8 разбор параметра ДопРеквизиты значений реквизита будет выглядеть так.

 

Реквизиты=СтрЗаменить(СтрШапки.ДопРеквизиты,Символ(30),РазделительСтрок);

Для Н=1 По СтрЧислоСтрок(Реквизиты) Цикл

 РеквЗнач=СтрЗаменить(СтрПолучитьСтроку(Реквизиты,Н),Символ(31),РазделительСтрок);

 КодРеквизита=СтрПолучитьСтроку(РеквЗнач,1);

 Значение=СтрПолучитьСтроку(РеквЗнач,2);

КонецЦикла;

 

То же самое и для считывания реквизитов из табличной части.

 

Дополнительные примеры

 

hmtoggle_plus1Добавим в карточку товара для документа Заказ два дополнительных реквизита с типом Список значений и сделаем привязку их значений к товару и единице.

 

Для 1С 8 добавление реквизита будет выглядеть так.

 

Ответ=Ответ+"2"+Таб+"Привязка к товару"+Таб+"15"+Таб+"Good"+Таб+"0"+"0"РазделительСтрок;

Ответ=Ответ+"3"+Таб+"Привязка к единице"+Таб+"15"+Таб+"Unit"+Таб+"0"+"0"РазделительСтрок;

 

Для 1С 8 добавление значений реквизита будет выглядеть так.

 

Ответ=Ответ+"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"+РазделительСтрок;