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