Что при разработке отчетов требуется чтобы у пользователя с ограниченными правами, отчет формировался полностью без проверки прав!
Особенно если настроен RLS
Есть несколько способов как это сделать:
1. Установить привилегированный режим в модуле отчета
Форма отчета должна быть Управляемой, далее в модуле отчета процедура обработчика «При компоновке результата»:
2. Формирование в привилегированном режиме через Общий модуль с галкой Привелигерованный
Создаем общий модуль
так же как в пункте 1 в обработчике «При компоновке результата» пишем:
В общем модуле МЕ_ДляОтчетаСКД_ПривелРежим код:
3. Если включен режим Использовать ограничение на уровне прав доступа - RLS
Часто используется в типовых. Тут в модуле для текущего пользователя можно на время формирования отчету установить параметр сеанса ИспользоватьОграниченияПравДоступаНаУровнеЗаписей в Ложь и RLS не сработает.
После завершения формирования, не забудьте включить rls обратно установив = Истина
4. Если в запросе используется конструкция вида регистратор.дата и это поле не отображается в полях отчета СКД
Допустим Вы сделали запрос по регистру накоплений и через регистратор обратились к дате или сумме документа и при формировании отчета СКД, эти поля недоступны !? как же быть?
Проблема в том - что у регистратором может выступать несколько документов и видимо права чтение/просмотр есть не на все - поэтому через скд эта таблица целиком недоступна, решение:
1. открыть доступ на все регистраторы регистра
2. в запросе четко обозначить тип
В дополнении у пункту 1, код процедуры сформировать отчет(). Для вывода отчета я использую шаблон All4CF.ru_Template_SKD_v4.1 в нем уже реализованы почти все необходимые функции и работает в Обычных и УП формах:
На этой закладке можно определить пользовательские вычисляемые поля.
Состав доступных настроек такой же, как для таблицы «Поля» на закладке «Наборы данных», за исключением некоторых полей:
1. «Путь к данным» - указывается путь к данным из набора. Именно это название, указанное в этом поле будет фигурировать во всех дальнейших настройках СКД.
2. «Выражение» - как вычисляется поле. Например, для вычисления процентов по каким либо ресурсам «Выбор Когда План = 0 Тогда 0 Иначе Продажи / План Конец». Если вычисляемое поле является ресурсом, то выражение будет использоваться для детальных записей.
3. «Заголовок» - строка с заголовком поля, которые выводится в отчет или в настройках
4. «Ограничение доступности поля» - ряд галочек – настроек, служит для указания того, как данное поле не может быть использовано в настройках. Возможно, указать такие ограни-чения
a. «Поле» - поле нельзя использовать в выборках СКД
b. «Условие» - поле нельзя использовать как условие
c. «Группа» - запрет на использование поля в группировках
d. «Упорядочивание» - запрет использовать поле в сортировках
5. «Выражение представления» - содержит выражение, которое используется при выводе зна-чений поля в отчет.
6. «Выражение упорядочивания» - как упорядочивать это поле.
a. «Тип значения» - уточнение типа значения поля набора данных, полезно использо-вать для уточнения полей составного типа
Для набора данных «Объект» используется для передачи в СКД внешних данных, таких как таблица значений, результат запроса. Для этого набора данных доступны описания полей, а также название объекта, которые будет передан в СКД:
Описание полей набора данных
После определения, какого вида мы набор данных используем, следует внести описание полей для данных, выводимых в отчет:
В таблице «Поля» заполняются свойства:
1. «Поле» - имя поля, в случае запроса заполняется автоматически, в случае набора данных «Объект» определяется вручную.
2. «Путь» - указывается путь к данным из набора. Именно это название, указанное в этом поле будет фигурировать во всех дальнейших настройках СКД.
3. «Заголовок» - строка с заголовком поля, которые выводится в отчет или в настройках
4. «Ограничение доступности поля» - ряд галочек – настроек, служит для указания того, как данное поле не может быть использовано в настройках. Возможно, указать такие ограни-чения
a. «Поле» - поле нельзя использовать в выборках СКД
b. «Условие» - поле нельзя использовать как условие
c. «Группа» - запрет на использование поля в группировках
d. «Упорядочивание» - запрет использовать поле в сортировках
5. «Ограничение доступности полей-реквизитов» - ряд галочек ниже, указывает на ограничения для реквизитов поля, смысл установки данных ограничений такой же что и в для поля
6. «Роль» - обозначает дополнительные свойства поля и его взаимоотношения с другими полями. Для редактирования ролей открывается специальный диалог:
a. «Без роли» - никаких особых «нагрузок» на поле не накладывается, режим по умолчанию для большинства полей
b. «Период» - содержит номер периода, если поле имеет тип периода. Самый младший период должен иметь тип 1. Например, в запросе рассчитываем итоги по различным периодам: ПериодСекунда = 1, ПериодДень=2, ПериодНеделя=3 и т.д. Данный номер будет указывать, как в СКД рассчитывается итоги по полям остатка.
c. «Дополнительный» – указывает на то, что поле–период не является обязательным
d. «Счет» - указывает на то, что поля является бухгалтерским счетом, используется для рас-чета бухгалтерских итогов.
e. «Вид» - строка выражение, с помощью которого рассчитывается вид счета. Результатом выражения должно быть значение перечисления ВидСчета (Активный, Пассивный, Активно/Пассивный), либо число. Значение числа 0 соответствует активному счету, 1 – пассивному, 2 – активно-пассивному. Выражение записывается на языке выражений системы компоновки данных. Данная информация используется при расчете по полям бухгалтерских остатков;
f. «Остатки» – признак того, что поле является полем остатка;
g. «Имя» – строка, содержащая имя группы полей остатка. Например: "Сумма", "Количест-во";
h. «Тип» – тип остатка (НачальныйОстаток, КонечныйОстаток, Нет (поле не является остат-ком));
i. «Бух. Тип» – тип бухгалтерского остатка (Дебет, Кредит, Нет (поле не является бухгалтерским остатком));
j. «Поле счета» – имя поля-счета, для которого рассчитываются остатки;
k. Игнорировать значения NULL – если установлено, то в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL.
l. «Обязательное» - при выполнении запроса поле с указанным флажком будут присутствовать всегда, даже если не были выбраны в выборке.
7. «Выражение представления» - содержит выражение, которое используется при выводе зна-чений поля в отчет.
Например нужно преобразовать дату в особый формат для этого указываем такое выражение «Формат(ПериодПолугодие,"ДФ = '""Полугодие с"" дд.ММ.гггг""'")» или ссылку на документ преобразовать к произвольному виду: ««Дата: »+Ссылка.Дата+«Номер: »+Ссылка.Номер».
8. «Выражение упорядочивания» - как упорядочивать это поле. При редактировании открывается диалог:
В диалоге можно указать, как данное поле упорядочивать. «Выражение» - как упорядочива-ется это поле, «Тип упорядочивания» - «по возрастанию» или «по убыванию», «Необходи-мость автоупорядочивания» – автоматическое определение полей, по которым необходимо упорядочивать результат компоновки данных.
9. «Проверка иерархии» - используется, в случае если нужно формировать нестандартные отборы.
a. «Набор данных» – набор данных для проверки иерархии;
b. «Параметр» – параметр, в который будет подставляться значение, для которого нужно получить дочерние элементы;
10. «Тип значения» - уточнение типа значения поля набора данных, полезно использховать для уточнения полей составного типа
11. «Оформление» - параметры оформления поля набора данных. При редактировании открывается диалог:
Можно задавать следующие параметры:
Цвет фона - Определяет цвет фона в ячеках
Цвет текста - Определяет цвет текст в ячейках
Цвет в диаграмме - Определяет цвет линий в диа-грамме
Цвет границы - Цвет линий границы
Стиль границы - Типы линий границы
Стиль границы слева - слева
Стиль границы сверху - сверху
Стиль границы справа - справа
Стиль границы снизу - снизу
Шрифт - Вид шрифта, толщина, наклон и т.д.
Отступ - Количество знаков отступа
Авто отступ - Количество знаков отступа, применяется в группировках
Горизонтальное положение - Положение текста в ячейке по горизонтали
Вертикальное положение - Положение текста в ячейке по вертикале
Размещение - Размещение текста который не помещается в ячейку
Ориентация текста - Ориентация текст в градусах (90-поворот перпендикулярно)
Формат - Форматная строка значения
Выделять отрицательные - Признак того чтобы выделять отрицательные значения
Минимальная ширина - Минимальная ширина ячейки в пунктах
Минимальная высота - Минимальная высота ячеки
Максимальная высота - Максимальная высота
Текст - Текст который выводится вместо значения
Далее, эти параметры используются для настройки условного оформления при выводе полей в отчет.
Кроме элементов полей в описании могут присутствовать папки, которые служат для организации расположения полей в доступных полях.
Для того чтобы поместить поле в папку, нужно создать папку, например «Отбор», далее для полей помещаемых в папку указать путь через точку: «Отбор.Организация», «Отбор.Подразделения». После этого в доступных полях при настройке мы увидим папку, содержащую указанные нами элементы.