Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Для создания отчета выберите тип «Программно».

Статья содержит код программы и перечень параметров.
Подробные шаги по созданию отчета читайте в статье «Тип отчета „Программно“».

Программа

Программа формирует отчет по мобильному складу агента. Склад получаем из настроек агента.

Код
//ПРОГРАММА: Ведомость по товарам на мобильном складе торгового агента за период
 
//1. Глобальные параметры
//1.1 Параметры
//    сзПараметры                    - СписокЗначений    - Список значений из вкладки Параметры
//    сзПараметры.Значение        - Любой                - Значение параметра
//    сзПараметры.Представление   - Строка            - Имя параметра
//    сзПараметры.Пометка         - Булево            - Признак "Использовать"
//1.2 Результат
//    ТабличныйДокументРезультат  - ТабличныйРезультат - Результат выполнения программы, при выгрузке данные из параметра будут сконвертированы в МУ.
                                                    
//2. Макет схемы компоновки данных
СхемаКомпоновкиДанных = Отчеты.ВедомостьПоТоварамНаСкладах.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
 
//3. ВариантыНастроек
ВариантыНастроек = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // Или другой: СхемаКомпоновкиДанных.ВариантыНастроек.Найти("СвойВариант");   
 
//3. КомпоновщикНастроек
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантыНастроек);   
 
//4. Установка параметра Период и отбора по Складу. сзПараметры - глобальный параметр                                             
ПериодОчета = Новый СтандартныйПериод;
Для Каждого Элемент Из сзПараметры Цикл
    //4.1 Заполнение "ПериодОчета" - это период отчета.
    Если Элемент.Представление = "ПериодОт" Тогда
        ПериодОчета.ДатаНачала =    Элемент.Значение;
    ИначеЕсли Элемент.Представление = "ПериодДо" Тогда
        ПериодОчета.ДатаОкончания = КонецДня(Элемент.Значение);
    КонецЕсли;
    //4.2 Отбор по складу
    Если Элемент.Представление = "Склад" И Элемент.Пометка  Тогда
     
        Если ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(ВыбНастройкиАгента.МобильныйСклад) Тогда
            //МобильныйСклад, при выгрузке
            Склад = ВыбНастройкиАгента.МобильныйСклад;
        ИначеЕсли НЕ ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(Элемент.Значение) Тогда
             //Для теста, при нажатии на кнопку сформировать в УС.
            Склад = Элемент.Значение
        Иначе
            Продолжить;
        КонецЕсли;
 
        ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Склад");
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение     = ДоступноеПоле.Поле;
        ЭлементОтбора.ВидСравнения         = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение     = Склад;
        ЭлементОтбора.Использование     = Истина;
         
    КонецЕсли;
КонецЦикла;
//4.3 Установка стандартного периода
ПараметрОтчетаСтандартныйПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
ПараметрОтчетаСтандартныйПериод.Использование = Истина;
ПараметрОтчетаСтандартныйПериод.Значение       = ПериодОчета;
 
//5. Вывод значений параметров в отчет (шапка отчета)
ПараметрВыводитьПараметры = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных"));
ПараметрВыводитьПараметры.Использование = Истина;
ПараметрВыводитьПараметры.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить
 
//6. Вывод значений отбора в отчет (шапка отчета)
ПараметрВыводитьОтбор = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
ПараметрВыводитьОтбор.Использование = Истина;
ПараметрВыводитьОтбор.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить
 
//7. КомпоновщикМакетаКомпоновкиДанных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.Настройки;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
 
//8. ПроцессорКомпоновкиДанных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,Истина);
 
//9. Результат выполнения. ТабличныйДокументРезультат - глобальный параметр
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Параметры


У торгового агента должна быть включена настройка «Торговля с колес» и указан мобильный склад.


ПериодОт и ПериодДо

  • параметры будут запрашиваться на мобильном устройстве и являются обязательными для заполнения — тип «Дата»;
  • для проверки формирования отчета в настройках значения мы выбрали тип «Дата» и указали свое значение.

Склад

Так как в программе склад выбирается автоматически, то мы не задаем его на мобильном устройстве. В случае, если у торгового агента нет мобильного склада, то будет сформирован отчет по складу «Центральный склад».

Результат на мобильном устройстве

Запрос отчета

Полученный из ЦБД отчет


  • No labels