Page tree

Versions Compared

Key

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

Тип отчета «Программно» — это гибкий способ получения информации как из Системы компоновки данных, так и из объектов «1С: Предприятие» с использованием запросов.

Info
Перед использованием нужно выбрать тип отчета: «Программно». Подробнее смотрите на странице «Создание отчетов».

Принцип работы основан на составлении программы выборки данных на языке программирования 1С.

Здесь мы рассмотрим два примера создания отчета методом «Программно»: с использованием Системы компоновки данных (СКД) и запросов.

Разделы

Table of Contents

Возможности

  • доступ к любым объектам и методам платформы «1С: Предприятие» с соблюдением ролей пользователя;
  • формирование отчетов на основе макетов СКД;
  • доступ к виртуальным документам обработки Агент Плюс: Посещение, МерчендайзингМерчандайзинг, Задание, ПланПосещений.

Описание

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


Шаблон программы

В шаблоне описана структура программы и доступные глобальные параметры и методы.

1C-Code-Highlighter

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

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



Создаем отчет с использованием макета СКД

С помощью макета СКД сформируем ведомость по товарам на мобильном складе торгового агента за период. Период задается агентом на мобильном устройстве.

Программа



Code Block
languagejava
titleТекст программы «Ведомость по товарам на мобильном складе торгового агента за период»
linenumberstrue
collapsetrue
	
	//ШАБЛОНПРОГРАММА: ПРОГРАММЫ: 
	
	//1. Глобальные параметры
	Ведомость по товарам на мобильном складе торгового агента за период 

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

Создание отчета

Рассмотрим два примера создания отчета методом «Программно»: с использованием Системы компоновки данных (СКД) и запросов.

Используем макет СКД

С помощью макета СКД сформируем ведомость по товарам на мобильном складе торгового агента за период. Период задается агентом на мобильном устройстве.

Code Block
languagejava
titleПрограмма формирования отчета с использованием СКД
linenumberstrue
collapsetrue
//ШАБЛОН ПРОГРАММЫ: 

//1. Глобальные параметры
//1.1 Параметры
//    сзПараметры    данных
СхемаКомпоновкиДанных = Отчеты.ВедомостьПоТоварамНаСкладах.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//3. ВариантыНастроек 
ВариантыНастроек = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // Или другой: СхемаКомпоновкиДанных.ВариантыНастроек.Найти("СвойВариант");    

//3. КомпоновщикНастроек
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантыНастроек);    

//4. Установка параметра Период и отбора по Складу. сзПараметры - глобальный параметр                                              
ПериодОчета = Новый СтандартныйПериод;
Для Каждого Элемент Из сзПараметры Цикл 
    //4.1 Заполнение "ПериодОчета" - это период отчета.
    Если Элемент.Представление = "ПериодОт" Тогда
        ПериодОчета.ДатаНачала =    Элемент.Значение;
    ИначеЕсли Элемент.Представление = "ПериодДо" Тогда
        ПериодОчета.ДатаОкончания = КонецДня(Элемент.Значение);
    КонецЕсли;
    //4.2 Отбор по складу
    Если Элемент.Представление = "Склад" И Элемент.Пометка  Тогда
    
        Если ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(ВыбНастройкиАгента.МобильныйСклад) Тогда
            //МобильныйСклад, при выгрузке
            Склад = ВыбНастройкиАгента.МобильныйСклад;
        ИначеЕсли НЕ ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(Элемент.Значение) Тогда
             //Для теста, при нажатии на кнопку сформировать в УС.
            Склад = Элемент.Значение
        Иначе
            Продолжить;
        КонецЕсли;

        ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Склад");
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение     = ДоступноеПоле.Поле;
        ЭлементОтбора.ВидСравнения         = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение     = Склад;
        ЭлементОтбора.Использование     = Истина;
        
    КонецЕсли;
КонецЦикла;
//4.3 Установка стандартного периода
ПараметрОтчетаСтандартныйПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
ПараметрОтчетаСтандартныйПериод.Использование = Истина;
ПараметрОтчетаСтандартныйПериод.Значение       = ПериодОчета;

//5. Вывод значений параметров в отчет (шапка отчета)
ПараметрВыводитьПараметры = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных"));
ПараметрВыводитьПараметры.Использование = Истина;
ПараметрВыводитьПараметры.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить

//6. Вывод значений отбора в отчет (шапка отчета)
ПараметрВыводитьОтбор = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
ПараметрВыводитьОтбор.Использование = Истина;
ПараметрВыводитьОтбор.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить

//7. КомпоновщикМакетаКомпоновкиДанных 
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.Настройки;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

//8. ПроцессорКомпоновкиДанных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,Истина);

//9. Результат выполнения. ТабличныйДокументРезультат - глобальный параметр
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокументРезультат); 
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


Параметры

Image Added

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

Image Added


Создаем отчет с выборкой данных с помощью запроса

Использование языка запросов позволяет не только получать доступ к различным объектам «1С: Предприятие», но и выбирать данные их виртуальных документов обработки Агент Плюс.

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

Программа



Code Block
languagejava
titleТекст программы «Перечень документов «Посещение», созданных агентом за определенный период»
linenumberstrue
collapsetrue
//ПРОГРАММА: Перечень документов Посещение, созданных агентом за определенный период  

//1. Глобальные параметры
//1.1 Параметры
//    сзПараметры                    - СписокЗначений    - Список значений из вкладки Параметры
//    сзПараметры.Значение        - Любой                - СписокЗначений  Значение параметра
//    сзПараметры.Представление   - Список значений из вкладки ПараметрыСтрока            - Имя параметра
//    сзПараметры.ЗначениеПометка         - ЛюбойБулево            - Признак "Использовать"
//1.2 Результат
//    ТабличныйДокументРезультат  - Значение параметра
//    сзПараметры.Представление   - Строка            - Имя параметра
//    сзПараметры.Пометка    ТабличныйРезультат - Результат выполнения программы, при выгрузке данные из параметра будут сконвертированы в МУ. 

//2. Получение всех документов посещение
тзПосещение = ВОТЗЗагрузить("_Посещение");

//3. Запрос с отбором
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
     - Булево         |   - Признак "Использовать"
//1.2 Результат
// тзПосещение.Дата КАК Дата,
    ТабличныйДокументРезультат  - ТабличныйРезультат - Результат выполнения программы, при выгрузке данные из| параметра будут сконвертированы в МУ.  РАЗНОСТЬДАТ(тзПосещение.ВремяОкончания, тзПосещение.ВремяНачала, МИНУТА) КАК Время,
               |    тзПосещение.Партнер КАК Партнер,
               |     тзПосещение.Менеджер КАК Агент
        
//2. Макет схемы компоновки данных
СхемаКомпоновкиДанных = Отчеты.ВедомостьПоТоварамНаСкладах.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//3. ВариантыНастроек 
ВариантыНастроек = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // Или другой: СхемаКомпоновкиДанных.ВариантыНастроек.Найти("СвойВариант"); |ПОМЕСТИТЬ тзПосещение
          

//3. КомпоновщикНастроек
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантыНастроек); |ИЗ
    

//4. Установка параметра Период и отбора по Складу. сзПараметры - глобальный параметр|    &тзПосещение КАК тзПосещение
               |;
               |
          
ПериодОчета = Новый СтандартныйПериод;
Для Каждого Элемент Из сзПараметры Цикл 
    //4.1 Заполнение "ПериодОчета" - это период отчета.
    Если Элемент.Представление = "ПериодОт" Тогда
        ПериодОчета.ДатаНачала =    Элемент.Значение; |////////////////////////////////////////////////////////////////////////////////
    ИначеЕсли Элемент.Представление = "ПериодДо" Тогда
       |ВЫБРАТЬ
 ПериодОчета.ДатаОкончания = КонецДня(Элемент.Значение);
    КонецЕсли;
    //4.2 Отбор по складу
 |   Если ЭлементтзПосещение.ПредставлениеДата = "Склад" И Элемент.Пометка  Тогда
КАК Дата,
        
       | Если ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(ВыбНастройкиАгента.МобильныйСклад) ТогдатзПосещение.Время КАК Время,
            //МобильныйСклад, при выгрузке
 |    тзПосещение.Партнер КАК Партнер,
     Склад = ВыбНастройкиАгента.МобильныйСклад;
        ИначеЕсли| НЕ ЗначениеЗаполнено(ВыбАгент) И ЗначениеЗаполнено(Элемент.Значение) Тогда
тзПосещение.Агент КАК Агент
              //Для теста, при нажатии на кнопку сформировать в УС.
 |ИЗ
               |    СкладтзПосещение =КАК Элемент.ЗначениетзПосещение
        Иначе
       |ГДЕ
     Продолжить;
        КонецЕсли;

  |    тзПосещение.Дата  ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Склад");
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначениеМЕЖДУ НачалоПериода(&ПериодОт,День) И КонецПериода(&ПериодДо,День)";

Запрос.УстановитьПараметр("тзПосещение", тзПосещение);


//4. Установка параметров Период и партнер. сзПараметры - глобальный параметр     = ДоступноеПоле.Поле;
        ЭлементОтбора.ВидСравнения         = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение     = Склад;
        ЭлементОтбора.Использование
Для Каждого Элемент Из сзПараметры =Цикл Истина;
    Если Элемент.Представление = "ПериодОт" Тогда
    КонецЕсли;
КонецЦикла;
//4.3 Установка стандартного периода
ПараметрОтчетаСтандартныйПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
ПараметрОтчетаСтандартныйПериод.Использование = Истина;
ПараметрОтчетаСтандартныйПериод.ЗначениеЗапрос.УстановитьПараметр("ПериодОт", Элемент.Значение);
    ИначеЕсли Элемент.Представление = = ПериодОчета;

//5. Вывод значений параметров в отчет (шапка отчета)
ПараметрВыводитьПараметры = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных"));
ПараметрВыводитьПараметры.Использование = Истина;
ПараметрВыводитьПараметры.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить

//6. Вывод значений отбора в отчет (шапка отчета)
ПараметрВыводитьОтбор = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
ПараметрВыводитьОтбор.Использование = Истина;
ПараметрВыводитьОтбор.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить; //Или ТипВыводаТекстаКомпоновкиДанных.НеВыводить

//7. КомпоновщикМакетаКомпоновкиДанных 
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки = КомпоновщикНастроек.Настройки;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

//8. ПроцессорКомпоновкиДанных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,,Истина);

//9. Результат выполнения. ТабличныйДокументРезультат - глобальный параметр
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокументРезультат); 
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Выбираем данные через запрос

Продолжение следует...
"ПериодДо" Тогда
        Запрос.УстановитьПараметр("ПериодДо", Элемент.Значение);
    ИначеЕсли Элемент.Представление = "Партнер" И Элемент.Пометка И ЗначениеЗаполнено(Элемент.Значение) Тогда
        Запрос.Текст = Запрос.Текст + Символы.ПС + "И тзПосещение.Партнер = &Партнер";
        Запрос.УстановитьПараметр("Партнер", Элемент.Значение);            
    КонецЕсли;
КонецЦикла;

//5. Вывод результата
РезультатЗапроса = Запрос.Выполнить();
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатЗапроса);       
ПостроительОтчета.Вывести(ТабличныйДокументРезультат);

Параметры


Image Added

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


Image Added