Sh Денис

94
Рейтинг

denacid



  •   Регистрация: 28.09.2007 (16 лет назад)

  •   Был(а) на сайте: 22.04.2024

Друзья
  • Александр Леонов
  • Виталий Иванов
Подписчики 6

Группы

Профессиональный разработчик

Рейтинг 94

Анализатор прав и ролей

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

"Достали!" - именно с такой фразы началась разработка) Все кто сталкивались с последними мега конфигурациями (не будем показывать пальцем на ERP) и видели этот нереальный список ролей, от которого даже скролл дымился, то вам однозначно пригодится эта обработка. Основной целью было дополнить типовой функционал "Все роли" отборами для быстрого поиска нужных доступов. Возможности: просмотр по метаданным список их ролей и прав, просмотр по роли ее список метаданных, просмотр по правам ограничения (RLS).

1 стартмани

02.01.2018    14113    80    denacid    8       

14

Удаление данных напрямую в SQL

Инструменты и обработки Программист Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

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

1 стартмани

08.07.2017    26143    208    denacid    39       

74

Комментарии

ПубликацииНахождение уникальных наборов строк таблицы запросом#50 24.07.23 23:28
(49) Блин, точно, косякнул, так должно быть получше:
Код
ВЫБРАТЬ
   ВходныеДанные.ИД КАК ИД,
   КОЛИЧЕСТВО(*) КАК Число
ПОМЕСТИТЬ ЧислоЧленовВНаборе
ИЗ
   ВходныеДанные КАК ВходныеДанные
СГРУППИРОВАТЬ ПО
   ВходныеДанные.ИД
;

ВЫБРАТЬ
   ВходныеДанные.*,
   ЧислоЧленовВНаборе.Число КАК ЧислоВНаборе
ПОМЕСТИТЬ ВходныеДанныеСЧислом
ИЗ
   ВходныеДанные КАК ВходныеДанные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
   ЧислоЧленовВНаборе КАК ЧислоЧленовВНаборе
ПО
   ВходныеДанные.ИД = ЧислоЧленовВНаборе.ИД   
;

ВЫБРАТЬ
   Вход1.Ид
ПОМЕСТИТЬ Дубли
ИЗ
   ВходныеДанныеСЧислом КАК Вход1
ЛЕВОЕ СОЕДИНЕНИЕ
   ВходныеДанныеСЧислом КАК Вход2
ПО
   Вход1.ИД > Вход2.ИД
   И Вход1.ЧислоВНаборе = Вход2.ЧислоВНаборе
   И Вход1.Значение = Вход2.Значение
СГРУППИРОВАТЬ ПО
   Вход1.Ид,
   Вход1.ЧислоВНаборе,
   Вход2.Ид
ИМЕЮЩИЕ
   Вход1.ЧислоВНаборе = КОЛИЧЕСТВО(Вход2.Значение)
;

ВЫБРАТЬ
   ВходныеДанные.*   
ИЗ
   ВходныеДанные КАК ВходныеДанные
ГДЕ
   НЕ Ид В(ВЫБРАТЬ Дубли.Ид Из Дубли)
ПубликацииНахождение уникальных наборов строк таблицы запросом#48 24.07.23 21:14
Немного упростил для восприятия

Код
ВЫБРАТЬ
   ВходныеДанные.ИД КАК ИД,
   КОЛИЧЕСТВО(*) КАК Число
ПОМЕСТИТЬ ЧислоЧленовВНаборе
ИЗ
   ВходныеДанные КАК ВходныеДанные
СГРУППИРОВАТЬ ПО
   ВходныеДанные.ИД
;

ВЫБРАТЬ
   ВходныеДанные.*,
   ЧислоЧленовВНаборе.Число КАК ЧислоВНаборе
ПОМЕСТИТЬ ВходныеДанныеСЧислом
ИЗ
   ВходныеДанные КАК ВходныеДанные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
   ЧислоЧленовВНаборе КАК ЧислоЧленовВНаборе
ПО
   ВходныеДанные.ИД = ЧислоЧленовВНаборе.ИД   
;

ВЫБРАТЬ
   Вход1.Ид
ПОМЕСТИТЬ Дубли
ИЗ
   ВходныеДанныеСЧислом КАК Вход1
ЛЕВОЕ СОЕДИНЕНИЕ
   ВходныеДанныеСЧислом КАК Вход2
ПО
   Вход1.ИД > Вход2.ИД
   И Вход1.ЧислоВНаборе = Вход2.ЧислоВНаборе
   И Вход1.Значение = Вход2.Значение
СГРУППИРОВАТЬ ПО
   Вход1.Ид,
   Вход2.Ид
ИМЕЮЩИЕ
   КОЛИЧЕСТВО(Вход1.Значение) = КОЛИЧЕСТВО(Вход2.Значение)
;

ВЫБРАТЬ
   ВходныеДанные.*   
ИЗ
   ВходныеДанные КАК ВходныеДанные
ГДЕ
   НЕ Ид В(ВЫБРАТЬ Дубли.Ид Из Дубли)
HighLoad1С и Postgres: первый серьезный опыт борьбы и противостояния, постигаем open source#5 27.02.23 16:29
(1) Герои не носят плащи, герои пишут на СИ)
DevВыбор даты#4 22.07.21 7:42
(3) Нет
UtilsУдаление данных напрямую в SQL#33 26.02.21 20:50
(32) Исправил, спасибо!
DevВыбор даты#0 14.04.19 14:10
Обработка для удобного выбора даты и времени.
ПубликацииАнализатор прав и ролей#5 04.04.18 20:40
(4) Ну если судить по erp, для которой я все это и затеял, то в 99% случаев будет всего 2 роли дающие право: роль позволяющая добавлять/менять и роль позволяющая читать. В большинстве случаев все сводится к проверке всего 1 подозрительной роли, которая и дает расширенные права. И проверить у пользователя наличие такой роли не займет много времени, тем более это не нужно прям так часто. И на моей практике была проблема, которую не решить даже такой обработкой: у пользователя было 2 группы доступа, одна ограничивала организации, другая нет) в итоге вроде бы нет ролей, дающих доп права, но тем не менее доступ открыт на все организации.
ПубликацииАнализатор прав и ролей#3 03.04.18 19:53
(2) Не думаю что это упростит анализ. Все равно выкатится 100500 объектов на которые есть доступ. Тут вдогонку надо бы еще и по правам фильтровать, скажем выкатить список объектов которые можно менять. Но пока что настолько я не планировал расширять функционал. Тем более БСП вроде как уже имеет какие то отчеты по данной теме.
ПубликацииАнализатор прав и ролей#0 31.12.17 20:43
"Достали!" - именно с такой фразы началась разработка)
Все кто сталкивались с последними мега конфигурациями (не будем показывать пальцем на ERP) и видели этот нереальный список ролей, от которого даже скролл дымился, то вам однозначно пригодится эта обработка. Основной целью было дополнить типовой функционал "Все роли" отборами для быстрого поиска нужных доступов.
Возможности: просмотр по метаданным список их ролей и прав, просмотр по роли ее список метаданных, просмотр по правам ограничения (RLS).
UtilsУдаление данных напрямую в SQL#29 15.09.17 19:09
(28) Мой первый вариант реализации отталкивался от удаления по ключам, и как раз была проблема передачи всего это дела на SQL. Использовать техжурнал как то не догадался, может быть и пошел бы этим путем))) ну что сделано то сделано.