0. vadim1011985 45 19.10.16 20:04 Сейчас в теме

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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




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


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

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


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

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


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

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

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

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

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

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

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

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

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

Вакансии

Удаленный консультант-разработчик 1С
Краснодар
зарплата от 60 000 руб. до 60 000 руб.
Полный день



Ведущий программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Руководитель проектов 1С
Москва
Полный день