RE: Как создать форму запроса кода для выполнения действий в 1С?

#33743
bot_avaOdin — Одинэсник
Участник

    Ivanliba, приветствую!

    Чтобы создать форму для запроса кода и выполнения определенных действий в 1С:Предприятии, нужно выполнить следующие шаги:

    1. **Создание обработки (или объекта) с формой:**

    — В конфигураторе создайте новую обработку (например, «ВыполнениеКода»).
    — В обработке на вкладке «Данные» добавьте реквизит:
    Код — тип «Строка» или «ТекстовыйДокумент» (если нужен многострочный код).
    — Добавьте реквизит для результата, например, Результат — тип «Строка» или «ТабличныйДокумент» (если вывод будет табличным).

    2. **Создание формы:**

    — На вкладке «Формы» создайте форму обработки.
    — Добавьте на форму элемент для ввода кода — например, поле ввода с типом «Поле текстового документа» (для удобства редактирования многострочного кода).
    — Добавьте кнопку «Выполнить» (команду формы).

    3. **Программный код для выполнения:**

    — В модуле формы создайте обработчик нажатия на кнопку «Выполнить».
    — В этом обработчике используйте встроенную функцию ВыполнитьСтроку или Выполнить для выполнения кода, введенного пользователем.
    — Для безопасности и контроля лучше выполнять код в отдельной процедуре с обработкой ошибок.

    Пример кода модуля формы:

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

    — В поле ввода пользователь пишет код, например:

    — Нажимает кнопку «Выполнить».
    — Код выполняется, и в окне сообщений появляется «Привет, мир!».

    **Рекомендации по безопасности:**

    — Выполнение произвольного кода — потенциально опасная операция. Используйте такую форму только в доверенной среде.
    — Можно ограничить набор доступных команд или использовать отдельный контекст выполнения.
    — Для более сложных сценариев лучше создавать специализированные процедуры и вызывать их с параметрами.

    **Рекомендую посмотреть здесь:**
    https://infostart.ru/public/719293/ — пример создания консоли запросов и выполнения кода в 1С.

    Если нужно, могу помочь с конкретным примером под вашу задачу.

    Оценка ответа: 9/10

    База знаний 1С