Привилегированные отчеты [Infostart]
Расширение позволяет настроить для пользователей выполнение отчетов в привилегированном режиме. 1) Убирает тормоза формирования отчета, возникающие при наложении прав пользователя на запросы отчета; 2) Позволяет обойти ошибки формирования отчета из-за отсутствия прав на часть объектов у пользователя.
Для чего это расширение:
1) Многие знают, что если "элитный" пользователь работает с ролью "Полные права", то все его операции в базе 1С выполняются по времени значительно быстрее, чем у пользователей, которые работают с наборами ролей. Это связано с тем, что платформа 1С при выполнении запросов навешивает на него подзапросы прав доступа, тем самым утяжеляя и увеличивая время выполнения. Т.е. если вы, например, админ 1С, работающий под полными правами, то запрос в отчете "А" на получение данных выполняется в кратчайшие сроки и в минимальном виде (считаем, что к серверу отправляется запрос практически таким, как написан в коде конфигуратора), но если вы один из пользователей, права которых заданы через профили, содержащие наборы ролей, то к этому же запросу отчета "А" платформой 1С навешиваются подзапросы прав на каждый реквизит и его тип (в итоге к серверу отправляется огромный расширенный текст запроса, утяжеленный подзапросами прав на используемые реквизиты и типы объектов, особенно тяжело это выглядит для составных типов. Не зря же советуют в запросах использовать Выразить(....КАК...)).
2) Многие также наталкиваются на ситуацию ошибки формирования отчета из-за нехватки прав пользователя на часть объектов, к которыми идет запрос чтения данных. При этом копаться в журнале регистрации (а там по факту можно найти информацию на какой объект идет отказ в праве), а затем найти подходящую роль на этот объект в базе 1С и назначить её пользователю, не всегда получается (бывает нет такой роли или она дает дополнительные права, которые избыточны для пользователя). Но отчет пользователю всё-таки дать нужно.
Вот для таких 2ух ситуаций данное расширение и можно применить:
Ускорить вывод отчета
Игнорировать ошибки прав доступа
Из чего состоит и как работает расширение:
Расширение состоит из
Перехвата события фонового выполнения операций ОбщийМодуль.ДлительныеОперации.ВыполнитьВФоне
Справочника Имена фоновых операций (расширение), который заполняется автоматически системой при выполнении процедуры, которая привязана к объему метаданных. (Т.е. вам нужно 1 раз запустить отчет и процедура, автоматически появится в справочнике)
Регистра сведений Привилегированные операции (расширение), в котором задается комбинация {Пользователь, Объект, Имя процедуры, Включен привилегированный режим} позволяющая персонифицировать подключение привилегированного режима для всех (Пользователя оставляем пустым) либо конкретному пользователю, к конкретному отчету.
Рис.1 Справочник фоновых процедур
ПРИМЕЧАНИЕ: Справочник заполняется автоматически при выполнении операции
Рис.2 Имена отчетов и фоновых процедур c привилегированным режимом выполнения
ПРИМЕЧАНИЕ: Здесь в примере отчет Выпуск продукции выполняется в привилегированном режиме для пользователя Экономист производства, а отчет Продажи (он же Валовая прибыль) выполняется для всех в привилегированном режиме (т.к. Пользователь не указан).
Работа расширения успешно проверена на платформе 1С:Предприятие 8.3 (8.3.18.1520) в конфигурациях:
1С:ERP Управление предприятием 2 (2.4.11.91, 2.5.7.201)
Расширение использует универсальные механизмы, общие для многих продуктов 1С, поэтому может быть подключено к разным продуктам 1С (БП, УТ, КА, УХ и т.п.) либо доработано с минимальными затратами (пишите мне в личку). Конфигурация продукта 1С должна быть построена на базе БСП (Библиотеки стандартных подсистем, входит в типовые конфигурации 8.3) и содержать следующие объекты:
ОбщийМодуль.ДлительныеОперации
Справочник.Пользователи
Справочник.ИдентификаторыОбъектовМетаданных
Справочник.ИдентификаторыОбъектовРасширений
Режим совместимости расширения от Версия 8.3.12.
продажник
Расширение позволяет настроить для пользователей выполнение отчетов в привилегированном режиме. 1) Убирает тормоза формирования отчета, возникающие при наложении прав пользователя на запросы отчета; 2) Позволяет обойти ошибки формирования отчета из-за отсутствия прав на часть объектов у пользователя.
Для чего это расширение:
1) Многие знают, что если "элитный" пользователь работает с ролью "Полные права", то все его операции в базе 1С выполняются по времени значительно быстрее, чем у пользователей, которые работают с наборами ролей. Это связано с тем, что платформа 1С при выполнении запросов навешивает на него подзапросы прав доступа, тем самым утяжеляя и увеличивая время выполнения. Т.е. если вы, например, админ 1С, работающий под полными правами, то запрос в отчете "А" на получение данных выполняется в кратчайшие сроки и в минимальном виде (считаем, что к серверу отправляется запрос практически таким, как написан в коде конфигуратора), но если вы один из пользователей, права которых заданы через профили, содержащие наборы ролей, то к этому же запросу отчета "А" платформой 1С навешиваются подзапросы прав на каждый реквизит и его тип (в итоге к серверу отправляется огромный расширенный текст запроса, утяжеленный подзапросами прав на используемые реквизиты и типы объектов, особенно тяжело это выглядит для составных типов. Не зря же советуют в запросах использовать Выразить(....КАК...)).
2) Многие также наталкиваются на ситуацию ошибки формирования отчета из-за нехватки прав пользователя на часть объектов, к которыми идет запрос чтения данных. При этом копаться в журнале регистрации (а там по факту можно найти информацию на какой объект идет отказ в праве), а затем найти подходящую роль на этот объект в базе 1С и назначить её пользователю, не всегда получается (бывает нет такой роли или она дает дополнительные права, которые избыточны для пользователя). Но отчет пользователю всё-таки дать нужно.
Вот для таких 2ух ситуаций данное расширение и можно применить:
Ускорить вывод отчета
Игнорировать ошибки прав доступа
Из чего состоит и как работает расширение:
Расширение состоит из
Перехвата события фонового выполнения операций ОбщийМодуль.ДлительныеОперации.ВыполнитьВФоне
Справочника Имена фоновых операций (расширение), который заполняется автоматически системой при выполнении процедуры, которая привязана к объему метаданных. (Т.е. вам нужно 1 раз запустить отчет и процедура, автоматически появится в справочнике)
Регистра сведений Привилегированные операции (расширение), в котором задается комбинация {Пользователь, Объект, Имя процедуры, Включен привилегированный режим} позволяющая персонифицировать подключение привилегированного режима для всех (Пользователя оставляем пустым) либо конкретному пользователю, к конкретному отчету.
Рис.1 Справочник фоновых процедур
ПРИМЕЧАНИЕ: Справочник заполняется автоматически при выполнении операции
Рис.2 Имена отчетов и фоновых процедур c привилегированным режимом выполнения
ПРИМЕЧАНИЕ: Здесь в примере отчет Выпуск продукции выполняется в привилегированном режиме для пользователя Экономист производства, а отчет Продажи (он же Валовая прибыль) выполняется для всех в привилегированном режиме (т.к. Пользователь не указан).
Работа расширения успешно проверена на платформе 1С:Предприятие 8.3 (8.3.18.1520) в конфигурациях:
1С:ERP Управление предприятием 2 (2.4.11.91, 2.5.7.201)
Расширение использует универсальные механизмы, общие для многих продуктов 1С, поэтому может быть подключено к разным продуктам 1С (БП, УТ, КА, УХ и т.п.) либо доработано с минимальными затратами (пишите мне в личку). Конфигурация продукта 1С должна быть построена на базе БСП (Библиотеки стандартных подсистем, входит в типовые конфигурации 8.3) и содержать следующие объекты:
ОбщийМодуль.ДлительныеОперации
Справочник.Пользователи
Справочник.ИдентификаторыОбъектовМетаданных
Справочник.ИдентификаторыОбъектовРасширений
Режим совместимости расширения от Версия 8.3.12.
продажник
Для просмотра скрытого содержимого необходимо Войти или Зарегистрироваться.