0
НичегоНе Понятно
21.09.19
✎
07:27
|
Все пирвет есть РМК, при определенных ситуациях надо отключить все кнопки кроме нескольких. Это собственно не очень большая проблема. Но сочетания клавиш у кнопок в нижнем ряду, продолжают работать. Вот код
&НаКлиенте
Процедура ЗаблокироватьВсеКромеОплаты()
Перем ЭлементКнопка;
ЗаблокированныеКнопки = Новый Соответствие;
//Если все хорошо, тогда заблокируем все остальное кроме возможности оплатить
ЗаблокироватьЭлементыГруппы(Элементы.ГруппаЧастотныхОпераций.ПодчиненныеЭлементы,
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок("Наличные (F6),Плат. карта (F7),Сложная оплата (F8)"));
//+++ если применяется настройка, надо блокировать все программно добавленные кнопки,
//если настройка не юзается, этот код никогда не сработает
Для каждого ДобавленнаяГруппа Из Элементы.ГруппаПрочихОпераций.ПодчиненныеЭлементы Цикл
ЗаблокироватьЭлементыГруппы(ДобавленнаяГруппа.ПодчиненныеЭлементы, Новый Массив);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ЗаблокироватьЭлементыГруппы(ГруппаЭлементов, ЗаголовкиКоторыеНадоПропустить = Неопределено)
//Если ЗаголовкиКоторыеНадоПропустить = Неопределено Тогда ЗаголовкиКоторыеНадоПропустить = Новый Массив; КонецЕсли;
Для каждого ЭлементКнопка Из ГруппаЭлементов Цикл
Если ЗаголовкиКоторыеНадоПропустить.Найти(ЭлементКнопка.Заголовок) <> Неопределено Тогда Продолжить; КонецЕсли;
ЭлементКнопка.Доступность = Ложь;
ЗаблокированныеКнопки.Вставить(ЭлементКнопка, ЭлементКнопка.СочетаниеКлавиш); //запомним, что заблокировали и горячую кнопку
ЭлементКнопка.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет); //что-бы вернуть после окончания процесса
КонецЦикла;
КонецПроцедуры
Были найдены дубли в командах и удалены следующим образом:
&НаСервере
Процедура ОбнулитьСочетанияКлавищ()//дублирующие сочетания назначены командам
Для каждого ТекущаяКоманда Из ЭтаФорма.Команды Цикл
ТекущаяКоманда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет);
КонецЦикла;
КонецПроцедуры
Но некоторые кнопки нижней панели F12(выход), кнопка ctrl + f12(пробить непробитый), ctrl + f5(продолжить чек) все равно работают. Как узнать, где они подключены?
|
|