Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Здесь вы найдете тексты примеров запросов и программ для дополнительных отчетов.

Подробнее о создании отчетов типа «Запрос» и «Программно» читайте на соответствующих страницах.

Info

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

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

Разделы

Table of Contents
maxLevel3

1. Запросы

Тексты запросов и описание используемых параметров

1.1. Заказы партнера за последние семь дней

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

collapsecodelanguage
Expand
titleНажмите, чтобы посмотреть пример


Code Block
languagejava
titleЗапрос
linenumbers
true
true
ВЫБРАТЬ
    ЗаказКлиента.Ссылка КАК Ссылка,
    ЗаказКлиента.Дата КАК Дата,
    ЗаказКлиента.Менеджер КАК Менеджер,
    ЗаказКлиента.СуммаДокумента КАК СуммаДокумента
ИЗ
    Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
    ЗаказКлиента.Дата > &Дата
    И ЗаказКлиента.Партнер = &Партнер

Параметры

Image Added

java
titleПараметры
linenumberstrue
collapsetrue
// Дата Выражение: ДА Значение параметра: ТекущаяДата()-(86400*7) // текущая дата минус семь дней в секундах Использовать: ДА Тип параметра: Не выгружать Обязательный: НЕТ // Партнер Выражение: НЕТ Значение параметра: Альфа-Протон // выберите партнера для тестирования отчета Использовать: ДА Тип параметра: Справочник "Партнеры" Обязательный: ДА

Дата

Устанавливаем флаг «Выражение» и в поле «Значение» вводим

Code Block
ТекущаяДата()-(86400*7)
  • ТекущаяДата() — функция получения текущей даты
  • 86400*7 — семь дней в секундах

Получилось: минус семь дней от текущей даты. Все документы за сегодня тоже войдут в период.

В разделе «Данные для МУ» в колонке «Тип параметра» установите «Не выгружать».

Партнер

В разделе «Данные для МУ» в колонке «Тип параметра» необходимо установить «Справочник „Партнеры“». Также укажите признак «Обязательный».

Теперь при формировании отчета на мобильном устройстве у торгового агента будет запрошен партнер.


1.2. Ведомость заказов торгового агента за период

Показываем как автоматически определить агента, который запросил отчет.

Expand
titleНажмите, чтобы посмотреть пример

Используем значение параметра «ВыбАгент» — это агент, который формирует запрос с мобильного устройства.

Code Block
languagejava
titleЗапрос
linenumberstrue
ВЫБРАТЬ
    ЗаказКлиента.Ссылка КАК Ссылка,
    ЗаказКлиента.Дата КАК Дата,
    ЗаказКлиента.Менеджер КАК Агент,
    ЗаказКлиента.СуммаДокумента КАК СуммаДокумента
ИЗ
    Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
    ЗаказКлиента.Дата МЕЖДУ НачалоПериода(&ПериодОт,День) И КонецПериода(&ПериодДо,День)
    И ЗаказКлиента.Менеджер = &Агент

Параметры

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

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

Агент

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

Если вы не хотите проверять отчет на вкладке «Проверить отчет», то в значении параметра «Агент» можно просто указать

Code Block
ВыбАгент

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

Code Block
languagejava
// если отчет формируется для просмотра в учетной системе, 
// то вместо пустого значения ВыбАгент подставляем идентификатор агента Белкина Анастасия Георгиевна
// иначе берем значение из глобальной переменной ВыбАгент.

?(ЗначениеЗаполнено(ВыбАгент), ВыбАгент, Справочники.Пользователи.НайтиПоНаименованию("Белкина Анастасия Георгиевна"))

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

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

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



2. Программы

Тексты программ и описание используемых параметров

2.1. Ведомость по товарам на мобильном складе торгового агента за период

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


Code Block
languagejava
titleПараметры
linenumberstrue
collapsetrue
// ПериодОт
Выражение: ДА
Значение параметра: ТекущаяДата() // или снимите галочку «Выражение», выберите тип «Дата» и укажите дату вручную
Использовать: ДА
Тип параметра: Дата
Обязательный: ДА

// ПериодДо
Выражение: ДА
Значение параметра: ТекущаяДата()
Использовать: ДА
Тип параметра: Дата
Обязательный: ДА

// Склад
Выражение: НЕТ
Значение параметра: Центральный склад // здесь выбрать склад для тестирования отчета и выгрузки агенту, если у него нет мобильного склада.
Использовать: ДА
Тип параметра: Не выгружать
Обязательный: Нет

2.2. Перечень документов «Посещение», созданных агентом за определенный период

Code Block
languagejava
titleПрограмма
linenumberstrue
collapsetrue
//ПРОГРАММА: Перечень документов Посещение, созданных агентом за определенный период 
 
//1. Глобальные параметры
//1.1 Параметры
//    сзПараметры                    - СписокЗначений    - Список значений из вкладки Параметры
//    сзПараметры.Значение        - Любой                - Значение параметра
//    сзПараметры.Представление   - Строка            - Имя параметра
//    сзПараметры.Пометка         - Булево            - Признак "Использовать"
//1.2 Результат
//    ТабличныйДокументРезультат  - ТабличныйРезультат - Результат выполнения программы, при выгрузке данные из параметра будут сконвертированы в МУ.
 
//2. Получение всех документов посещение
тзПосещение = ВОТЗЗагрузить("_Посещение");
 
//3. Запрос с отбором
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    тзПосещение.Дата КАК Дата,
               |    РАЗНОСТЬДАТ(тзПосещение.ВремяОкончания, тзПосещение.ВремяНачала, МИНУТА) КАК Время,
               |    тзПосещение.Партнер КАК Партнер,
               |    тзПосещение.Менеджер КАК Агент
               |ПОМЕСТИТЬ тзПосещение
               |ИЗ
               |    &тзПосещение КАК тзПосещение
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ
               |    тзПосещение.Дата КАК Дата,
               |    тзПосещение.Время КАК Время,
               |    тзПосещение.Партнер КАК Партнер,
               |    тзПосещение.Агент КАК Агент
               |ИЗ
               |    тзПосещение КАК тзПосещение
               |ГДЕ
               |    тзПосещение.Дата МЕЖДУ НачалоПериода(&ПериодОт,День) И КонецПериода(&ПериодДо,День)";
 
Запрос.УстановитьПараметр("тзПосещение", тзПосещение);
 
 
//4. Установка параметров Период и партнер. сзПараметры - глобальный параметр                                             
Для Каждого Элемент Из сзПараметры Цикл
    Если Элемент.Представление = "ПериодОт" Тогда
        Запрос.УстановитьПараметр("ПериодОт", Элемент.Значение);
    ИначеЕсли Элемент.Представление = "ПериодДо" Тогда
        Запрос.УстановитьПараметр("ПериодДо", Элемент.Значение);
    ИначеЕсли Элемент.Представление = "Партнер" И Элемент.Пометка И ЗначениеЗаполнено(Элемент.Значение) Тогда
        Запрос.Текст = Запрос.Текст + Символы.ПС + "И тзПосещение.Партнер = &Партнер";
        Запрос.УстановитьПараметр("Партнер", Элемент.Значение);           
    КонецЕсли;
КонецЦикла;
 
//5. Вывод результата
РезультатЗапроса = Запрос.Выполнить();
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатЗапроса);      
ПостроительОтчета.Вывести(ТабличныйДокументРезультат);


Code Block
languagejava
titleПараметры
linenumberstrue
collapsetrue
// ПериодОт
Выражение: ДА
Значение параметра: ТекущаяДата() // или снимите галочку «Выражение», выберите тип «Дата» и укажите дату вручную
Использовать: ДА
Тип параметра: Дата
Обязательный: ДА

// ПериодДо
Выражение: ДА
Значение параметра: ТекущаяДата()
Использовать: ДА
Тип параметра: Дата
Обязательный: ДА

// Партнер
Выражение: НЕТ
Значение параметра: Альфа-Протон // выберите партнера для тестирования отчета
Использовать: ДА
Тип параметра: Дата
Обязательный: ДА