Выполнение произвольного кода

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

Писал для себя, соответственно включил то, в чем чаще была необходимость:

  • Возможность сохранять всё во внешнем файле, с автозагрузкой при открытии (включая параметры)
  • Шаблоны кода в виде дерева
  • Конструктор запросов (ctrl+T)
  • Быстрая вставка в код менеджера объекта (с поиском по ctrl+Q), либо имени общего модуля + при выборе перечисления возможность указать его значение
  • Использование внешних параметров (чтобы, например, быстро указать ссылку на объект без помощи выборок), автозаполнение списка параметров
  • Выполнение выделенного текста запроса (с автоподстановкой одноименных параметров) и вывод результата в отдельном окне (ctrl+R)
  • Добавление параметра по сtrl+I
  • Заполнение параметра из запроса

Пример подбора метаданных по соченанию сtrl+Q, поиск идет по вхождению строки в имени объекта метаданных:

Пример использования параметров:

Заданные параметры доступны через одноимённую переменную с типом структура, ключ структуры — это имя параметра.

7 Comments

  1. Fragster

    Для толстых форм есть инструменты разработчика, для управляемых — возможность запуска в толстом клиенте.

    Reply
  2. ya.Avoronov

    (1) Fragster,

    для управляемых — возможность запуска в толстом клиенте

    Смысл так извращаться, когда программного кода в одну строку, напиши себе сам под любые формы!

    Reply
  3. Fragster

    (2) ya.Avoronov, видимо, вы никогда не пользовались инструментами разработчика.

    Reply
  4. pvlunegov

    Подумайте, а что если вашу идею развить:

    1. Кусок кода с отдельными именованными процедурами и функциями. Как это все будет компилироваться в произвольный код и исполнятся?

    2. Любая идея хороша в определенных условиях и рамках

    3. Ваша идея не выдерживает задачи запуска произвольного кода по п.1 Значит ваша идея не так хороша, как вам кажется.

    4. Гораздо проще вместо запуска отдельного кода создавать фоновый процесс, формировать обработку (с программным заполнением кода) на диске и в фоновом процессе запускать ее.

    5. Преимущества такого подхода — запуск сколь угодно изощренных кусков кода. Независимость от базы и конфигурации, запуск в фоновом процессе — не мешает работе текущего сеанса в данной базе.

    6. Недостатки подхода — при запуске произвольного кода возникает возможность превышения прав у текущего пользователя (на определенные программные действия в базе) — это нужно проверять отдельно или забить на это

    Reply
  5. VmvLer

    в стандартных обработках «ЗагрузкаИзТабличногоДокумента»

    и «УниверсальныйПодборИОбработкаОбъектов»

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

    зачем городить городухи, если идеи пшик?

    Reply
  6. ArchLord42

    (2) можно сделать ярлык сразу для запуска ИР, ибо она уж очень удобная штука

    Примерно такой

    «C:Program Files (x86)1cv8common1cestart.exe» ENTERPRISE /S Localhost/MyIB /RunModeOrdinaryApplication /DEBUGGERURL»tcp://[::1]:1562″ /DEBUG

    Reply
  7. ger_kar

    Идеи всякие нужны, идеи всякие важны 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *