|   |   | 
| 
 | Действия программно созданных кнопок? | ☑ | ||
|---|---|---|---|---|
| 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: Сохранение настроек, внешняя обработка, в свойствах формы обработки поставил галку "Сохранять значения", указал Табличная часть.ШаблоныНастроек, но кнопочки не активны!? Надо, чтобы каждый раз при изменении настроек они сохранялись...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |