Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Info |
---|
Для создания отчета выберите тип «Программно». |
Статья содержит код программы и перечень параметров.
Подробные шаги по созданию отчета читайте в статье «Тип отчета „Программно“».
Описание
Здесь мы создадим отчет по мобильному складу торгового агента. Покажем как получать агента, который запросил отчет и его настройки. Данные будем получать используя систему компоновки данных (СКД).
Используйте отчет как пример работы с глобальными переменными «ВыбАгент» и «ВыбНастройкиАгента». Подробнее о переменных читайте на странице «Использование параметров».
Программа
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//ПРОГРАММА: Ведомость по товарам на мобильном складе торгового агента за период
//1. Глобальные параметры
//1.1 Параметры
// сзПараметры - СписокЗначений - Список значений из вкладки Параметры
// сзПараметры.Значение - Любой - Значение параметра
// сзПараметры.Представление - Строка - Имя параметра
// сзПараметры.Пометка - Булево - Признак "Использовать"
//1.2 Результат
// ТабличныйДокументРезультат - ТабличныйРезультат - Результат выполнения программы, при выгрузке данные из параметра будут сконвертированы в МУ.
//2. Макет схемы компоновки данных
СхемаКомпоновкиДанных = Отчеты.ВедомостьПоТоварамНаСкладах.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//3. ВариантыНастроек
ВариантыНастроек = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // Или другой: СхемаКомпоновкиДанных.ВариантыНастроек.Найти("СвойВариант");
//3. КомпоновщикНастроек
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантыНастроек);
//4. Установка параметра Период и отбора по Складу. сзПараметры - глобальный параметр
ПериодОчета = Новый СтандартныйПериод;
Для Каждого Элемент Из сзПараметры Цикл
//4.1 Заполнение "ПериодОчета" - это период отчета.
Если Элемент.Представление = "ПериодОт" Тогда
ПериодОчета.ДатаНачала = Элемент.Значение;
ИначеЕсли Элемент.Представление = "ПериодДо" Тогда
ПериодОчета.ДатаОкончания = КонецДня(Элемент.Значение);
КонецЕсли;
//4.2 Отбор по складу
Если Элемент.Представление = "Склад" И Элемент.Пометка Тогда
Если ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(ВыбНастройкиАгента.МобильныйСклад) Тогда
//МобильныйСклад, при выгрузке
Склад = ВыбНастройкиАгента.МобильныйСклад;
ИначеЕсли НЕ ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(Элемент.Значение) Тогда
//Для теста, при нажатии на кнопку сформировать в УС.
Склад = Элемент.Значение
Иначе
Продолжить;
КонецЕсли;
ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Склад");
ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = ДоступноеПоле.Поле;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Склад;
ЭлементОтбора.Использование = Истина;
КонецЕсли;
КонецЦикла;
//4.3 Установка стандартного периода
ПараметрОтчетаСтандартныйПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
ПараметрОтчетаСтандартныйПериод.Использование = Истина;
ПараметрОтчетаСтандартныйПериод.Значение = ПериодОчета;
//5. Вывод значений параметров в отчет (шапка отчета)
ПараметрВыводитьПараметры = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных"));
ПараметрВыводитьПараметры.Использование = Истина;
ПараметрВыводитьПараметры.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить
//6. Вывод значений отбора в отчет (шапка отчета)
ПараметрВыводитьОтбор = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
ПараметрВыводитьОтбор.Использование = Истина;
ПараметрВыводитьОтбор.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить
//7. КомпоновщикМакетаКомпоновкиДанных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.Настройки;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
//8. ПроцессорКомпоновкиДанных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,Истина);
//9. Результат выполнения. ТабличныйДокументРезультат - глобальный параметр
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
Параметры
Note |
---|
У торгового агента должна быть включена настройка «Торговля с колес» и указан мобильный склад. |
Image Added
ПериодОт и ПериодДо
- параметры будут запрашиваться на мобильном устройстве и являются обязательными для заполнения — тип «Дата»;
- для проверки формирования отчета в настройках значения мы выбрали тип «Дата» и указали свое значение.
Склад
Так как в программе склад выбирается автоматически, то мы не задаем его на мобильном устройстве. В случае, если у торгового агента нет мобильного склада, то будет сформирован отчет по складу «Центральный склад».
Результат на мобильном устройстве
Запрос отчета
Image Added
Полученный из ЦБД отчет
Image Added
Смотрите также