Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Здравствуйте. Добавил в конфигурацию БП 2.0 новый интерфейс, создал для него роль, теперь вот столкнулся с тем, что необходимо от пользователей попадающих под эту роль спрятать, либо указать только необходимые для них счета. Можно ли как-нибудь в ОСВ это сделать, либо в принципе устроит даже во внешнем отчете нечто подобное.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Реализовано сейчас так:
Когда бухгалтер не выберает, а сразу нажимает клавишу Сформировать запрет не срабатывает. Может кто подсказать, как решить вопрос?
Если РольДоступна("Кладовщик") Тогда
Если Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.Материалы) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.Материалы) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.ВложенияВоВнеоборотныеАктивы) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.ВложенияВоВнеоборотныеАктивы) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации) ) ) Тогда
Сообщить("Нарушение прав доступа");
Элемент.Значение = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
Возврат;
КонецЕсли;
КонецЕсли;
Если Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.Материалы) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.Материалы) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.ВложенияВоВнеоборотныеАктивы) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.ВложенияВоВнеоборотныеАктивы) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.ОборудованиеКУстановке) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками) ) ) и Не ( (Элемент.Значение = ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации) Или (Элемент.Значение.ПринадлежитЭлементу( ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации) ) ) Тогда
Сообщить("Нарушение прав доступа");
Элемент.Значение = ПланыСчетов.Хозрасчетный.ПустаяСсылка();
Возврат;
КонецЕсли;
КонецЕсли;
Когда бухгалтер не выберает, а сразу нажимает клавишу Сформировать запрет не срабатывает. Может кто подсказать, как решить вопрос?
Я так понимаю, это возникает из-за этого условия
Подскажите пожалуйста, как его обойти, чтобы заполнение шло только с помощью ручной настройки отчета.
Если ВыводитьПолностью Тогда
Если СтандартныеОтчеты.ПроверитьЗаполнениеОбязательныхРеквизитов(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Подскажите пожалуйста, как его обойти, чтобы заполнение шло только с помощью ручной настройки отчета.
Есть стандартный механизм ограничения в бухии, почему бы в общих модулях не создать общую процедуру и в ней наложить аналогичный фильтр, а в формах вызывать ее, вот пример обработки:
Процедура СчетВыбрНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка=ложь;
СписокСчетов = Новый СписокЗначений;
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолговыеЦенныеБумаги);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПредоставленныеЗаймы);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПриобретенныеПрава);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.КраткосрочныеКредиты);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.КраткосрочныеЗаймы);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеКредиты);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеЗаймы);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеЗаймыВал);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеКредиты);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеЗаймы);
ФормаВыбора = ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора("ФормаВыбора", Элемент, );
ФормаВыбора.ПланСчетовСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.ПланСчетовСписок.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.ПланСчетовСписок.Отбор.Ссылка.Значение = СписокСчетов;
ФормаВыбора.ЭлементыФормы.Список.НастройкаОтбора.Ссылка.Доступность = Ложь;
ФормаВыбора.ПараметрТекущаяСтрока = Элемент.Значение;
ФормаВыбора.ЭлементыФормы.ДействияФормы.Кнопки.КорректныеСчета.Доступность=Ложь;
ФормаВыбора.Открыть();
КонецПроцедуры
Процедура СчетВыбрНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка=ложь;
СписокСчетов = Новый СписокЗначений;
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолговыеЦенныеБумаги);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПредоставленныеЗаймы);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПриобретенныеПрава);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.КраткосрочныеКредиты);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.КраткосрочныеЗаймы);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеКредиты);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеЗаймы);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеЗаймыВал);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПоставщикамиИПодрядчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчиками);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеКредиты);
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ДолгосрочныеЗаймы);
ФормаВыбора = ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора("ФормаВыбора", Элемент, );
ФормаВыбора.ПланСчетовСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.ПланСчетовСписок.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.ПланСчетовСписок.Отбор.Ссылка.Значение = СписокСчетов;
ФормаВыбора.ЭлементыФормы.Список.НастройкаОтбора.Ссылка.Доступность = Ложь;
ФормаВыбора.ПараметрТекущаяСтрока = Элемент.Значение;
ФормаВыбора.ЭлементыФормы.ДействияФормы.Кнопки.КорректныеСчета.Доступность=Ложь;
ФормаВыбора.Открыть();
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот