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

29.01.24

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

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

Скачать файл

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

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

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

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 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    135906    750    391    

779

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

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    34208    215    89    

173

Роли и права Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 20.02.2024, версия 2.2, расширение)

19200 руб.

29.11.2019    25098    14    8    

35

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

Расширение, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

2520 руб.

21.05.2019    1693425    557    193    

136

Роли и права Системный администратор Программист Платформа 1С v8.3 Управление правами Конфигурации 1cv8 Платные (руб)

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

2000 руб.

03.06.2012    87333    93    70    

228

Роли и права Программист Платформа 1С v8.3 Управляемые формы Управление правами Конфигурации 1cv8 Абонемент ($m)

Доброе время суток. Я как обычно – с интересностями. И в этот раз мы поговорим о такой жуткой штуке – как RLS, генерация расширений на лету, и обратим внимание на одну интересную особенность «Полных прав» и про английский сорцкод. Статья не является «продажной», ибо решение специфическое, кому надо, тот знает, что покупает. Однако, в этой статье я расскажу про кучу тонкостей, с которыми мы столкнулись и как оптимизировали. Так что не забудьте открыть все спойлеры :)

5 стартмани

18.10.2021    26769    273    DitriX    43    

199

HighLoad оптимизация Программист Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Абонемент ($m)

Уважаемые коллеги, здравствуйте! Сегодня хочу поделиться с Вами своими изысканиями на тему записи в регистр сведений в контексте оптимизации одной операции. Однажды мы столкнулись со следующей проблемой: поступили жалобы от разработчиков сайта, что наш веб-сервис очень медленно реагирует, точней, обработка запроса не укладывается в таймаут 5 секунд, и сайт получает ошибку 500. Стали разбираться, и вот что выяснили.

1 стартмани

21.09.2021    17591    0    METAL    57    

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


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