Заказы покупателя (часть 1)

Выборка данных может быть произведена  запросом, где вы можете использовать всю мощь языка запросов 1С (отборы, пакетные запросы и временные таблицы), единственное условие – результирующий запрос должен возвращать данные как список ссылок.

Давайте настроим выгрузку только одной «Организации», от  которой разрешено оформлять заказы. В схеме обмена для элемента «Организации» снимите флажок «Только изменения» и в колонке «Условия выгрузки»  напишите запрос:

ВЫБРАТЬ
    _Таблица.Ссылка КАК Ссылка
ИЗ
    Справочник.Организации КАК _Таблица
ГДЕ
    _Таблица.Ссылка = &Организация

Нажмите кнопку «Параметры запросов» на панели, добавьте новый параметр с именем «Организация», типом «Запрос» и укажите текст запроса:

ВЫБРАТЬ
    Константы.ОсновнаяОрганизация КАК Значение
ИЗ
    Константы КАК Константы


Перед тем как выполнить запрос на выгрузку данных, будет произведена последовательная инициализация параметров пользовательских запросов, т.е. в нашем случае сначала параметр «Организация» будет инициирован значением константы «ОсновнаяОрганизация», а затем этом параметр используется для ограничения выборки данных из справочника «Организации».

Кроме запроса, для инициализации параметра можно использовать выражение на встроенном языке 1С или непосредственно указать значение параметра. Например, инициализация параметра «Покупатели»:

По кнопке «Проверить» выражение  выполняется,  значение параметра будет отображено пользователю.

Тогда запрос на выборку данных справочника «Контрагенты» может выглядеть так:

Выбрать только измененные и не помеченные на удаление элементы из справочника «Контрагенты» из подкаталога «Покупатели».  Параметр «УзелОбмена» предопределенный, ссылка на узел плана обмена, указанная ранее для данного мобильного сотрудника. Подробнее о предопределённых параметрах читайте во встроенной справке 1С.

Прочие настройки схемы обмена смотрите в базе «FBA-демо», а сейчас давайте проверим процедуру выгрузки полностью. Укажите каталог и нажмите кнопку «Получить данные» в группе «Пакетный обмен».


В окне «Служебные сообщения» видим, что ничего не выгрузилось только для документа «Заказ покупателя» и для внешней таблицы «Цены». В первом случае все правильно – заказы создаются на КПК, а заполнение цен надо добавить.

Откройте модуль fbaПодпискаНаСобытия и добавьте следующий код в процедуру ПередОтправкойВнешнейТаблицы:

Если СокрЛП(МобильноеПриложение.Код) = "SAMPLE_APP_ORDERS" Тогда
    Если ИмяТаблицы = "Цены" Тогда

        ТипЦен = Константы.ОсновнойТипЦенПродажи.Получить();
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
        | ЦеныНоменклатурыСрезПоследних.ТипЦен,
        | ЦеныНоменклатурыСрезПоследних.Номенклатура,
        | ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры,
        | ЦеныНоменклатурыСрезПоследних.Цена,
        | ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения
        |ИЗ
        | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних";

        Запрос.УстановитьПараметр("ТипЦен",ТипЦен);
        Результат = Запрос.Выполнить();
        Выборка = Результат.Выбрать();

        Пока Выборка.Следующий() Цикл
            НоваяСтрока = ВнешняяТаблица.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока,Выборка);
        КонецЦикла;
    КонецЕсли; 
КонецЕсли;

Протестируйте выгрузку данных,  если все данные выгружаются корректно – генерируйте шаблон мобильного приложения. В следующей части рассмотрим работу с данными на Android (поиск, создание справочников и документов) .

Похожие записи: