Запустить функцию из общего модуля?

  1. 8 г. назад

    Имеем Общий модуль с кучей разных функций. Нужно из процедуры вызывать функции с параметрами зная имя функиии и собственно список параметров.
    Например есть
    Функция ЗапуститьФункцию(ИмяФункции,Параметры)
    //Здесь нужно из общего модуля ОбщийМодульИмя запустить функцию ИмяФункции
    Ответ = ОбщийМодульИмя.ИмяФункции(параметры);
    КонецФункции

    Как такое замутить? Кроме как через метод Выполнить()

  2. ИмяФункции(параметры) Экспорт;
    Что мешает?

    Ответы: (2)
  3. (1) Это как? ИмяФункции имеет тип "Строка"

  4. Такая конструкция неправильная Ответ = ОбщийМодульИмя.ИмяФункции(параметры); Это так, чтобы было понятнее.
    Такое тоже не сработает ОбщийМодульИмя[ИмяФункции](параметры)

  5. В БСП есть такой код

     МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер");	
     Разделы = МодульТекущиеДелаСервер.РазделыДляОбъекта("РегистрСведений.АдресныеОбъекты");
    

    Но у меня как раз таки Общий модуль известен, а вот имя функции приходит в виде строки

  6. Функция СделатьВсе(ЧтоСделать, Параметры)
    Если ЧтоСделать = "Пыщь" Тогда

    ИначеЕсли ЧтоСделать = "Чпок" Тогда

    КонецЕсли;
    КонецФункции

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

  8. А что не так с "выполнить"?

    Ответы: (8)
  9. (7) Пришлось сделать через Выполнить. Другого не нашел

  10. Господа, раз уж такая пьянка пошла, еще вопрос.
    Сделал обновление данных в форме по таймеру через ПодключитьОбработчикОжидания
    Если период маленький, например 1, или 5 сек., то невозможно ничего изменять интерактивно. Вернее можно, но если не упел, за 1 сек, то значения очищаются, я так понимаю из-за того, что обновляется форма. Сами данные форма получает в фоновом режиме
    Сейчас пытаюсь сделать через оповещение, но тоже сомнения. Может есть еще какие кошерные способы?

    Ответы: (10) (11)
  11. (9) почему сомнения вызывает?
    Ты опять все данные обновляешь?

    Ответы: (12)
  12. tsr Сделал обновление данных

    tsr обновляется форма

    Да ты маг просто ) Юзай оповещения

  13. (10) Да без разницы, все, или одну строчку в таблице. Все-равно форма перерисовывается. Что-то такое читал, что в новой версии можно перерисовать только нужные элементы, но где такое читал, уже не помню. Сейчас пытаю версию 8.3.9

    Ответы: (13) (14)
  14. tsr Все-равно форма перерисовывается.

    :)

  15. (12) какая разница какая версия? ты сейчас изменения в таблицах получаешь на клиенте и на форму пишешь или опять все таблицы?

    Ответы: (15)
  16. (14) Даже если одну строчку меняю

    Ответы: (18)
  17. В общем не вышел каменный цветок. Сделал через оповещение. Т.е. В одной обработке работа с интерфейсом. Другая периодически читает данные с сайта и через оповещение передает в первую. Те же яйца, только в профиль. Если не успел в первой изменить данные в поле, то они не сохраняются. Данные считываются с периодичностью 2 сек.
    И че делать?

    Ответы: (18)
  18. Есть еще идея. В одной форме показывать обновляемые данные, в другой редактировать и через оповещение работать. Что-то геморно получается:(

  19. tsr И че делать?

    ;)

    tsr Данные считываются с периодичностью 2 сек.

    подумать над постановкой задачи.
    1. пользователю нужны данные каждые 2 сек? Ему прилетает температура реактора?
    2. тебе уже написали, что нужно обновлять изменившиеся данные. а не все. Ты или не слышишь или не понимаешь о чем речь. Если ты пишешь

    tsr Даже если одну строчку меняю

    значит можно сделать вывод, что ты весь объект на сервер и обратно кидаешь и каждый раз обновляешь.

    Ответы: (19) (20) (22)
  20. sf Ему прилетает температура реактора?

    Ему прилетают данные с биржи

  21. sf значит можно сделать вывод, что ты весь объект на сервер и обратно кидаешь и каждый раз обновляешь.

    Обновляю только таблицы формы

    Ответы: (21)
  22. tsr Обновляю только таблицы формы

    как обновляешь? давай код уже

  23. sf тебе уже написали, что нужно обновлять изменившиеся данные. а не все. Ты или не слышишь или не понимаешь о чем речь.

    Каким образом поменять изменившиеся данные в таблице, если в ней нужно удалить строку, или добавить строку? Ты сам то понимаешь, что пишешь? При любом изменении в таблице колбасит всю форму

    Ответы: (24)
  24. ...
     Объект.Ордера.Удалить(); // или ничего не удалять
     Объект.Ордера.Добавить(); // или ничего не добавлять
    
    Ответы: (24)
  25. tsr Каким образом поменять изменившиеся данные в таблице, если в ней нужно удалить строку, или добавить строку?

    tsr Объект.Ордера.Удалить(); // или ничего не удалять
    Объект.Ордера.Добавить(); // или ничего не добавлять

    :)

    Ответы: (25)
  26. (24) Ну ты понял, надеюсь?
    Кстати, даже если на форме нет Таблиц, а заполняется только ТЧ, т.е. вообще ничего не перерисовывается, все равно та же шняга.

    Ответы: (26)
  27. tsr Ну ты понял, надеюсь?

    да все понятно, конечно. ты семерочник и относительно недавно перелез на 8ку?

    Ответы: (27)
  28. (26) Походу не понял все-таки. Но по любому, весь код я сюда тащить не буду.
    На семерке последний раз работал примерно 10 лет назад.

    Ответы: (28)
  29. tsr На семерке последний раз работал примерно 10 лет назад.

    Это аргумент профессионализма ;)
    Кому нужен твой копрокод тут? В первую очередь тебе, чтобы подсказали.
    Сколько у тебя строк в таблице?

    Ответы: (29)
  30. (28) Разговор ни о чем. Ни одного дельного совета от тебя лично не получил. Так что на этом можно диалог завершить

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