Имя: Пароль:
1C
1С v8
Проблемы с правами в привилегированном модуле с СКД
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. выводим результат
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТаблицаВозврата = Новый ТаблицаЗначений;
    ПроцессорВывода.УстановитьОбъект(ТаблицаВозврата);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
    
    ТаблицаВозврата.Колонки.ДатаЗаказа.Имя = "Дата";
    ТаблицаВозврата.Колонки.ЗаказСуммаДокумента.Имя = "СуммаЗаказа";
    ТаблицаВозврата.Колонки.СуммаКВыплате.Имя = "Начисления";
    
    Возврат ТаблицаВозврата;
    
КонецФункции
1 simol
 
25.11.13
14:09
ап-ап
2 simol
 
07.12.13
02:25
Исправлено в 8.3.4
3 pavig
 
07.12.13
03:28
ок.