0. Rioneri 57 18.08.15 23:46 Сейчас в теме

Консоль запросов RLS

Поставка включает в себя конфигурацию, внешнюю обработку и файл описания в формате pdf (приведенный ниже).
Консоль можно использовать при анализе текста запроса RLS, который будет выполнен к данным под конкретным пользователем.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. BigClock 24.08.15 10:55 Сейчас в теме
Несколько вопросов.
1. Чем отличается от http://infostart.ru/public/264989/
2. Можно ли адаптировать эту консоль для 8.3.5 или даже 8.2?
3. Можно ли адаптировать под выгрузку команды "Выгрузить файлы конфигурации"?
При использовании команды "Выгрузить конфигурацию в файлы" выгружается вся конфигурация,
а при использовании "Выгрузить файлы конфигурации" можно самому выбрать выгружаемые объекты.
ivanov660; +1 Ответить
2. Rioneri 57 24.08.15 22:54 Сейчас в теме
(1) BigClock,
1. Судя по описанию, в http://infostart.ru/public/264989/ разбирается текст шаблона с подстановкой параметров, а здесь - текст ограничения доступа, в котором шаблоны могут как присутствовать так и нет (также шаблонов может быть несколько), также здесь представлена конфигурация, а не внешняя обработка (это более удобно в ряде случаев);
2. Адаптировать под предшествующие версии можно, если переопределить СтрНайти();
3. Адаптировать под "Выгрузить файлы конфигурации" можно минимальными усилиями. Со стороны прав доступа выгружаемые конфигуратором файлы схожи.

P.S. Немного посмотрел на http://infostart.ru/public/264989/ оставил пару комментариев
3. kasper076 48 25.08.15 08:27 Сейчас в теме
1С:Предприятие 8.3 (8.3.6.2076)

Все заполнил согласно инструкции.
Вот что выходит при выборе "Поля ограничения доступа":


Ну и соответственно поле "Ограничение доступа" тоже не заполнено.
Что я делаю не так?
4. Rioneri 57 25.08.15 21:23 Сейчас в теме
(3) kasper076,
Всё так. Просто из БП 2.0 загрузилось не очень красиво (сам применял для ERP). При выборе из справочника "Поля ограничения доступа" нужно подобрать правильный элемент. Сделать это можно по коду элемента справочника, а код посмотреть с помощью регистра сведений «ограничения доступа».

http://imhocloud.com/image/7XSO

После выбора программа определить текст ограничения доступа, которое соответствует данному отбору.

http://imhocloud.com/image/7XSp
5. kasper076 48 25.08.15 22:05 Сейчас в теме
(4) спасибо. Направление ясно.
6. kasper076 48 26.08.15 09:51 Сейчас в теме
Вот вариант обработки для обычных форм версий 8.3.5 и младше. Переопределена функция "СтрНайти()":
Функция СтрНайти(Знач Строка, ПодстрокаПоиска, НаправлениеПоиска = Неопределено, НачальнаяПозиция = 1, НомерВхождения = 1)
	
	Строка			= ВРег(Строка);
	ПодстрокаПоиска	= Врег(ПодстрокаПоиска);
	
	Заглушка = "";
	ДлинаПодстроки	= СтрДлина(ПодстрокаПоиска);
	
	Для Инд = 1 По ДлинаПодстроки Цикл
		Заглушка = Заглушка + " ";
	КонецЦикла;
	
	Для Инд = 1 По НомерВхождения - 1  Цикл
		Позиция = Найти(Строка, ПодстрокаПоиска);
		Строка = Сред(Строка, 1, Позиция - 1) + Заглушка + Сред(Строка, Позиция + ДлинаПодстроки); 
	КонецЦикла;
	
	Возврат Найти(Строка, ПодстрокаПоиска);
	
КонецФункции	
Показать

Испугавшись праведного гнева гуру 1С, переписал с использованием регулярных выражений:
Функция СтрНайти(Знач Строка, ПодстрокаПоиска, НаправлениеПоиска = Неопределено, НачальнаяПозиция = 1, НомерВхождения = 1)
	
	RegExp = Новый COMОбъект("VBScript.RegExp");// создаем объект для работы с регулярными выражениями
	RegExp.MultiLine	= Истина;			// истина — текст многострочный, ложь — одна строка
	RegExp.Global		= Истина;			// истина — поиск по всей строке, ложь — до первого совпадения
	RegExp.IgnoreCase	= Истина;			// истина — игнорировать регистр строки при поиске
	Шаблон				= ПодстрокаПоиска;	//шаблон проверки 
	RegExp.Pattern		= Шаблон;    		// шаблон (регулярное выражение)
	Кол_воВхождений		= RegExp.Execute(Строка);
	Позиция = Кол_воВхождений.Item(НомерВхождения - 1).FirstIndex + 1;	
	
	Возврат Позиция;
	
КонецФункции	
Показать
Прикрепленные файлы:
ФормированиеТекстаЗапросаRLS_8_2.epf
defini; Леонов Александр; hdv; dyuha; Rioneri; +5 Ответить
7. premierex 28.08.15 08:08 Сейчас в теме
(6) kasper076, а вот так разве не проще?
Функция СтрНайти(Знач Строка, ПодстрокаПоиска, НаправлениеПоиска = Неопределено)
    Возврат Найти(Строка, ПодстрокаПоиска);
КонецФункции    


Вот описание возвращаемого значения функции Найти()

Тип: Число.
Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0.
9. kasper076 48 29.08.15 22:13 Сейчас в теме
(7) premier, проще... Если, конечно, нужно найти первое вхождение. А если, к примеру, 3-е?
11. premierex 02.09.15 13:58 Сейчас в теме
(9) kasper076, согласен, если требуется необходимое по счёту вхождение найти.
Тогда следует ещё проверку ввести чтобы Кол_воВхождений.SubMatches.Count не оказалось меньше, чем НомерВхождения, иначе функция в исключение вылетит (если уж, испугавшись праведного гнева гуру 1С, писать :)).
kasper076; +1 Ответить
13. kasper076 48 03.09.15 12:49 Сейчас в теме
(11) premier, вот знал же, что гуру найдут к чему придраться )))) Пасиб. Исправлю обязательно.
12. premierex 02.09.15 14:41 Сейчас в теме
(9) kasper076, наврал немного: вместо Кол_воВхождений.SubMatches.Count следует использовать Кол_воВхождений.Count
8. alex_4x 81 28.08.15 18:07 Сейчас в теме
Вот это вещь!
Обязательно внимательно ознакомлюсь.
Для толстого клиента 8.2 уже не делаете?
10. kasper076 48 31.08.15 08:35 Сейчас в теме
Адаптировал под 8.3.4 Думаю и на 8.2 будет работать. Добавил отборы в форме "Консоль запросов". Терь если конфигураций несколько, то чуток удобнее заполнять настройки. Постараюсь еще под обычные формы переделать.
P.S. Автору еще раз спасибо. и за проделанную работу, и за знания полученные в процессе изучения этого продукта.
Прикрепленные файлы:
RLS_upd.cf
14. kalyaka 520 30.12.15 11:30 Сейчас в теме
Прошу автора выложить материалы в zip архиве, т.к. файл с расширением .exe не пропускают программы защиты
15. rygov 23.03.16 18:43 Сейчас в теме
Видимо в 8.3.7 поменяли структуры выгрузки конфигурации - надо исправить строку:
НачатьПоискФайлов(Новый ОписаниеОповещения("ОбработчикЗагрузкиФайлов", ЭтотОбъект, ПараметрыЗагрузки), Объект.КаталогВыгрузки, "Role.*Rights.xml");

на
НачатьПоискФайлов(Новый ОписаниеОповещения("ОбработчикЗагрузкиФайлов", ЭтотОбъект, ПараметрыЗагрузки), Объект.КаталогВыгрузки, "Rights.xml",Истина);
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Белгород
зарплата от 50 000 руб. до 60 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 50 000 руб. до 80 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день