0
simol
25.11.13
✎
12:36
|
С помощью СКД в привилегированном модуле заполняю Таблицу значений.
У бесправного пользователя результирующая таблица даже не все колонки имеет, не то, чтобы все данные. Если дать ему полные права, то работает. Это косяк платформы или я что-то упустил? У меня 8.2.18.109.
Функция ПолучитьТаблицуБонусов(СтруктураКлиента)
//1. создаем схему компоновки данных
СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
//1.1 определяем источник данных для схемы
//для наших целей - текущая ИБ
ИсточникДанных = ТиповыеОтчеты.ДобавитьЛокальныйИсточникДанных(СхемаКомпоновкиДанных);
//1.2 определяем набор данных
НаборДанных = ТиповыеОтчеты.ДобавитьНаборДанныхЗапрос(СхемаКомпоновкиДанных.НаборыДанных, ИсточникДанных, "Бонусы");
НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
НаборДанных.Запрос = (....);
//1.3 определяем ресурсы
ТиповыеОтчеты.ДобавитьПолеИтога(СхемаКомпоновкиДанных, "Бонус");
ТиповыеОтчеты.ДобавитьПолеИтога(СхемаКомпоновкиДанных, "СуммаКВыплатеВСледующем");
ТиповыеОтчеты.ДобавитьПолеИтога(СхемаКомпоновкиДанных, "СуммаКВыплатеВТекущем");
ТиповыеОтчеты.ДобавитьПолеИтога(СхемаКомпоновкиДанных, "СуммаКВыплате");
//2. создаем настройки для схемы
КомпановщикНастроек = ТиповыеОтчеты.ПолучитьКомпоновщикПоСхемеИНастройкам(СхемаКомпоновкиДанных);
//2.1 определяем структуру
//2.1.1 добавляем группировку детальную
ТиповыеОтчеты.ДобавитьГруппировку(КомпановщикНастроек);
//2.2 определим выбранные поля
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "ДатаЗаказа", "Дата");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "НомерЗаказа", "НомерЗаказа");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "Заказ.СуммаДокумента", "СуммаЗаказа");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "Бонус", "Бонус");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "СтатусЗаказа", "СтатусЗаказа");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "СуммаКВыплате", "Начисления");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "СуммаКВыплатеВТекущем", "СуммаКВыплатеВТекущем");
ТиповыеОтчеты.ДобавитьВыбранноеПоле(КомпановщикНастроек, "СуммаКВыплатеВСледующем", "СуммаКВыплатеВСледующем");
//2.3 Устанавлвиаем отбор
ТиповыеОтчеты.ДобавитьОтбор(КомпановщикНастроек, "Контрагент", СтруктураКлиента.Контрагент);
//2.4 Установим параметры
ТиповыеОтчеты.УстановитьПараметр(КомпановщикНастроек, "Период", ТекущаяДата());
ТиповыеОтчеты.УстановитьПараметр(КомпановщикНастроек, "Приход", ВидДвиженияНакопления.Приход);
//3 Настройки вывода
ТиповыеОтчеты.УстановитьПараметрВывода(КомпановщикНастроек, "ГоризонтальноеРасположениеОбщихИтогов", РасположениеИтоговКомпоновкиДанных.Нет);
ТиповыеОтчеты.УстановитьПараметрВывода(КомпановщикНастроек, "ВертикальноеРасположениеОбщихИтогов", РасположениеИтоговКомпоновкиДанных.Нет);
//4. готовим макет
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпановщикНастроек.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
//5. исполняем макет
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);
//6. выводим результат
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТаблицаВозврата = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаВозврата);
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
ТаблицаВозврата.Колонки.ДатаЗаказа.Имя = "Дата";
ТаблицаВозврата.Колонки.ЗаказСуммаДокумента.Имя = "СуммаЗаказа";
ТаблицаВозврата.Колонки.СуммаКВыплате.Имя = "Начисления";
Возврат ТаблицаВозврата;
КонецФункции
|
|