Ограничение доступа к 70 счету для БП 3.0

Опубликовал Евгений О (Evgenij1990) в раздел Администрирование - Защита, права, пароли

Ограничение доступа к 70 счету для Бухгалтерии предприятия 3.0 через расширение.

Ограничение доступа к следующим отчетам по 70 счету и субконто "Работники организации" :

  • ОСВ по счету
  • Анализ счета
  • Карточка счета
  • Обороты счета
  • Карточка субконто
  • Анализ субконто
  • Отчет по проводкам

В расширении подменен обработчик события "При открытии" и Обработчик команды "Сформировать".При наличии права "Администрирование Зарплата и кадры"  отчеты будут формироваться , без него будет выдаваться предупреждение как на скриншоте. 

Расширение тестировалось на релизе 3.0.44.140 Платформа 8.3.8.2088

Скачать файлы

Наименование Файл Версия Размер
Ограничение по 70 счету
.cfe 224,20Kb
18.10.16
10
.cfe 1.1 224,20Kb 10 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Капитан Немо (capitan) 531 19.10.16 21:45 Сейчас в теме
А ничего, что 70 счет обязательно идет в корреспонденции ?
;)
2. Вадим Мориков (vadim1011985) 35 19.10.16 22:00 Сейчас в теме
Популярная тема стала. Тоже статью накатал , правда она на модерации
3. Евгений О (Evgenij1990) 8 19.10.16 22:30 Сейчас в теме
4. Вадим Мориков (vadim1011985) 35 19.10.16 22:35 Сейчас в теме
(3) Evgenij1990, пользователь может сформировать карточку счета по 20.01 или 26 или 44 (короче, с счетом с которым корреспондирует счет 70) и увидеть движения , есть так же отчет по проводкам , анализ субконто и т.д.
5. Евгений О (Evgenij1990) 8 19.10.16 22:39 Сейчас в теме
(4) vadim1011985, Они смогут увидеть обороты в целом по 70 счету, но детализация по сотрудникам будет недоступна, т.е. расшифровку суммы сформировать не смогут.
В карточке счета действительно можно увидеть суммы и сотрудников. Просто была задача ограничить пользователей в стандартных отчетах, которые дают возможность легко вычислить, что "А у Иванова почему премия больше?". Понятное дело, что можно сформировать карточку счета по 20-ке и найти нужную проводку, но предполагалось, что это крайняя мера.

На данный момент информацию по зп с детализацией по сотрудникам можно найти только в карточке корреспондирующего счета. Буду думать, как и там спрятать. Есть предложения?
6. Вадим Мориков (vadim1011985) 35 19.10.16 23:04 Сейчас в теме
(5) Evgenij1990, Есть, и не только предположения, а реализация , сейчас статья на модерации , надеюсь завтра станет доступной.

Идея у тебя по сути правильная - надо изменять КомпоновщикНастроек но непосредственно перед инициализацией и для каждого отчета задавать свои ограничения , вот например для карточки счета

Если ИдентификаторОбъекта = "КарточкаСчета" тогда // Для карточки счета необходимо изменить Стандартный запрос для парметров СКД
			
			//СКД = ОтчетОбъект.СхемаКомпоновкиДанных; // Получим СКД	
			
			ОтборДтНайден = Ложь; // Флаги для поиска ранее установленных отборов
			ОтборКтНайден = Ложь; 
			
			//Для стандартного отчета Карточка счета нет возможности установить отбор по счетам. Для возможности добавления отбора необходимо 
			//поменять текст запроса для СКД ( в части настроек для СКД , т.е. основной текст запроса не меняется )  
			 
			Запрос = СКД.НаборыДанных.Проводки.Запрос; // получим текст запроса 
			Запрос = СтрЗаменить(Запрос,"Проводки.ПериодГруппировки}", "Проводки.ПериодГруппировки,"+Символы.ПС
			+ "Проводки.СчетДт.*,"+Символы.ПС+ "Проводки.СчетКт.*}"+Символы.ПС); // Изменяем текст для компоновщика добавляя поля СчетДт И СчетКТ 
			
			СКД.НаборыДанных.Проводки.Запрос = Запрос; // Устанавливаем новый текст Запроса 
			
			//Теперь в СКД нам доступны поля отбора СчетДт и СчетКт и по ним возможно устанавливать отбор. Попробуем найти ранее установленые отборы
			ОтборДтНайден = ПоискиУстановкаОтбора(НастройкаКомпоновкиДанных,"СчетДт",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов);
			
			ОтборДтНайден = ПоискиУстановкаОтбора(НастройкаКомпоновкиДанных,"СчетКт",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов);
						
			Если Не ОтборДтНайден тогда // Если указанный отбор не найден, то установим его  
				
				ДобавитьОтбор(НастройкаКомпоновкиДанных,"СчетДт",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов,Истина);
				
			КонецЕсли;
					
			Если Не ОтборКтНайден тогда // Если указанный отбор не найден, то установим его
				
				ДобавитьОтбор(НастройкаКомпоновкиДанных,"СчетКт",ВидСравненияКомпоновкиДанных.НеВСписке,СписокЗапрещенныхСчетов,Истина);
				
			КонецЕсли;
			
		КонецЕсли;  
...Показать Скрыть


Более подробно как все реализовано уже надо читать в статье.
7. Евгений О (Evgenij1990) 8 19.10.16 23:11 Сейчас в теме
(6) vadim1011985, спасибо! Тогда буду ждать статью!
8. Вадим Мориков (vadim1011985) 35 20.10.16 10:09 Сейчас в теме