Перенести кнопку товарный чек в форму РМК. УТ 11.4
Клиент часто использует печать товарного чека. По умолчанию для этого нужно нажать в РМК кнопку «Прочие операции» и затем кнопку «Товарный чек»:
При этом, если чек не записан, будет задан вопрос о проведении документа:
Я бы мог создать кнопку, которая вызывала бы нужную печатную форму, но тогда нужно было бы еще повторять поведение по проведению не сохраненного документа.
Поэтому я просто решил сделать клавиатурный ускоритель, но все же немного пришлось повозиться.
Саму кнопку создаю так:
//2022-03-22 Осипов, переносим кнопку товарного чека +++ ИмяКоманды = "дор_Товарный"; КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды); КомандаФормы.Действие = ИмяКоманды; КомандаФормы.Заголовок = "Товарный"; КомандаФормы.ИзменяетСохраняемыеДанные = Ложь; КомандаФормы.Отображение = ОтображениеКнопки.Текст; НовыйЭлемент = ЭтаФорма.Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), КоманднаяПанель); НовыйЭлемент.ИмяКоманды = ИмяКоманды; НовыйЭлемент.Ширина = 10; НовыйЭлемент.АвтоМаксимальнаяШирина = ложь; НовыйЭлемент.РастягиватьПоГоризонтали = ложь; //2022-03-22 Осипов, переносим кнопку товарного чека ---
Выглядит кнопка в меню так:
Команду печати вызвываем так:
&НаКлиенте Процедура дор_Товарный(Команда) Экспорт //2022-03-23 Осипов копируем из процедуры ОткрытьМенюПрочихОпераций(Команда) +++ ПараметрыОткрытияФормы = Новый Структура; ПараметрыОткрытияФормы.Вставить("КассаККМ", Объект.КассаККМ); ПараметрыОткрытияФормы.Вставить("Кассир", Объект.Кассир); ПараметрыОткрытияФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр); ПараметрыОткрытияФормы.Вставить("Документ", Объект.Ссылка); ПараметрыОткрытияФормы.Вставить("ПроверитьКоличествоВДокументе", Истина); ПараметрыОткрытияФормы.Вставить("ПродажаПодарочногоСертификата", ИспользоватьПодарочныеСертификаты); ПараметрыОткрытияФормы.Вставить("ВозвратПодарочногоСертификата", ИспользоватьПодарочныеСертификаты); ПараметрыОткрытияФормы.Вставить("Заблокировать", ПринудительнаяАвторизация); ПараметрыОткрытияФормы.Вставить("АдресКомандПечатиВоВременномХранилище", АдресКомандПечатиВоВременномХранилище); дор_ФормаМенюПрочихОпераций = ОткрытьФорму("Документ.ЧекККМ.Форма.МенюПрочиеОперации", ПараметрыОткрытияФормы, ЭтотОбъект); дор_ФормаМенюПрочихОпераций.дор_ПечатьТоварногоЧека(); КонецПроцедуры
В принципе, можно было просто открыть форму нажатием кнопки, а потом найти ее в открытых формах, так было бы универсальнее.
Чтобы все работало, форму МенюПрочиеОперации тоже нужно расширить:
&НаКлиенте Функция дор_ПечатьТоварногоЧека() Экспорт Подключаемый_ОбработатьКомандуПечати( ЭтаФорма.Команды.ПодменюПечатьОбычное_ТоварныйЧек); КонецФункции
Пришлось пойти на такое расширение, т.к. ОткрытьФорму возвращает неполноценную форму, без Объекта и некоторых реквизитов (например ПараметрыПодключаемыхКоманд), видимо снаружи не видных, поэтому нужно вызывать метод изнутри формы.
А ведь клиенту кажется, что это простое дело — перенести кнопку из одного места в другое. Увы, не в управляемых формах. Там нет возможности просто «кликнуть» по форме.
Среда: УТ 11.4.13.46. Объем 0.8 час.
Свежие комментарии