Привилегированные отчеты

29.01.24

Администрирование - Роли и права

Расширение позволяет настроить для пользователей выполнение отчетов в привилегированном режиме. 1) Убирает тормоза формирования отчета, возникающие при наложении прав пользователя на запросы отчета; 2) Позволяет обойти ошибки формирования отчета из-за отсутствия прав на часть объектов у пользователя.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
(Устарел) Расширение: Привилегированные отчеты (версия 23.01.2022)
.cfe 32,96Kb
3 2 750 руб. Купить
Расширение: Привилегированные отчеты (версия 25.01.2022)
.cfe 33,11Kb
38 3 050 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Для чего это расширение:

1) Многие знают, что если "элитный" пользователь работает с ролью "Полные права", то все его операции в базе 1С выполняются по времени значительно быстрее, чем у пользователей, которые работают с наборами ролей. Это связано с тем, что платформа 1С при выполнении запросов навешивает на него подзапросы прав доступа, тем самым утяжеляя и увеличивая время выполнения. Т.е. если вы, например, админ 1С, работающий под полными правами, то запрос в отчете "А" на получение данных выполняется в кратчайшие сроки и в минимальном виде (считаем, что к серверу отправляется запрос практически таким, как написан в коде конфигуратора), но если вы один из пользователей, права которых заданы через профили, содержащие наборы ролей, то к этому же запросу отчета "А" платформой 1С навешиваются подзапросы прав на каждый реквизит и его тип (в итоге к серверу отправляется огромный расширенный текст запроса, утяжеленный подзапросами прав на используемые реквизиты и типы объектов, особенно тяжело это выглядит для составных типов. Не зря же советуют в запросах использовать Выразить(....КАК...)).

2) Многие также наталкиваются на ситуацию ошибки формирования отчета из-за нехватки прав пользователя на часть объектов, к которыми идет запрос чтения данных. При этом копаться в журнале регистрации (а там по факту можно найти информацию на какой объект идет отказ в праве), а затем найти подходящую роль на этот объект в базе 1С и назначить её пользователю, не всегда получается (бывает нет такой роли или она дает дополнительные права, которые избыточны для пользователя). Но отчет пользователю всё-таки дать нужно.

Вот для таких 2ух ситуаций данное расширение и можно применить:

  • Ускорить вывод отчета
  • Игнорировать ошибки прав доступа

Из чего состоит и как работает расширение:

Расширение состоит из

  • Перехвата события фонового выполнения операций ОбщийМодуль.ДлительныеОперации.ВыполнитьВФоне
  • Справочника Имена фоновых операций (расширение), который заполняется автоматически системой при выполнении процедуры, которая привязана к объему метаданных. (Т.е. вам нужно 1 раз запустить отчет и процедура, автоматически появится в справочнике)
  • Регистра сведений Привилегированные операции (расширение), в котором задается комбинация {Пользователь, Объект, Имя процедуры, Включен привилегированный режим} позволяющая персонифицировать подключение привилегированного режима для всех (Пользователя оставляем пустым) либо конкретному пользователю, к конкретному отчету. 

Рис.1 Справочник фоновых процедур

НАВИГАЦИОННАЯ ССЫЛКА: e1cib/list/Справочник.по_ИменаФоновыхОпераций

ПРИМЕЧАНИЕ: Справочник заполняется автоматически при выполнении операции

 

Рис.2 Имена отчетов и фоновых процедур c привилегированным режимом выполнения 

 

НАВИГАЦИОННАЯ ССЫЛКА: e1cib/list/РегистрСведений.по_ПривилегированныеОперации

ПРИМЕЧАНИЕ: Здесь в примере отчет Выпуск продукции выполняется в привилегированном режиме для пользователя Экономист производства, а отчет Продажи (он же Валовая прибыль) выполняется для всех в привилегированном режиме (т.к. Пользователь не указан).

 

Рис.3 Код общих модулей

 

&Вместо("ВыполнитьВФоне")
Функция по_ВыполнитьВФоне(Знач ИмяПроцедуры, Знач ПараметрыПроцедуры, Знач ПараметрыВыполнения)
	
	Если по_ДлительныеОперации.ОбработатьФоновуюОперацию(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения) Тогда
		УстановитьПривилегированныйРежим(Истина);
	КонецЕсли;
	
	Результат = ПродолжитьВызов(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения);
	
	Возврат Результат;
	
КонецФункции
Функция ОбработатьФоновуюОперацию(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения) Экспорт
	
	ВозвращаемоеЗначение = Ложь;
	
	УстановитьПривилегированныйРежим(Истина);
	
	Если ЗначениеЗаполнено(ИмяПроцедуры) И ТипЗнч(ПараметрыПроцедуры) = Тип("Структура") Тогда
		
		//Ищем владельца операции
		Владелец = Неопределено;
		
		Для Каждого Эл_ПараметрыПроцедуры Из ПараметрыПроцедуры Цикл 
			Если (ТипЗнч(Эл_ПараметрыПроцедуры.Значение) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных")
				ИЛИ ТипЗнч(Эл_ПараметрыПроцедуры.Значение) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений")) Тогда
				Если ЗначениеЗаполнено(Эл_ПараметрыПроцедуры.Значение) Тогда
					Владелец = Эл_ПараметрыПроцедуры.Значение;
					Если Справочники.по_ИменаФоновыхОпераций.НайтиПоРеквизиту("ИмяПроцедуры", ИмяПроцедуры, , Владелец).Пустая() Тогда
						//Добавляем операцию в справочник
						Нов_Об = Справочники.по_ИменаФоновыхОпераций.СоздатьЭлемент();
						Нов_Об.Владелец = Владелец;
						Нов_Об.ИмяПроцедуры = ИмяПроцедуры;
						Нов_Об.Записать();
					КонецЕсли;
					Прервать;
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
		
		Если ЗначениеЗаполнено(Владелец) Тогда
			//Проверяем включен ли привелигированный режим для {объект, пользователь, процедура}
			Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
								  //1. Приоритетной является персональная настройка
			                      |	Таб.Включен КАК Включен
			                      |ИЗ
			                      |	РегистрСведений.по_ПривилегированныеОперации КАК Таб
			                      |ГДЕ
			                      |	Таб.Пользователь = &Пользователь
			                      |	И Таб.Объект = &Объект
			                      |	И Таб.Операция.ИмяПроцедуры = &ИмяПроцедуры
			                      |	И Таб.Включен
			                      |
			                      |ОБЪЕДИНИТЬ ВСЕ
			                      |
			                      |ВЫБРАТЬ ПЕРВЫЕ 1
								  //2. Общая настройка менее приоритетна (например, если персональная настройка выключена, а общая - включена, то у пользователя будет выключен привилегированный режим)
			                      |	Таб.Включен
			                      |ИЗ
			                      |	РегистрСведений.по_ПривилегированныеОперации КАК Таб
			                      |ГДЕ
			                      |	Таб.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
			                      |	И Таб.Объект = &Объект
			                      |	И Таб.Операция.ИмяПроцедуры = &ИмяПроцедуры
			                      |	И Таб.Включен");
			
			Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
			Запрос.УстановитьПараметр("Объект", Владелец);
			Запрос.УстановитьПараметр("ИмяПроцедуры", ИмяПроцедуры);
			Выборка = Запрос.Выполнить().Выбрать();
			Если Выборка.Следующий() Тогда
				ВозвращаемоеЗначение = Выборка.Включен; //Привилегированный режим одобряем (по приоритету: перс. настройка выше общей)
			КонецЕсли;
		КонецЕсли;
		
	КонецЕсли;	

	Возврат ВозвращаемоеЗначение;
	
КонецФункции

Проверка работоспособности в конфигурациях:

Работа расширения успешно проверена на платформе 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С?
 
 Другие публикации автора

Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами.

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.15.103
  • 1С:Комплексная автоматизация 2, релизы 2.5.15.103

Привилегированный режим выполнения отчетов

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    196421    1085    409    

1006

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    15555    66    33    

84

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    14273    61    8    

90

Роли и права Системный администратор Программист 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Бухгалтерия автономного учреждения 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 27.03.2023, версия 1.9)

16800 руб.

21.03.2022    17068    27    54    

49

Роли и права Системный администратор Бухгалтер Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    6927    11    6    

15

Ценообразование, анализ цен Роли и права Системный администратор 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С:УНФ 1.6 и 3.0. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

3000 руб.

23.02.2018    61599    173    264    

164

Роли и права Системный администратор 1С v8.3 1С:Документооборот Управленческий учет Платные (руб)

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

3500 руб.

23.10.2015    64840    117    25    

130
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2496 24.01.22 14:46 Сейчас в теме
Богатая задумка )
sapervodichka; +1 Ответить
2. sapervodichka 6974 24.01.22 14:49 Сейчас в теме
(1) да ))) там если честно, не только отчеты можно перехватывать, а все фоновые операции, просто пока для отчетов пригодилось
fatman78; RustIG; +2 Ответить
3. Yashazz 4856 25.01.22 08:26 Сейчас в теме
Извини, пожалуйста, но за такое минусовать надо. Это ведь, по сути, перечёркивает половину смысла ограничений прав доступа. Эдаким манером люди в отчётах увидят то, что видеть не должны согласно своим правам. Дыра в безопасности, обезьяна с гранатой и утечка данных. РЛС и так путаница известная, да плюс ограничения по группам пользователей, да ещё твой регистр - каша же будет неимоверная, концов не найти, даже если посадить адекватного человека постоянно этим рулить. Для разового "нельзя, но очень горит" такие навороты излишни, а если подобное требуется постоянно, значит, нелады с самим разделением прав. А если ты просто хотел убыстрить тем, кому разрешено, так это и проще сделать можно, без регистра.
Ну и непонятки с расшифровкой могут возникать, когда видит око, да зуб неймёт.

Я похожее делал на 8.1 и быстро убедился, что получаются постоянные адские грабли.
Andreyyy; triviumfan; asupsam; dabu-dabu; AZel84; logarifm; nyam-nyam; G_116449793522595596167; mikl79; zqzq; +10 Ответить
4. booksfill 25.01.22 09:58 Сейчас в теме
(3) Есть регистр, доступный небожителям, скажем, там лежат индивидуальные планы продаж с хитро рассчитанными суммами, которые не должен видеть даже тот, к кому этот план относится. Желательно, чтобы никто из непосвященных про это регистр и не знал.
Никаких RLS - просто нет прав на регистр, даже на чтение.

И все отлично работает, пока не появляется отчет "продажи по менеджерам", но туда должны попадать только те менеджеры, кто указан в этом регистре на текущий месяц.

Добраться ни через какие точки, изменения отчета, к этому регистру не получится, в итоговые данные попадают только менеджеры.

А теперь вопрос - чем грозит выполнение такого отчета в привилегированном режиме (если, разумеется, отключить возможность подмены самого отчета)?

Что можно сделать? Да много чего - например, хранить нужные данные в другом регистре, выполнять запрос в привилегированном режиме, данные помещать в табл. значений и уже по ней строить отчет, применить подход "apple и 1С" - вы не получите этот отчет, т.к. вам это не надо.

Как-то кривенько получается, где-то на том же уровне, что и "мы не добавим вам wait и sleep", т.к. вам это не надо, а если надо, то есть минимум 5 способов для извращенцев, и, вообще, отстаньте, мы вот тут еще одну кривую диаграмму лучше добавим в СКД.
Altez; quazare; +2 Ответить
6. sapervodichka 6974 25.01.22 11:34 Сейчас в теме
(3) Привет, Яков, в приёме лекарств нужен взвешенный подход )) за критику тебе в очередной раз Спасибо. Правда, что на чаше весов риски и пользу надо всегда взвешивать, перед принятием решения о том что можно и что нельзя применять. Ведь 90% контента сайта может быть гранатой в руке макаки (переносы, групповые обработки и ещё всякие вкусности). Мой контент - шаблоны для мыслящих людей, им я доверяю )))
papche; psa247; Somebody1; +3 Ответить
8. Yashazz 4856 25.01.22 11:59 Сейчас в теме
(6) Я раньше тоже доверял, а потом несколько раз довелось чинить проблемы, связанные с применением решений, взятых на ИС, причём мне люди радостно рассказывали, какие они умнички и молодцы, сами скачали и юзают, а я после смотрел базу и волосы были дыбом...
Решение интересное, но крайне опасное. Не столько даже технически, как идейно. Перечеркнуть типовые принципы доступа и завести свои... Чревато.
9. sapervodichka 6974 25.01.22 12:27 Сейчас в теме
(8) Давай расскажу (немного сумбурно) когда мне помогало: Запускался проект (А), в котором не успевали настроить профили пользователей, и придумали создать на время настройки нормальных профилей, временный МегаПрофиль (в который включили все роли, кроме полных прав и доступа к зарплате) получился такой профиль из 2000 ролей, который дали пользователям. Ну и народ посвященный знает, что наличие таких МегаПрофилей в базе у пользователей к которым он прикреплен, и периодически в целом по базе провоцирует нереальные тормоза. Вот чтобы снять нагрузку на базу у тех у кого пока этот МегаПрофиль был включен подключали привилегированный режим отчетов (кроме отчетов по зарплате, конечно). Другой проект (Б) где у многих пользователей профили были частично настроены, и при выполнении отчета не было прав на какой то тип объекта, находящийся в составе составного типа какого-то реквизита (и оч много ситуаций помноженное на число пользователей) при этом RLS не было, а бизнес уже в базе велся, остановить и просить подождать было не вариант. Быстро через привилегированный режим этим расширением купировал проблему без ущерба к безопасности данных. Потом устранял проблемы в настройках профилей.
dvissarov5; GorkyGorod; AZel84; Somebody1; SeiOkami; Yashazz; RustIG; +7 Ответить
10. sapervodichka 6974 25.01.22 12:43 Сейчас в теме
(9) всегда ситуация в которую попадал, была сложной, и быстро быстро надо сделать чтобы всё работало, а пост фактум уже приходить в нормальное состояние
12. Yashazz 4856 25.01.22 17:45 Сейчас в теме
(10) Как показывает печальная практика, в большинстве случаев сделали, чтоб всё работал, а никакого "пост-фактум приведения в нормальное состояние" не случилось по ну вот совершенно объективным причинам... Нет ничего более постоянного, чем временное. Впрочем, это не умаляет достоинств решения, это лишь демонстрирует главенствующую концепцию, вызвавшую его к жизни.
Дмитрий74Чел; artbear; papche; AZel84; zqzq; +5 Ответить
17. Altez 258 26.01.22 01:30 Сейчас в теме
(12) Если на приведение маятника техдолга в норму торгаш денег пожалел, он совершенно справедливо отдаст с процентами следующему счастливчику, взявшему на себя бремя учета.
Сотрудники госов, получившие внедрение за треть рыночной стоимости разрулят бардак организационно, либо выживут в нём, ибо не выкидывали блокнотов и экселей.
Если ограничивать ЦА энтерпрайзом (относительно малый % пользователей БП3), кому будут желать здоровья будущие спец-консы, пользователи из числа "сам нашел баг - скачал решение - заюзал"?)
20. psa247 21 27.01.22 04:56 Сейчас в теме
(3) Привет! За что минус? За интересный подход и решение? Человек дает инструмент, а что с ним делать - пусть решает каждый самостоятельно. В любом случае, без дополнительных прав в учетной системе такое не провернуть и тут два варианта. 1. Если это действительно нельзя использовать в системе - это не пройдет 2. Гибкое решение проблемы
22. triviumfan 102 31.01.22 21:06 Сейчас в теме
(3) Адекватная критика. Сам хотел ответить, но Яков тут как тут :)
23. Yashazz 4856 01.02.22 09:43 Сейчас в теме
(22) Дык, ёлы-палы) надо ж куда-то негатива зафигачить)
5. quazare 3941 25.01.22 11:03 Сейчас в теме
вообще УстановитьПривилегированныйРежим() - это хорошая "таблетка" от многих проблем с доступом
RustIG; sapervodichka; +2 Ответить
7. sapervodichka 6974 25.01.22 11:54 Сейчас в теме
(5) согласен, это не панацея от всех болезней. Это именно "таблетка" целевая. Надо быть с ней аккуратным и принимать с умом как антибиотики (>_<)
13. Yashazz 4856 25.01.22 17:46 Сейчас в теме
(5) Иногда она не срабатывает. В режимах совместимости с 8.1 и 8.2 для ряда объектов, например. У меня тут на руках случай, когда ролевое ограничение программного или запросного обращения к критерию отбора не лечится методом установки привилегированного режима.
sapervodichka; +1 Ответить
18. sapervodichka 6974 27.01.22 00:21 Сейчас в теме
(13) почтение мастеру!
Прикрепленные файлы:
21. Yashazz 4856 27.01.22 08:49 Сейчас в теме
(18) Ладно тебе стебаться, лучше скажи, что бы ты в такой ситуации предложил.
24. sapervodichka 6974 01.02.22 11:03 Сейчас в теме
(21) предлагаю, избегать таких ситуаций ))
25. Yashazz 4856 08.02.22 12:16 Сейчас в теме
(13) Уже коллектив серьёзного франча сидит-копается, пока не разгадали)
Так что не надейтесь на привилегированный режим, он далеко не всегда вообще работает и даёт эффект.
26. sapervodichka 6974 08.02.22 12:32 Сейчас в теме
(25) Критерий отбора предназначен для отбора данных по определенному признаку, можно написать аналог кодом под конкретную ситуацию.
11. RustIG 1884 25.01.22 16:59 Сейчас в теме
все это "биохакинг 1с" - обожаю :)
19. sapervodichka 6974 27.01.22 00:22 Сейчас в теме
(11) Рустем, да хоре угарать ))) тяп-ляп и готово )))
14. quazare 3941 25.01.22 19:44 Сейчас в теме
ВЫБРАТЬ ПЕРВЫЕ 1
			                     	Таб.Включен КАК Включен
			                      ИЗ
			                      	РегистрСведений.по_ПривилегированныеОперации КАК Таб
			                      ГДЕ
			                      	Таб.Пользователь В (&Пользователь)
			                      	И Таб.Объект = &Объект
			                      	И Таб.Операция.ИмяПроцедуры = &ИмяПроцедуры
			                      	И Таб.Включен
Показать


у меня вопрос - а чего не так написали запрос, если все равно проверяется НЕ Результат.Пустой() (пустой или нет)
sapervodichka; +1 Ответить
15. sapervodichka 6974 25.01.22 20:36 Сейчас в теме
(14) каюсь, спасибо, в это воскресенье со стаканом вина сочинял, сегодня поправлю на Если Выборка.Следующий() Тогда Рез = Выборка.Включен..., т.к. может быть и общая и персональная настройка, а не просто любая
16. sapervodichka 6974 25.01.22 22:50 Сейчас в теме
(15) Дмитрий, ещё раз спасибо, идейно код поправил.
27. user1512564 14.02.22 08:42 Сейчас в теме
Интересно почему когда я ставлю привилегированный режим перед выполнением отчета или запроса, данные на которых поставлен запрет по РЛС все равно не читаются.
М.б дело в режиме совместимости (работа на старой версии УТ 10.3 на платформе 8.3.12), а может в чем-то другом
28. sapervodichka 6974 14.02.22 11:34 Сейчас в теме
(27) перед выполнением отчета, это что за место в коде?
29. user1512564 15.02.22 11:40 Сейчас в теме
(28)Проверил, УстановитьПривилегированныйРежим работает в серверном модуле и в управлемой форме в конфигурации, в остальных местах, включая толстого клиента, в том числе и в отчете, не работает, может оно и к лучшему)
sapervodichka; +1 Ответить
30. sapervodichka 6974 15.02.22 11:55 Сейчас в теме
(29) при формировании отчетов там вилка есть в фоновом задании выполнять или на клиенте, в толстом клиенте - вероятно по другой ветке идет выполнение (не фоновым заданием)
37. Mx00 250 20.08.23 22:53 Сейчас в теме
(30) Вот я видимо на эту проблему наткнулся, ситуация должна быть штатная ЗиКГУ КОРП, РЛС по Организации и физическим лицам, бухгалтер филиала, соответственно все права есть, документы может делать любые, но регламентированный отчет статистика Форма-П4 пишет "Не удалось выполнить автозаполнение..."
добавил УстановитьПривилегированныйРежим(Истина); в процедуру ДлительныеОперации.ВыполнитьВФоне
в режиме отладки под пользователем бухгалтера отчет формируется, а без режима отладки ошибка остаётся
я с таким первый раз столкнулся, что при отладке один процесс, а без неё другой
прошу надоумить меня как в такой ситуации "отлаживать" и как УстановитьПривилегированныйРежим на "рабочий режим"
31. Sharloc 96 10.06.22 17:33 Сейчас в теме
У данного решения есть два "минуса":
1. Не работает с дополнительными отчетами
2. Если на этапе инициализации набора данных есть таблицы, к которым нет доступа, тоже не поможет. Отчет просто не запустится.
32. sapervodichka 6974 10.06.22 18:03 Сейчас в теме
(31) Тут мне захотелось так, через фоновые вызовы (для доп. отчетов они вроде тоже работали). Но если по встроенным отчетам и по дополнительным отчетам нужен пример, то вот я делал в другом проекте. Ниже код для привилегированного выполнения доп. отчетов и отчетов. Его необходимо вставить в расширение перехватив ОбщуюФорму.ФормаОтчета и прописав там нужные отчеты
&НаСервере
&Вместо("РезультатФормированияОтчета")
Функция привилегия_РезультатФормированияОтчета(Знач ФормированиеПриОткрытии, Непосредственно)
	
	Если ЗначениеЗаполнено(ЭтотОбъект.НастройкиОтчета) 
		И ЗначениеЗаполнено(ЭтотОбъект.НастройкиОтчета.ОтчетСсылка)
		И ТипЗнч(ЭтотОбъект.НастройкиОтчета.ОтчетСсылка) <> Тип("Строка") Тогда
		
		Если ТипЗнч(ЭтотОбъект.НастройкиОтчета.ОтчетСсылка) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
			пИмяОтчета = ЭтотОбъект.НастройкиОтчета.ОтчетСсылка.ИмяОбъекта;
		Иначе	
			пИмяОтчета = ЭтотОбъект.НастройкиОтчета.ОтчетСсылка.ПолноеИмя;
		КонецЕсли;
		
		Если пИмяОтчета = "Отчет.MTVDSEReport" //MTVDSEReport
			ИЛИ пИмяОтчета = "Отчет.ПланФактныйАнализПродажEng" //Sales report
			ИЛИ пИмяОтчета = "ПроизводственныеЗатратыПоПартиямПроизводства"
			ИЛИ пИмяОтчета = "рздАнализСебестоимостиВыпущеннойПродукции"
			Тогда
			
			УстановитьПривилегированныйРежим(Истина);
			Результат = ПродолжитьВызов(ФормированиеПриОткрытии, Истина);
			Возврат Результат;
			
		КонецЕсли;
		
	КонецЕсли; 
	
	Результат = ПродолжитьВызов(ФормированиеПриОткрытии, Непосредственно);
	
	Возврат Результат;
	
КонецФункции
Показать
Прикрепленные файлы:
38. romankoav 4 27.09.23 20:14 Сейчас в теме
(32)Так не работает. Валится с ошибкой в Модуле ВариантыОтчетовКлиент.ОткрытьФормуОтчета

Недостаточно прав для работы с таблицей "тут имя таблицы"
1С:ERP Управление предприятием 2 (2.5.12.102)
Модуль клиентский, соответственно Установить привилегированный режим нельзя
41. sapervodichka 6974 27.09.23 22:03 Сейчас в теме
(38) См. на картинке вызов другого метода идет!, в Клиенте ясно что Привилегированный режим не ставится (читаем справку), а только &НаСервере
33. Sharloc 96 10.06.22 18:17 Сейчас в теме
Спасибо, попробую. А с инициализацией набора данных как бороться? Если в запросе идет обращение к таблице, к которой у текущего пользователя нет доступа.
34. sapervodichka 6974 10.06.22 18:24 Сейчас в теме
(33) Если это что-то типа такого, то аналогично событие перехватить в расширение и там установить привилегированный режим пользователю (кому конкретно можно код заимствовать из этого расширения, там разрешения в регистре сведений хранятся)
Прикрепленные файлы:
35. Alex17 7 21.07.22 10:28 Сейчас в теме
Спасибо большое, попробовал на ЗУП 3.1 КОРП процедура длительные операции/выполнить в фоне как у БУХ 3.0 КОРП. Установка привилегированного режима помогает.
sapervodichka; +1 Ответить
36. NorraSaltolinen 26.10.22 16:04 Сейчас в теме
что-то не совсем понимаю. отчет выполняемый в фоне выполняется фоновым заданием, привилегированный режим фоновым заданием не наследуется же.
как это должно работать?
39. romankoav 4 27.09.23 21:07 Сейчас в теме
У кого-то есть все таки идеи как сделать привилегированный режим для внешних отчетов? У меня внешний отчет для хранения своих вариантов использует справочник "ВариантыОтчетов" и данное расширение не решает проблему. Зря стартмани только потратил...
40. sapervodichka 6974 27.09.23 22:00 Сейчас в теме
(39) давай в бан тогда, если не умеешь общаться, в комментарии № (32) дан полный ответ с картинкой
42. user804239 20.06.25 11:02 Сейчас в теме
Вариант для стандартных отчетов БП3 - в Менеджере отчета , в процедуре ПолучитьПараметрыИсполненияОтчета() в структуру "Реультат" добавляем флаги Результат.Вставить("ИспользоватьПривилегированныйРежим", Истина);
Результат.Вставить("ИнициализацияВПривилегированномРежиме",Истина);
Оставьте свое сообщение