интерфейс, запуск процедуры

  1. 10 г. назад

    всезнают, что в интерфейсе (обычные формы) в поле действие можно указать действие не только с объектом(открыть форму документа, открыть форму списка и тд), но и можно указать процедуру, которая обработает это действие.
    вопрос - как в эту процедуру передать параметр - например, имя кнопки из которой она вызывается?

  2. что за поле действие?

  3. Безымянный.JPG

  4. а, вот где, понятно. сомневаюсь я что-то.

    а если тупо попробовать передать имя со скобками и параметром?

    Ответы: (4)
  5. (3)не хочет. подавай только имя процедуры

    Ответы: (5)
  6. (4) сопсна, я так и думал ) просто на авось, "а что, а вдруг" ©

    Ответы: (6)
  7. (5) да и в самой процедуре я так понимаю никак не выловить имя действия, которым оно было вызвано..
    эхх, придется 100500 процедур лепить, по одной на каждый отчет

    Ответы: (7)
  8. (6) А разве активный элемент формы выловить нельзя?

    Ответы: (8)
  9. (7) какой формы?)

    Ответы: (9)
  10. (8) У тебя в процедуре после имени в скобках что написано? В модуле?

    Ответы: (10) (11)
  11. (9)+ Ставлю доллар - там написано Кнопка. Ставишь точку останова на первой строке в процедуре, встаешь на эту "Кнопка", нажимаешь Shift-F9 и много думаешь )

    Ответы: (12)
  12. (9) говори нормально)
    параметров у процедуры нет

  13. (10) [...]) ставлю косарь долларов, что там нет кнопки))

    Ответы: (14)
  14. А кнопка не на панели стало быть? Тогда ЭтаФорма.ТекущийЭлемент на нее укажет. Ну а там смотри Имя, или Заголовоц, что удобнее.

  15. (12) Ну... В приличных домах кнопки принято размещать на панели инструментов, тогда будет )

  16. бляяя... какая форма, какой текущий элемент..вася...

  17. 17.04.2014 17:35:56 отредактировано Дядя Васька

    (15)

    Stim как в эту процедуру передать параметр - например, имя кнопки из которой она вызывается?

    Вот в этой самой процедуре ЭтаФорма.ТекущийЭлемент.Имя - скажет тебе имя кнопки. Вопрос только что там за чудо-интерфейс что такое потребовалось. Может не 100500 кнопок там надо, а одна менюшка все же? ))

  18. ойёёёбля... вася.. ЭТО БЛЕАТЬ ИНТЕРФЕЙС!! он сам по себе, у него нет элементов формы, к которым можно обратиться, у него нет даже блеать модуля, в котором это можно написать!

    Ответы: (19)
  19. вася. если ты мне запилишь конфу с двумя отчетами, одним модулем с одной процедурой и интерфейсом, в котором отчеты будут открываться через эту процедуру - перешлю тебе на телефон косарь рублей. тут же

    Ответы: (20)
  20. (17) а... невнематочно прочел. Ну уж в интерфейсе-то оно точно лишнее...

    Ответы: (21)
  21. (18) А если напишу? ))

  22. (19)точно-точно?

    Ответы: (22)
  23. (21) не обещаю. Но попробовать можно )

  24. попробуй, чо.
    мне нужно вызов каждого отчета в интерфейсе исправить с прямого вызова открытия формы на процедуру, которая откроет либо форму встроенного отчета, либо внешнего

  25. если сможешь сделать через одну процедуру - жди косарь на телефон

    Ответы: (25)
  26. (24) Не, ну вообще проблема надумана конечно. По уму надо просто сделать на каждый пункт меню по процедуре в одну строку которые будут вызывать третью с параметром. Разве что в порядке изврата найти способ узнать на каком ты пункте меню из первой же.

  27. Дядя Васька на каждый пункт меню по процедуре

    хех. это-то и ребенок сделает)
    тут весь вопрос в том, как сделать в одной процедуре

    Ответы: (27)
  28. 17.04.2014 18:13:12 отредактировано Дядя Васька

    (26) Ну что-то реальное и будет в одной, а эти-то по строчке. Чем тебе такой вариант не вариант?

    Процедура ОткрытьКакойТоОтчет(АКакой)
            // Тут много-много страшных буков
    	ОткрытьФорму(АКакой);
    КонецПроцедуры
    
    Процедура ОткрытьОтчет1() Экспорт
    	ОткрытьКакойТоОтчет("Отчет.Отчет1.ФормаОбъекта");
    КонецПроцедуры
    
    Процедура ОткрытьОтчет2() Экспорт
    	ОткрытьКакойТоОтчет("Отчет.Отчет2.ФормаОбъекта");
    КонецПроцедуры
    
    Ответы: (29)
  29. А если смогу через одну, то извратнее всяко будет. Только в качестве решения абстрактной задачи, а для боевой конфы ни к чему.

  30. (27)[...].. да нормальный вариант, только я тему создавал, чтобы такой вариант избежать.

  31. + в теме написано - как можно передать параметры открываемого отчета, чтобы запускать с одной процедуры все отчеты.
    как написать 100500 процедур на 100500 отчетов это и так понятно

  32. + и в коде у тебя не все верно. прежде, чем открыть форму отчета, отчет нужно создать, чтобы запустить модуль объекта, там могут быть обработчики, влияющие на формирование отчета

  33. В данном конкретном случае подразумевается обычный интерфейс, как у тебя в сабже. Я не запускаю модуль объекта, а открываю основную форму отчета. Из меню ты особо много параметров все равно не передашь. Один пункт меню выполняет одно действие в любом случае. Передавать именно из него 100500 параметров смысла нет, достаточно знать какой пункт.

  34. Что такое "запустить модуль объекта" вообще хотел бы я знать :) Так-то можно из модуля экспортную процедуру запустить, но чтобы весь... )))

    Ответы: (36)
  35. Дядя Васька не запускаю модуль объекта, а открываю основную форму отчета.

    ну и зря) раз предлагаешь варианты - предлагай их правильно

  36. пример-то не о том как запустить реальный отчет. А вообще, как свести к одной процедуре, а те что вызываются будут по одной строке. Комментарий в ней как бэ намекает )

    Ответы: (37)
  37. (33) модуль объекта "запускается", когда ты пишешь
    Отчет = Отчеты.мойОтчет.Создать();

    в модуле могут быть прописана инициализация реквизитов объекта.
    например, у отчета есть реквизит Организация и в модуле объекта может быть прописано явно, что Организация = ПолучитьЗначениеПоУмолчанию("Организация") и все в таком духе. пишется это вне процедур и функций, прямо в теле модуля и выполняется при инициализации(создании) объекта.

    а в модуле формы такой инициализации реквизитов может и не быть

  38. (35) ну я понел, да. вариант нормальный, типа такого скорее всего и придется, параметры судя по всему никак не передать

    Ответы: (38)
  39. (37) А смысл их передавать, если один пункт меню - одно действие. Что ты их в интерфейсе пропишешь, что в модуле - один хрен.

или зарегистрируйтесь чтобы ответить!