|
Действия программно созданных кнопок? | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
27.08.16
✎
19:28
|
Создаю обработку для выполнения некоторых однотипных действий с заданными параметрами. Для этого в нее вставил табличную часть ШаблоныНастроек, в которой задаются параметры действий. Для каждой настройки программно создаю кнопку:
Процедура ОбновитьКнопкиМеню() МенюКнопок = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.КнопкаВыполнитьДействие.Кнопки; МенюКнопок.Очистить(); Для каждого Строка Из ШаблоныНастроек Цикл МенюКнопок.Добавить("КнопкаНастройки" + Строка.НомерСтроки, ТипКнопкиКоманднойПанели.Действие, СокрЛП(Строка.Наименование), Новый Действие("ВыполнитьДействие")); КонецЦикла; КонецПроцедуры Процедура ВыполнитьДействие() Сообщить("ВыполнитьДействие"); КонецПроцедуры Вот только чет не соображу как процедура выполнения действия должна понимать по какой кнопке она вызвана, и по каким параметрам (настройкам) выполнять действие? |
|||
1
sunson01
27.08.16
✎
19:31
|
Для каждой кнопки должна быть своя процедура.
|
|||
2
Рэйв
27.08.16
✎
19:33
|
(0)Идиотское решение. Лучше уж по примеру справочника "внешние обработки" пиши их и сохраняй:-)
|
|||
3
Лефмихалыч
27.08.16
✎
19:43
|
(1) нет
(0) у обработчика действия есть параметр, в который передается нажатая кнопка. В обработчике по этому параметру ты как раз и можешь определить, что за кнопка нажата |
|||
4
Рэйв
27.08.16
✎
19:45
|
(3)Делал такое. Но запаришься каждый рас дописывать условие и код.
|
|||
5
Лефмихалыч
27.08.16
✎
19:49
|
(4) это - бесспорно.
Надо как-то так, чтобы по кнопке вычислялся шаблон настройки и потом он передавался бы в общий метод ВыполнитьВсюХернюПоШаблонуНастроек() |
|||
6
Лефмихалыч
27.08.16
✎
19:51
|
(5) хотя, это как раз то, что ты и предложил в самом начале по сути
|
|||
7
Mikhail Volkov
27.08.16
✎
20:18
|
(3) Что за параметр? Имя кнопки: "КнопкаНастройки" + Строка.НомерСтроки?
|
|||
8
Лефмихалыч
27.08.16
✎
20:19
|
Процедура ВыполнитьДействие(ВотЭтотПараметр)
Сообщить("ВыполнитьДействие: "+ВотЭтоДействие.Имя); КонецПроцедуры |
|||
9
Mikhail Volkov
27.08.16
✎
20:28
|
Да, имя кнопки: "КнопкаНастройки" + Строка.НомерСтроки, спс
|
|||
10
Mikhail Volkov
28.08.16
✎
06:28
|
Процедура ВыполнитьДействие(ВотЭтотПараметр)
НайденнаяСтрока = ШаблоныНастроек.Найти(Число(Прав(ВотЭтотПараметр.Имя, 1))); Если НайденнаяСтрока = Неопределено Тогда Сообщить("Не найдена настройка: " + ВотЭтотПараметр.Имя + "/" + Число(Прав(ВотЭтотПараметр.Имя, 1))); Иначе Сообщить("Найдена настройка: " + ВотЭтотПараметр.Имя + "/" + Число(Прав(ВотЭтотПараметр.Имя, 1)) + "/" + НайденнаяСтрока.НомерСтроки + "/" + НайденнаяСтрока.Водитель + "/" + НайденнаяСтрока.СкладОтправитель + "/" + НайденнаяСтрока.СкладПолучатель); КонецЕсли; КонецПроцедуры Не находит нужную настройку!? :( |
|||
11
Лефмихалыч
28.08.16
✎
10:24
|
(10) используй отладчик, будь мужиком!
У тебя ВотЭтотПараметр.Имя содержит строку вида "КнопкаНастройки"+Номер, а в справочнике таких нет. Имя кнопки при создании кнопки присваивай такое, по которому потом найти сможешь. Добавь на форму реквизит произвольного типа, в который сложи соответствие <Кнопка :: СсылкаНаШаблон>, так даже быстрее будет и правильнее. Однако, если форма управляемая, придется изгольнуться. |
|||
12
Лефмихалыч
28.08.16
✎
10:24
|
хотя у тебя форма не управляемая, так что соответствие - офигительное решение всех проблем
|
|||
13
hhhh
28.08.16
✎
11:26
|
(10) что такое ШаблоныНастроек ??
|
|||
14
Лефмихалыч
28.08.16
✎
11:32
|
(13) "Создаю обработку ... . Для этого в нее вставил табличную часть ШаблоныНастроек"
|
|||
15
Mikhail Volkov
28.08.16
✎
18:33
|
(11) Все работает! Имена кнопок упростил до номера строки настройки - Строка.НомерСтроки, а "Не находит нужную настройку!?" - имя колонки забыл указать, по которой искать:
НайденнаяСтрока = ШаблоныНастроек.Найти(Число(Параметр.Имя), "НомерСтроки"); А вообще задачка следующая: на предприятие есть внутренние перемещения, которые делаются не за один рейс, а за 10-20. С утра распределяют во водителей по маршрутам возить груз из цеха в цех (или со склада на другой склад). Их не много - 5-7, не более 10. На каждый такой маршрут оформляется накладная перемещения товара без указания веса (не проведенная). А еще на каждый маршрут печатается лист (акт) взвешивания с шапкой накладной: Водитель, Откуда, Куда. Эти листы отдают на весовую. Водители челноками возят груз, бабушка на весовой аккуратно заполняет показания весов каждого рейса водителя в этих листах (на каждого водителя в отдельный лист). В конце смены по каждому листу подводят итог общего веса, и ставят его в накладные перемещения (проводят). Сейчас весы весовой подключили к компьютеру, хотят, чтобы на каждый рейс оформлялась своя накладная перемещения товара. Но бабушка на весовой с компьютером не дружит!? Вот нужна обработка, которая сама их создавала по нажатию кнопок. Сколько маршрутов (листов взвешивания), столько кнопок с названиями "Водитель - Откуда - Куда". В шаблон настроек заношу параметры накладных (которые создаются утром без веса на каждый маршрут). Пока у меня такое решение этой задачки. Есть лучше - поделись!? |
|||
16
Лефмихалыч
28.08.16
✎
18:37
|
Бред какой-то. Замените бабушку да и все.
|
|||
17
Mikhail Volkov
29.08.16
✎
03:58
|
(16) Не в бабушке дело, садили ей в помощь опытного оператора. Тоже куча ошибок... найти из десятка накладных нужную, скопировать, что-то в ней поменять... образуется очередь перед весовой, потеря рабочего времени... Проще нажать нужную кнопку на обработке. Может есть еще более простое решение автоматизации этого процесса?
|
|||
18
Mikhail Volkov
29.08.16
✎
18:40
|
А как бы сохранить табличную часть обработки ШаблоныНастроек на случай ее закрытия/открытия? Не нашел типового примера...
|
|||
19
Лефмихалыч
29.08.16
✎
19:41
|
(17) добавьте штрих код на печатную форму документа, а бабушку вооружите сканером
(18) если надо сохранять, то это уже документ. |
|||
20
Mikhail Volkov
30.08.16
✎
03:40
|
(19) Для ввоза-вывоза штрих-код сделал.
Для отчетов есть же сохранение настроек!? |
|||
21
Mikhail Volkov
30.08.16
✎
04:18
|
Нашел v8: Сохранение настроек, внешняя обработка, в свойствах формы обработки поставил галку "Сохранять значения", указал Табличная часть.ШаблоныНастроек, но кнопочки не активны!? Надо, чтобы каждый раз при изменении настроек они сохранялись...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |