Ограничение на просмотр счетов в стандартных отчетах

0. Вадим Мориков (vadim1011985) 44 19.10.16 20:04 Сейчас в теме
В статье рассматривается организация способа закрытия доступа к счетам учета в стандартных отчетах

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

Комментарии
1. Наталия Киселева (kng67) 11.11.16 09:21 Сейчас в теме
У нас стоит Комплексная автоматизация. Так вот периодически возникающая идея фикс у руководства: "как бы закрыть 70 счет для всех кроме расчетчика и главбуха".
Интересно, подойдет ли ваше решение для нашей конфигурации?
2. Вадим Мориков (vadim1011985) 44 11.11.16 09:57 Сейчас в теме
КА не смотрел , но думаю что немного видоизменив код , решение может подойти и для КА. + немного зависит от версии конфигурации 1.1 или 2.0 (2.2). Если будет время я посмотрю как КА устроена и смогу сказать подойдет ли данное решение.
3. v_id (v_id) 94 13.12.16 15:45 Сейчас в теме
Спасибо за подробную статью!
Выгрузку конфы с новым справочником можно попросить добавить в поставку?

ЗЫ. И поправьте, пожалуйста, характеристику статьи Конфигурация на инфостарте как 1С:Бухгалтерия 3.0, а то параметрическим поиском ее не найти.
4. Вадим Мориков (vadim1011985) 44 13.12.16 16:54 Сейчас в теме
(3) К сожалению, выгрузку со справочником добавить нельзя, так как это целая рабочая конфигурация и модераторы Инфостарта скорее всего не пропустят ее , так как это будет нарушением авторский прав 1с.

Я думаю что добавление справочника в конфу не составит труда. Один реквизит , 2 табличные части - Там нет никакого сверх сложного кода- заполнение таб.частей по плану счетов , и добавление всех пользователей с установкой ограничения на 70 счет. Если нужно код могу выложить

5. rjhev korum (корум) 315 13.12.16 17:00 Сейчас в теме
(4)
(4)
выгрузку со справочником добавить нельзя

Можно.
Удали лишние объекты конфигурации - общие модули, перечисления, документы, вот это всё.
6. Вадим Мориков (vadim1011985) 44 13.12.16 17:07 Сейчас в теме
(5) т..е. практически всю конфигурацию ?

подскажи сколько времени на это уйдет ? Как вариант создать конфу для разработки и туда добавить этот справочник. Но по моему быстрее самому добавить справочник.
7. rjhev korum (корум) 315 13.12.16 17:10 Сейчас в теме
(6) можно наоборот, в пустую конфигурацию перетащить нужные объекты :)

покажи товарищу (3) хотя бы скриншоты, а код можно текстовым файлом прикрепить...
22. anry mc (AnryMc) 714 20.12.16 11:26 Сейчас в теме
(6)
чески всю конфигурацию ?

подскажи сколько времени на это уйдет ?


Зачем? Скопируйте в "пустую" нужное...
8. Вадим Мориков (vadim1011985) 44 13.12.16 20:12 Сейчас в теме
(3) (7) по просьбам трудящихся добавил пустую конфу со справочником
9. v_id (v_id) 94 14.12.16 14:28 Сейчас в теме
10. v_id (v_id) 94 14.12.16 15:05 Сейчас в теме
Тестирую. Конфу со справочником не качал.

1. Здесь в описании "Справочник "ОграничениеПравПользователей" с реквизитом "Пользователи", а в расширении у Справочника реквизит ""Пользователь"
2. Расширение1: Критичная: Значение контролируемого свойства ДлинаНаименования у объекта Справочник.ОграничениеПравПользователей не совпадает со значением в расширяемой конфигурации. Это при запуске, у вас в расширении длина 50, по-умолчанию у меня длинна 25
11. v_id (v_id) 94 14.12.16 15:10 Сейчас в теме
3. Описано как "СписокЗапрещенныхСубконто" - Колонки "ЗапрещенноеСубконто" - Тип ПланВидовХарактеристик.ВидыСубконтоХозрасчетный", а в расширении ТЧ называется ЗапрещенныеСубконто
17. Вадим Мориков (vadim1011985) 44 14.12.16 16:28 Сейчас в теме
(11) В принципе не кретично но посмотрел у себя вроде все правильно на всякий случай выкладываю сюда расширение из рабочей базы
Прикрепленные файлы:
Расширение1.cfe
12. v_id (v_id) 94 14.12.16 15:17 Сейчас в теме
4. Не, так не пойдет, описание чего-то совсем не совпало. Еще и СписокРазрещенныхСчетов в расширении.

По-этому я просил справочник, и лучше в один архив
13. v_id (v_id) 94 14.12.16 15:39 Сейчас в теме
Чего-то у меня вообще не получается. Идея закрыть доступ к развороту по сотрудникам на 70 счете.
Включил в список запрещенных субконто "Работники организаций", список счетов не заполнял. Зашел под пользователем в ОСВ по счету и все формируется. Хотя, по-идее, вообще ничего не должно, я же никакой счет не разрешил и в добавок и субконто запретил.
20. Вадим Мориков (vadim1011985) 44 14.12.16 16:40 Сейчас в теме
(13) не работает , так как не погрузилось расширение. необходимо исправить ошибки - должно работать
14. v_id (v_id) 94 14.12.16 15:42 Сейчас в теме
Забыл описать себя
1С:Предприятие 8.3 (8.3.9.1850)
Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.44.204)

Общий модуль ОграничениеПравПользователей в расширении
15. v_id (v_id) 94 14.12.16 16:02 Сейчас в теме
Я так понял, что ограничение по субконто реализовано только для отчета по субконто. Но и там у меня ошибка:
{Расширение1 ОбщийМодуль.ОграничениеПравПользователей.Модуль(346)}: Метод объекта не обнаружен (найти)
ИндексЭлемента = МассивУстановленныхСубконто.найти (Субконто) ;
16. Вадим Мориков (vadim1011985) 44 14.12.16 16:16 Сейчас в теме
Так давайте по порядку

1) "Пользователи", а в расширении у Справочника реквизит ""Пользователь" - в описании ошибка Правильно "Пользователь " - описание поправлю
2) Если справочники добавляли сами то нужно у справочника длину наименования указать 50 - тоже укажу в описании
18. Вадим Мориков (vadim1011985) 44 14.12.16 16:35 Сейчас в теме
Закомментируйте укакзанные строки

Процедура АнализСубконто_КарточкаСубконто(НастройкаКомпоновкиДанных,МассивЗапрещенныхСубконто,СписокЗапрещенныхСчетов)
	
	Если СписокЗапрещенныхСчетов.Количество()> 0 Тогда 
		
		СчетНайден = Ложь;
		
		СчетНайден = ПоискиУстановкаОтбора(НастройкаКомпоновкиДанных,"Счет",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов);
		
		Если Не СчетНайден Тогда 	
			ДобавитьОтбор(НастройкаКомпоновкиДанных,"Счет",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов,Истина);
		КонецЕсли;	
		
	КонецЕсли;
	
	//Если МассивЗапрещенныхСубконто.Количество() > 0 Тогда 
		
	//	ПараметрыКомпоновки = НастройкаКомпоновкиДанных.ПараметрыДанных;	
		
	//	ПараметрСписокСубконто = //ПараметрыКомпоновки.Элементы.Найти("СписокВидовСубконто");
		
		//Если  ПараметрСписокСубконто<> неопределено Тогда 
			
		//	МассивУстановленныхСубконто = //ПараметрыКомпоновки.Элементы.Найти("СписокВидовСубконто").Значение;
			
			//Для каждого Субконто из МассивЗапрещенныхСубконто Цикл 
				
			//	ИндексЭлемента = МассивУстановленныхСубконто.найти (Субконто) ;	
				
			//	Если  ИндексЭлемента<> Неопределено Тогда 			
			//		МассивУстановленныхСубконто.удалить(ИндексЭлемента) ;
			//	КонецЕсли;	
				
			//КонецЦикла;
			
			//Если МассивУстановленныхСубконто.Количество() = 0 Тогда 
				//МассивУстановленныхСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПустаяСсылка());
			КонецЕсли;	
			
			//БухгалтерскиеОтчетыКлиентСервер.УстановитьПараметр(ПараметрыКомпоновки.Элементы,"Список//ВидовСубконто",МассивУстановленныхСубконто,Истина);
			
//		КонецЕсли;		
		
//	КонецЕСли;
		
	КонецПроцедуры
Показать
19. Вадим Мориков (vadim1011985) 44 14.12.16 16:36 Сейчас в теме
Закомментируйте укакзанные строки

Процедура АнализСубконто_КарточкаСубконто(НастройкаКомпоновкиДанных,МассивЗапрещенныхСубконто,СписокЗапрещенныхСчетов)
	
	Если СписокЗапрещенныхСчетов.Количество()> 0 Тогда 
		
		СчетНайден = Ложь;
		
		СчетНайден = ПоискиУстановкаОтбора(НастройкаКомпоновкиДанных,"Счет",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов);
		
		Если Не СчетНайден Тогда 	
			ДобавитьОтбор(НастройкаКомпоновкиДанных,"Счет",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов,Истина);
		КонецЕсли;	
		
	КонецЕсли;
	
	//Если МассивЗапрещенныхСубконто.Количество() > 0 Тогда 
		
	//	ПараметрыКомпоновки = НастройкаКомпоновкиДанных.ПараметрыДанных;	
		
	//	ПараметрСписокСубконто = //ПараметрыКомпоновки.Элементы.Найти("СписокВидовСубконто");
		
		//Если  ПараметрСписокСубконто<> неопределено Тогда 
			
		//	МассивУстановленныхСубконто = //ПараметрыКомпоновки.Элементы.Найти("СписокВидовСубконто").Значение;
			
			//Для каждого Субконто из МассивЗапрещенныхСубконто Цикл 
				
			//	ИндексЭлемента = МассивУстановленныхСубконто.найти (Субконто) ;	
				
			//	Если  ИндексЭлемента<> Неопределено Тогда 			
			//		МассивУстановленныхСубконто.удалить(ИндексЭлемента) ;
			//	КонецЕсли;	
				
			//КонецЦикла;
			
			//Если МассивУстановленныхСубконто.Количество() = 0 Тогда 
				//МассивУстановленныхСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПустаяСсылка());
	//		КонецЕсли;	
			
			//БухгалтерскиеОтчетыКлиентСервер.УстановитьПараметр(ПараметрыКомпоновки.Элементы,"Список//ВидовСубконто",МассивУстановленныхСубконто,Истина);
			
//		КонецЕсли;		
		
//	КонецЕСли;
		
	КонецПроцедуры 
Показать
21. Leo Po (webresurs) 151 20.12.16 11:19 Сейчас в теме
явно у кого-то слямзил...
23. Вадим Мориков (vadim1011985) 44 20.12.16 11:59 Сейчас в теме
(21)
явно у кого-то слямзил...
Обоснуйте с какого решения это было "слямзино"

Я не отрицаю что может быть похожее решение - я таких решений не встречал , даже наоборот в обсуждении можно найти что реализация через код проблематичная, данная реализация писалась самостоятельно и не откуда не была скопирована.




24. Leo Po (webresurs) 151 20.12.16 13:28 Сейчас в теме
(23)
Обоснуйте с какого решения это было "слямзино"


- описание по установке одно, в скрипте совсем другое...
- не полное описание установки...

все сделал по описанию, исправил "опечатки", добавил, но не понятно, где искать настройки пользователя для ограничения?
-все функции - в справочниках....


Блокирует всех пользователей да же не добавленных за чем это и как отключить?
25. Konstantin Gostev (Airlord) 20.12.16 13:40 Сейчас в теме
Добрый день! работал в прошлом году в КА 1.1 - проблем с разделением доступа к отчетам не возникало. Большинство отчетов построено на универсалке и достаточно указать в настройках - каким пользователям доступен набор параметров и структура отчета. Другой вопрос - если найдется умник - сам "наберет" себе отчет из универсалки.
26. Вадим Мориков (vadim1011985) 44 20.12.16 15:56 Сейчас в теме
Не должно блокировать всех пользователей , так как за это отвечает этот код в общем модуле:

Запрос = Новый Запрос;
	
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВЫБОР
	|		КОГДА ОграничениеПравПользователейСписокРазрещенныхСчетов.Использование = ЛОЖЬ
	|			ТОГДА ОграничениеПравПользователейСписокРазрещенныхСчетов.Счет
	|	КОНЕЦ КАК ЗапрещенныеСчета
	|ИЗ
	|	Справочник.ОграничениеПравПользователей.СписокРазрещенныхСчетов КАК ОграничениеПравПользователейСписокРазрещенныхСчетов
	|ГДЕ
	|	ОграничениеПравПользователейСписокРазрещенныхСчетов.Ссылка.Пользователь = &Пользователь
	| И ОграничениеПравПользователейСписокРазрещенныхСчетов.Использование = ЛОЖЬ";
	
		
	Запрос.УстановитьПараметр("Пользователь",ПараметрыСеанса.ТекущийПользователь);
	
	Результат = Запрос.Выполнить();
	                
	ТаблицаСчетов = Результат.Выгрузить(); // результат выгружаем в таблиц  
		
	ЗапрещенныеСчета = ТаблицаСчетов.ВыгрузитьКолонку("ЗапрещенныеСчета"); // Получаем массив запрещенных счетов
	
    //Получим список запррещенных к просмотру субконто
    Запрос.Текст ="ВЫБРАТЬ
	|	ОграничениеПравПользователейЗапрещенныеСубконто.ЗапрещенноеСубконто
	|ИЗ
	|	Справочник.ОграничениеПравПользователей.ЗапрещенныеСубконто КАК ОграничениеПравПользователейЗапрещенныеСубконто
	|ГДЕ
	|	ОграничениеПравПользователейЗапрещенныеСубконто.Ссылка.Пользователь = &Пользователь";
	
	Запрос.УстановитьПараметр("Пользователь",ПараметрыСеанса.ТекущийПользователь);
	
	ТаблицаЗапрещенныхСубконто = Запрос.Выполнить().Выгрузить();
	
	Если ЗапрещенныеСчета.Количество()= 0 И ТаблицаЗапрещенныхСубконто.Количество() = 0 тогда  // Если нет ограничений , то выходим 
		Возврат;
	КонецЕсли;
Показать


Я согласен , что в моем описании есть косяк. За что сейчас справедливо, получаю от вас по голове, Подскажите, что Вы правили что бы я мог исправить неточности в публикации ?
27. Alex Sneg (user627879_am002) 14.11.17 07:59 Сейчас в теме
При подключении расширения, ошибка:
Расширение1: Критичная:
Не найден объект ФункциональнаяОпция.Новости_РазрешенаРаботаСНовостями

А в управлении расширениями:
(Критичная) Расширение1: Не найден объект ФункциональнаяОпция.Новости_РазрешенаРаботаСНовостями
(Критичная) Расширение1: Не найден объект Справочник.ОграничениеПравПользователей

Бухгалтерия 3.0.53.38
28. Вадим Мориков (vadim1011985) 44 14.11.17 10:12 Сейчас в теме
(27)

1. Необходимо в расширение добавить указанный объект. Для этого в дереве объектов основной конфигурации надо найти указанный объект (ФункциональнаяОпция.Новости_РазрешенаРаботаСНовостями) и в контекстном меню (щелчок второй кнопкой мыши по указанному объекту) .

2. Указанный справочник добавляется в основную конфигурацию (см. описание )

Для хранения данных о пользователях, у которых ограничены права на просмотр счетов, и самих счетов, доступ к которым ограничен, я добавил Справочник "ОграничениеПравПользователей" с реквизитом "Пользователь" - СправочникСсылка.Пользователи и две табличные части:. Длину наименования у спрвочника указываем 50 символов.

"СписокЗапрещенныхСчетов" - Колонки "Счет" - ПланыСчетов.Хозрасчетный, "Использование" - Тип Булево.

"СписокЗапрещенныхСубконто" - Колонки "ЗапрещенноеСубконто" - Тип ПланВидовХарактеристик.ВидыСубконтоХозрасчетный

Тут важное уточнение - полные права доступа на этот справочник должны быть только у администратора (или пользователя с полными правами), у других должен быть доступ только на чтение.
29. Alex Sneg (user627879_am002) 14.11.17 17:27 Сейчас в теме
вот такая картинка при попытке сохранить
Прикрепленные файлы:
30. Дмитрий Савинов (dsavinov2) 1 02.03.18 13:05 Сейчас в теме
При переходе из ОСВ в карточку например, ошибка недостачно прав доступа.
31. Дмитрий Савинов (dsavinov2) 1 02.03.18 15:14 Сейчас в теме
Нашел, нужно права у роли ограничение прав пользователей дать на параметры сеанса
Оставьте свое сообщение