На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
  
> 8.2. Можно ли в "Выполнить" запихнуть функцию или альтернативное решение?
    ExpandedWrap disabled
      СтрокаТ = "
      |Функция ПолучитьОдин()
      |   Возврат 1;
      |КонецФункции
      |Сообщить(""Один=""+ПолучитьОдин());
      |";
      Выполнить(СтрокаТ);

    Даёт ошибку:
    {(2,1)}: Ожидается последовательность операторов
    <<?>>Функция ПолучитьОдин()

    Есть ли способ объявить произвольную функцию?
    Сообщение отредактировано: lastlogic -
      Цитата lastlogic @
      Есть ли способ объявить произвольную функцию?

      Хм.. Интересный вариант.
      Не пробовал, но, думаю, не получится. Можно попробовать засунуть функцию во внешнюю обработку и обращаться к внешней обработке.
        Пока сделал как правой рукой левое ухо чесать:
        ExpandedWrap disabled
          Перем ФункцииОбщегоМодуля;
           
          Функция ПолучитьЗначениеВстроеннойФункции(ИмяФункции, Параметр1 = Неопределено, Параметр2 = Неопределено, Параметр3 = Неопределено, Параметр4 = Неопределено)
              Перем Результат;
              
              Стр = ФункцииОбщегоМодуля.НайтиПоЗначению(ИмяФункции);
              Если Стр = Неопределено Тогда
                  ВызватьИсключение("Неопределена встроенная функция """+ИмяФункции+"""");
              Иначе
                  Выполнить(Стр.Представление);
              КонецЕсли;
              
              Возврат Результат;
          КонецФункции
           
          ФункцииОбщегоМодуля = Новый СписокЗначений;
          ФункцииОбщегоМодуля.Добавить("ПолучитьОдин", "Результат = 1");
          Сообщить("Проверить работу функции="+ПолучитьЗначениеВстроеннойФункции("ПолучитьОдин"));
          По-моему в вычислить() можно было нечто подобное завести... Могу и ошибаться
            Цитата Outlander @
            По-моему в вычислить() можно было нечто подобное завести

            Вычислить изначально треба выражение, пробовал...



            ЗЫ:
            Немного не по теме, но вот например в джава скрипте есть кроме объявления
            function abc(Prm){}
            можно впиндюрить
            abc = function(Prm){}

            может и одинэсники замутили что-то подобное?
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0800 ]   [ 15 queries used ]   [ Generated: 7.04.26, 04:16 GMT ]