Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПланСчетов Ограничение использования
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
avel1976
Добрый день. Поставили такую задачу: необходимо пользователю ограничить выбор бух.счетов в оборотно-сальдовой ведомости и остальных отчетах, скажем чтобы пользователь мог сделать отчет по 311, 361, но не мог сделать отчет по 661. Подскажите, пожалуйста, возможно ли такое сделать программно? Спасибо за ответ.

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

1С:Предприятие 8.3 (8.3.10.2561)
Vofka
Возможно.
avel1976
Vofka @ Сегодня, 9:46 необходимо зарегистрироваться для просмотра ссылки ,
А как лучше реализавать? Через планы видов характеристик или может есть попроще вариант?
Vofka
avel1976, задача сводится к тому, что надо написать какую-то проверку или при выборе счета или при формировании отчета

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


Что написать в Если вам виднее: либо это какая-то настройка пользователя будет, либо проверка на наличие/отсутствие какой-то роли, либо любой другой нужный конкретно в вашем случае сценарий.
avel1976
Задача решена. Делюсь, может кому пригодится. В модуле формы "Список" и в модуле формы "Выбор" создаем процедуру "ПередОткрытием" и пишем следующий код:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Если РольДоступна("ВашаРоль") Тогда
        ЭтаФорма.Отбор.Код.ВидСравнения = ВидСравнения.ВСписке;
        СЗ = Новый СписокЗначений;
        СЗ.Добавить("311");
        СЗ.Добавить("361");
        СЗ.Добавить("69");
        СЗ.Добавить("6431");
        СЗ.Добавить("6432");
        СЗ.Добавить("6412");
        ЭтаФорма.Отбор.Код.Значение = СЗ;
        ЭтаФорма.Отбор.Код.Использование = ИСТИНА;
                //Запретим пользователю менять установленные счета
        ЭлементыФормы.Список.НастройкаОтбора.Код.Доступность = Ложь;
    КонецЕсли;
КонецПроцедуры
avel1976
И еще в догонку в процедуре при изменении счета
Процедура СчетПриИзменении(Элемент)
    Если РольДоступна("ВашаРоль") Тогда        
        Если Счет.Код = "311" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли  Счет.Код = "361" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли  Счет.Код = "362" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли Счет.Код = "69" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        ИначеЕсли Счет.Код = "683" Тогда
            ОбработкаИзмененияСчета();
            ОбновитьПанельНастроек();
        Иначе
            Предупреждение("Рахунок " + Счет + " для перегляду заборонено! ");
            Счет = "";
            Возврат;
        КонецЕсли;    
    КонецЕсли;    
    ОбработкаИзмененияСчета();
    ОбновитьПанельНастроек();
    
КонецПроцедуры
Moloko
Продвинутый пользователь помимо 661-го счета может еще полюбопытствовать зарплатными регистровыми отчетами, просто пройтись по регистрам по взаиморасчётам с сотрудниками, по расчетам по налогам (там есть база налогообложения), по регистрам расчетов и, наконец, открыть универсальный отчет или консоль запросов.
Да, еще можно открыть зарплатную ведомость через платежное поручение.
Помню, мне приходилось заваривать все эти отверстия.
avel1976
Moloko @ Сегодня, 23:49 необходимо зарегистрироваться для просмотра ссылки ,
Интерфейс пользователя написан только с теми документами и отчетами которые ему нужны. До оборотно-сальдовой, к регистрам у него нет доступа, кнопки "Операции", "Сервис" и "Переключение интерфейса" убраны.
Petre
avel1976 @ Yesterday, 21:46 необходимо зарегистрироваться для просмотра ссылки ,
А если набрать с клавиатуры в поле?
avel1976
Petre @ 30.10.18, 10:08 необходимо зарегистрироваться для просмотра ссылки ,
А там вторая часть кода, которая проверяет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.