Всем привет. Конфигурация Управление холдингом, редакция 3.1 (3.1.14.15)
Есть отчет на СКД.
В конфигураторе есть группировка "ПолучательПлательщик". В запросе это поле имеет составной тип Справочник.ФизическиеЛица/Контрагенты/Организации.

При открытии этого отчета у пользователя, группировка отсутствует.

И отсутствует возможность ее добавления.

В ролях пользователя есть доступ на три указанные справочника.

Если же пользователя включить в группу доступа "Администраторы" - то группировка отображается и корректно выводится.
С первого взгляда взгляда, дело в правах. Для тестирования установил на все возможные объекты метаданных право "Чтение".
Результата нет. В чем может быть дело?
---
Ну или в вашем случае.
ВЫБРАТЬ
...
&ВыдыСубконтоКД КАК ПолучательПлательщик,
...

ПриКомпоновкеРезультата
ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ВыдыСубконтоКД КАК ПолучательПлательщик",
"ХозрасчетныйОбороты.КорСубконто1 КАК ПолучательПлательщик");
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса;
---
Право просмотра есть?
---
Добавил право просмотра на все документы, группировка появилась.
Странно, всегда думал, что Просмотр - это только для визуального отображения формы документа пользователю.
Может подскажете, почему для СКД именно просмотр нужен?

Само поле вытягивается из РегистраБухгалтерии.Хозрасчетный.Обороты. из измерения КорСубконто1.
Залил новую базу, добавил просмотр только на документы, присутствующие в этом измерении, результат по прежнему нулевой.
В отчете группировка не выводится.
Опять не туда смотрю?
---
Сделайте формирование отчета в привилегированном режиме.
---
Спасибо за совет, но первостепенно с этого и начал. Результата небыло.
---
а где вы его устанавливали? Непосредственно перед выполнением?
Если это внешний отчет, то у него должен быть не безопасный режим.
Можно еще попробовать явно указать типы КорСубконто1

```1c
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
    ,
    ,
    ,
    ,
    ,
    КорСубконто1 ССЫЛКА Справочник.ФизическиеЛица
    ИЛИ КорСубконто1 ССЫЛКА Справочник.Контрагенты
    ИЛИ КорСубконто1 ССЫЛКА Справочник.Организации,
    ,
    ) КАК ХозрасчетныйОбороты
```
---
а где вы его устанавливали? Непосредственно перед выполнением?
Если это внешний отчет, то у него должен быть не безопасный режим.
Это внешний отчет, подключенный через дополнительные отчеты и обработки. Установил привилегированный режим вот тут:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    УстановитьПривилегированныйРежим(Истина);
    КонецПроцедуры
```

На типы отбор стоит следующим образом.
---
УстановитьПривилегированныйРежим(Истина);
работает в рамках одной процедуры/функции. Т.е. СтандартнаяОбработка = Ложь; И формировать отчет програмно.
---
работает в рамках одной процедуры/функции. Т.е. СтандартнаяОбработка = Ложь; И формировать отчет програмно.

Сделал так - безрезультатно.

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    УстановитьПривилегированныйРежим(Истина);
    //1. получение схемы компановки данных
    СхемаКомпановки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    //2. получение настроек компановки данных
    НастройкиКомпановки = КомпоновщикНастроек.ПолучитьНастройки();

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

    //4.Компановка данных
    УстановитьПривилегированныйРежим(Истина);
    ПроцессорКомпоновки = новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпановки, , ДанныеРасшифровки, Истина);
    УстановитьПривилегированныйРежим(Истина);
    //5. вывод результата компановки в табдок
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    КонецПроцедуры
```
---
КорСубконто1 ССЫЛКА Справочник.ФизическиеЛица
                ИЛИ КорСубконто1 ССЫЛКА Справочник.Контрагенты
                ИЛИ КорСубконто1 ССЫЛКА Справочник.Организации

Результат прежний.
---
Если открывать через "Файл" - "Отрыть", то УстановитьПривилегированныйРежим не работает.
Отчет должен быть подключен в дополнительные отчеты и обработки в "не безопасном режиме".
Т.е. в СведенияОВнешнейОбработке должно быть ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
---
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
Данный параметр уже был добавлен в обработке.
Сейчас попробовал подцепить снова как внешнюю обработку, после очередных доделок, но результата нет.
---
Перечитал вопрос. Я не правильно понял суть проблемы... Я думал, что в отчете эта группировка выходит пустой. Ее же совсем пользователь не видит... Значит проверка прав происходит до формирования отчета. И УстановитьПривилегированныйРежим тут ни при чем.
В этом случае можно в макете СКД прописать итоговые поля с типами. Типа такого.

```1c
    ВЫБРАТЬ
    ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
    ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка) КАК Партнер,
    ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) КАК Контрагент,
    ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК Договор,
    ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
    ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК ОбъектРасчетов,
    ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК Валюта,
    Неопределено КАК РасчетныйДокумент,
    ДАТАВРЕМЯ(1,1,1) КАК ДатаВозникновения,
    ДАТАВРЕМЯ(1,1,1) КАК ДатаПлановогоПогашения,
    0 КАК ДолгПартнераНачальныйОстаток,
    0 КАК НашДолгНачальныйОстаток,
    0 КАК УвеличениеДолга,
    0 КАК УменьшениеДолга,
    0 КАК ДолгПартнераКонечныйОстаток,
    0 КАК НашДолгКонечныйОстаток,
    ЗНАЧЕНИЕ(Справочник.СегментыПартнеров.ПустаяСсылка) КАК СегментПартнеров,
    0 КАК ТипРасчетов,
    Неопределено КАК Регистратор,
    0 КАК СуммаДолга,
    0 КАК ПревышениеЛимита
```
А текст запроса подставлять в ПриКомпоновкеРезультата
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса;
---
Ну или в вашем случае.
ВЫБРАТЬ
...
&ВыдыСубконтоКД КАК ПолучательПлательщик,
...

ПриКомпоновкеРезультата
ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ВыдыСубконтоКД КАК ПолучательПлательщик",
"ХозрасчетныйОбороты.КорСубконто1 КАК ПолучательПлательщик");
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса;
---
Данное предложение сдвинуло результат. Теперь у меня группировка выводится, а значение в ней = Неопределено.

Следующим шагом ограничил нужные типы документов через ВЫРАЗИТЬ(...), чтобы не тянулись "запрещенные" доки.
Благо их было всего 4.

В целом все получилось. Всех благодарю за активное участие))