Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

СКД. Использование функций общих модулей в выражениях параметра отчета

СКД. Использование функций общих модулей в выражениях параметра отчета
Я
   kirillkr
 
16.09.16 - 11:22
Есть самописная конфигурация. Справочники Организации (для одной роли есть ограничения на чтение записей, но для рассматриваемых ролей ниже никаких ограничений по записям нет) и Иерархия - иерархический справочник только элементов (без ограничений).
В справочнике Иерархии 2 корневых элемента Отчет 1 и Отчет2 с кодами 0000000000 и 1000000000 соответственно (не предопределенные). Пользователю доступен параметр ВидОтчета - Строка(10) в котором перечислены эти два кода и на выбор Отчет 1 или Отчет 2, а также Период и СписокОрагнизаций. Также есть параметры по датам периода и ВидОтчетаСпр - ИерархияPLСсылка и задается как ЗагрузкаДанных.НайтиСтатью(&ВидОтчета). Т.е. общий модуль ЗагрузкаДанных с пометкой выполнения на сервере и в ней функция НайтиСтатью экспортируемая.

В отчете 3 источника данных: Иерархия
ВЫБРАТЬ
    ИерархияPL.Ссылка КАК Статья,
    ИерархияPL.Родитель
ИЗ
    Справочник.ИерархияPL КАК ИерархияPL
ГДЕ
    НЕ ИерархияPL.ПометкаУдаления
    И ИерархияPL.Родитель В ИЕРАРХИИ (&ВидОтчетаСпр)

УПОРЯДОЧИТЬ ПО
    ИерархияPL.Ссылка ИЕРАРХИЯ


Организации
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
    Организации.Ссылка
ИЗ
    Справочник.Организации КАК Организации
ГДЕ
    Организации.Ссылка В(&СписокОрганизаций)


и сам набор данных
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ДанныеВыгрузкиОбороты.Организация,
    ДанныеВыгрузкиОбороты.Статья,
    ДанныеВыгрузкиОбороты.СуммаОборот,
    ДанныеВыгрузкиОбороты.СуммаНУОборот
ИЗ
    РегистрНакопления.ДанныеВыгрузки.Обороты({(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ))}, {(КОНЕЦПЕРИОДА(&ОкончаниеПериода, ДЕНЬ))}, Авто, ) КАК ДанныеВыгрузкиОбороты


При формировании отчета под полными правами - отчет прекрасно формируется по выбранным организациям, за выбранный период и строит иерархию по выбранному корневому элементу иерархии. Но под правами экономиста (у него нет ограничений на организации и РН) ругается с ошибкой не найдена функция ЗагрузкаДанных.НайтиСтатью(&ВидОтчета).

Решил проверить чем схема для ПП отличается от Э. Запустил Консоль системы компоновки данных и попытался выполнить и под ПП, и под Э. Но и там, и там пишет Синтаксическая ошибка "Загрузкаданных.НайтиСтатью"
 
 
   kirillkr
 
1 - 16.09.16 - 11:39
Да, забыл написать. Нагуглил код
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();

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

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

    ДокументРезультат.Очистить();

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

После этого ошибка на ненайденную функцию пропала, но в отчет выводится только заголовок, даже шапки нет. Под ПП по-прежнему все красиво.
   kirillkr
 
2 - 16.09.16 - 12:31
Отчет сформировался. Не хватало галки в Просмотр для регистра накопления ДанныеВыгрузки. Почему для отчета в СКД необходимы права на интерактивный просмотр ролью этого регистра?
   sapphire
 
3 - 16.09.16 - 12:45
(2) Так по-жизни, считатется, что если данные попали в "область видимости" СКД, то проверяется право "Просмотр".
Например, есть право "Чтение" на какой-то справочник, и это добро выводится, допустим в колонку А результата, тогда, если у пользователя нет права "Просмотр", пользователь эту колонку даже не увидит.
   kirillkr
 
4 - 16.09.16 - 12:47
(3). К сожалению, этого не знал. До этого все отчеты писал через запросы и программном выводе результата. Сейчас решил параллельно изучать СКД, и не подозревал о такой тонкости.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует