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


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

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

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

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

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

8 Comments

  1. capitan

    А ничего, что 70 счет обязательно идет в корреспонденции ?

    😉

    Reply
  2. vadim1011985

    Популярная тема стала. Тоже статью накатал , правда она на модерации

    Reply
  3. Evgenij1990

    (1) capitan, что имеете ввиду?

    Reply
  4. vadim1011985

    (3) пользователь может сформировать карточку счета по 20.01 или 26 или 44 (короче, с счетом с которым корреспондирует счет 70) и увидеть движения , есть так же отчет по проводкам , анализ субконто и т.д.

    Reply
  5. Evgenij1990

    (4) vadim1011985, Они смогут увидеть обороты в целом по 70 счету, но детализация по сотрудникам будет недоступна, т.е. расшифровку суммы сформировать не смогут.

    В карточке счета действительно можно увидеть суммы и сотрудников. Просто была задача ограничить пользователей в стандартных отчетах, которые дают возможность легко вычислить, что «А у Иванова почему премия больше?». Понятное дело, что можно сформировать карточку счета по 20-ке и найти нужную проводку, но предполагалось, что это крайняя мера.

    На данный момент информацию по зп с детализацией по сотрудникам можно найти только в карточке корреспондирующего счета. Буду думать, как и там спрятать. Есть предложения?

    Reply
  6. vadim1011985

    (5) Есть, и не только предположения, а реализация , сейчас статья на модерации , надеюсь завтра станет доступной.

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

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

    Показать

    Более подробно как все реализовано уже надо читать в статье.

    Reply
  7. Evgenij1990

    (6) vadim1011985, спасибо! Тогда буду ждать статью!

    Reply
  8. vadim1011985

    Вот мой вариант http://infostart.ru/public/556330/

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *