Версия для печати темы (http://pro1c.org.ua/index.php?s=cdf5b57d1cccb1287af5755978c55184&showtopic=48555)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ ПланСчетов Ограничение использования

Автор: avel1976 27.10.18, 16:28

Добрый день. Поставили такую задачу: необходимо пользователю ограничить выбор бух.счетов в оборотно-сальдовой ведомости и остальных отчетах, скажем чтобы пользователь мог сделать отчет по 311, 361, но не мог сделать отчет по 661. Подскажите, пожалуйста, возможно ли такое сделать программно? Спасибо за ответ.

Конфигурация
"Управление торговым предприятием для Украины", редакция 1.2. (1.2.45.2), Обычные формы

1С:Предприятие 8.3 (8.3.10.2561)

Автор: Vofka 29.10.18, 8:46

Возможно.

Автор: avel1976 29.10.18, 8:53

Vofka @ Сегодня, 9:46 * ,
А как лучше реализавать? Через планы видов характеристик или может есть попроще вариант?

Автор: Vofka 29.10.18, 9:13

avel1976, задача сводится к тому, что надо написать какую-то проверку или при выборе счета или при формировании отчета

Если ... Тогда
   Сообщить("...");
   Возврат;
КонецЕсли;


Что написать в Если вам виднее: либо это какая-то настройка пользователя будет, либо проверка на наличие/отсутствие какой-то роли, либо любой другой нужный конкретно в вашем случае сценарий.

Автор: avel1976 29.10.18, 17:26

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

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Если РольДоступна("ВашаРоль") Тогда
        ЭтаФорма.Отбор.Код.ВидСравнения = ВидСравнения.ВСписке;
        СЗ = Новый СписокЗначений;
        СЗ.Добавить("311");
        СЗ.Добавить("361");
        СЗ.Добавить("69");
        СЗ.Добавить("6431");
        СЗ.Добавить("6432");
        СЗ.Добавить("6412");
        ЭтаФорма.Отбор.Код.Значение = СЗ;
        ЭтаФорма.Отбор.Код.Использование = ИСТИНА;
                //Запретим пользователю менять установленные счета
        ЭлементыФормы.Список.НастройкаОтбора.Код.Доступность = Ложь;
    КонецЕсли;
КонецПроцедуры

Автор: avel1976 29.10.18, 21:46

И еще в догонку в процедуре при изменении счета

Процедура СчетПриИзменении(Элемент)
    Если РольДоступна("ВашаРоль") Тогда        
        Если Счет.Код = "311" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли  Счет.Код = "361" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли  Счет.Код = "362" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли Счет.Код = "69" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли Счет.Код = "683" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        Иначе
            Предупреждение("Рахунок " + Счет + " для перегляду заборонено! ");
            Счет = "";
            Возврат;
        КонецЕсли;    
    КонецЕсли;    
    ОбработкаИзмененияСчета();
    ОбновитьПанельНастроек();
    
КонецПроцедуры

Автор: Moloko 29.10.18, 22:49

Продвинутый пользователь помимо 661-го счета может еще полюбопытствовать зарплатными регистровыми отчетами, просто пройтись по регистрам по взаиморасчётам с сотрудниками, по расчетам по налогам (там есть база налогообложения), по регистрам расчетов и, наконец, открыть универсальный отчет или консоль запросов.
Да, еще можно открыть зарплатную ведомость через платежное поручение.
Помню, мне приходилось заваривать все эти отверстия.

Автор: avel1976 29.10.18, 22:57

Moloko @ Сегодня, 23:49 * ,
Интерфейс пользователя написан только с теми документами и отчетами которые ему нужны. До оборотно-сальдовой, к регистрам у него нет доступа, кнопки "Операции", "Сервис" и "Переключение интерфейса" убраны.

Автор: Petre 30.10.18, 9:08

avel1976 @ Yesterday, 21:46 * ,
А если набрать с клавиатуры в поле?

Автор: avel1976 01.11.18, 18:54

Petre @ 30.10.18, 10:08 * ,
А там вторая часть кода, которая проверяет.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
http://pro1c.org.ua