Имя: Пароль:
1C
1С v8
Заблокировать команду, повешенную на кнопку клавиатуры
0 LienXo
 
29.11.19
11:37
Очередной вопрос из серии "А оно тебе надо?" - но надо.
И так: на форме есть кнопки команд - калькулятор - подвешенные на кнопки клавиатуры.
И есть таблица с цифровым полем - сумма (теоретически ее можно редактировать).
Если пытаемся зайти в поле сумма и ввести туда свое число - нажатие на кнопку перехватывается и отрабатывает калькулятор, а редактирование поля прекращается.
Если при начале редактирования поля в обработчике указать "Калькулятор.Видимость = Ложь" - отрабатывает почти как надо, но в поле нужно стучатся дважды - при изменении видимости 1С сбрасывает редактирование поля.
На изменение "Калькулятор.Доступность = Ложь" реагирует оригинальнее - команда кнопки не отрабатывает, но редактирование поля все равно прекращается.

Варианты: открыть отдельное окошко для ввода суммы или ввести сумму с самого калькулятора - возможны, но хочется пока так как описано. Может есть предложения?
1 Ёпрст
 
гуру
29.11.19
11:38
имеет кнопку выбора убрать у поля, не вариант ?
2 Ёпрст
 
гуру
29.11.19
11:40
а понял, ты на кнопки свои команды повешал и хочешь их блокировать при редактировании поля ? Доступность при начале активизации поля суммы меняй им
3 Ёпрст
 
гуру
29.11.19
11:42
ну и.. команды на какие цифры, на доп клавиатуру тоже ? Или только на цифры сверху клавы ?
4 LienXo
 
29.11.19
11:42
(2) Пробовал - не помагает. Команда не отрабатывает но сбрасывается редактирование поля
5 Ёпрст
 
гуру
29.11.19
11:49
(4) на какое событие вешал доступность ?
6 LienXo
 
29.11.19
11:50
(5) ПриНачалеРедактирования
Для проверки просто в конфигураторе повесил Доступность=Ложь. Тоже самое.
7 pechkin
 
29.11.19
11:52
при активизации поля - нет такого события к сожалению
8 LienXo
 
29.11.19
11:56
(7) есть активизация строки - откуда можно вытащить активное поле. Не помогло. Больше проблем.
9 LienXo
 
29.11.19
11:58
+(8) даже не строки - ячейки. Все равно - надо проверить, начали ли редактировать, вешать обработчик ожидания - результат, все равно сброс редактирования поля
10 pechkin
 
29.11.19
12:00
можено еще сдалать при обработке команды проверять а может редактирование
11 LienXo
 
29.11.19
12:06
(10) к моменту обработки поле уже не активно. Понятно, что вбить туда значение последней нажатой клавиши я могу, но редактирования поля уже нет.
12 LienXo
 
29.11.19
12:07
Сброс сочетания клавиш при начале редактирования тоже не помог - серверный вызов - точно так же как и с видимостью, приходится дважды в ячейку стучать
13 LienXo
 
29.11.19
12:21
Взял в качестве решения пока так (с видимостью не отрабатывает)

&НаСервере
Процедура ТоварыСбросить()
    Команды.Найти("калк1").СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет);
    Команды.Найти("калк_п1").СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.Нет);    
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НЕ ИдетРедактированиеСуммы Тогда
        ТоварыСбросить();
        //Элементы.пмКалькулятор.Видимость    = Ложь;
    
        ИдетРедактированиеСуммы = Истина;
        Элементы.Товары.ИзменитьСтроку();
    КонецЕсли;
КонецПроцедуры
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.