Кабинет
На этой странице

Рецепты

Внешняя обработка с нуля

Цель — новая внешняя обработка с формой, реквизитами, командой и кодом — без ручного создания файлов проекта. Проект создаётся штатным сервисом EDT, остальное собирается инструментами метаданных, форм и кода.

обновлено 30.09.2026плагин 0.2.0 · EDT 2025.2Предложить правку или письмом

Предпосылки

  • Базовая конфигурация открыта в EDT — в примерах УТ2020: от неё обработка берёт версию платформы.
  • Имя обработки — ваше, в примерах <Обработка>.
  • Действует ключ или бесплатный доступ.

Шаги

1. Проект обработки

project_write
{
  "operation": "create_external_processing",
  "project_name": "<Обработка>",
  "base_project": "УТ2020",
  "synonym": "<Представление обработки>"
}

Создаётся проект с пустой внешней обработкой того же имени. Дальше все вызовы — с "project": "<Обработка>".

2. Форма

metadata_read — контракт
{ "project": "<Обработка>", "fqn": "ExternalDataProcessor.<Обработка>.Form.Форма#help" }

Справка перечисляет допустимые виды формы для обработки. Затем:

metadata_write
{
  "project": "<Обработка>",
  "operation": "create",
  "fqn": "ExternalDataProcessor.<Обработка>.Form.Форма",
  "definition": { "form_kind": "<вид из справки>" }
}

Ответ содержит Preview с реквизитами и деревом элементов созданной формы. Неподходящий вид — отказ со списком допустимых.

3. Реквизиты формы одной пачкой

form_write
{
  "project": "<Обработка>",
  "operation": "create",
  "fqn": "ExternalDataProcessor.<Обработка>.Form.Форма.Attribute",
  "definition": [
    { "name": "НачалоПериода", "type": "Дата(Date)", "title": "Начало периода" },
    { "name": "Организация", "type": "СправочникСсылка.Организации", "title": "Организация" }
  ]
}

Тип проверяется по списку, который EDT допускает для реквизита формы: неподдерживаемый тип даёт отказ, а не молчаливый «неизвестный».

4. Команда и поля

form_write
{
  "project": "<Обработка>",
  "operation": "create",
  "fqn": "ExternalDataProcessor.<Обработка>.Form.Форма.Command.Выполнить",
  "definition": { "action": "Выполнить", "title": "Выполнить" }
}

Поля и кнопку добавьте пачкой по адресу ….Form.Форма.Item: элементы { "name": "…", "kind": "field", "data_path": "НачалоПериода" } и { "name": "КнопкаВыполнить", "kind": "button", "command": "Выполнить" }.

5. Код формы

code_write
{
  "project": "<Обработка>",
  "module_fqn": "ExternalDataProcessor.<Обработка>.Form.Форма",
  "operation": "create_method",
  "area": "ОбработчикиКомандФормы",
  "content": "&НаКлиенте\nПроцедура Выполнить(Команда)\n\n\tВыполнитьНаСервере();\n\nКонецПроцедуры"
}

Несколько методов — массивом в content: одна проверка синтаксиса и одна запись. Код с синтаксической ошибкой не записывается — ответ 🟠 rolled_back с позицией ошибки.

Проверка

  • form_read с адресом ExternalDataProcessor.<Обработка>.Form.Форма — дерево формы с полями и кнопкой; грань #screenshot — картинка формы.
  • validate с project: "<Обработка>" и fqn: "ВнешняяОбработка.<Обработка>" — точечная проверка объекта, включая неизвестные идентификаторы в коде.
  • Файл .epf собирается штатными средствами EDT — экспортом проекта внешней обработки; Кванта его не собирает.

Откат

Проект новый, поэтому откат — закрыть и удалить его: project_action с операцией detach и "id": "<Обработка>", затем удалить папку проекта. Отдельные шаги отменяются снапшотом, сделанным после шага 1.

Нашли ошибку — предложите правку.обновлено 30.09.2026

Например: metadata_write, «порт занят», коллекционный адрес.

↑ ↓ выборEnter открыть/ или Ctrl K — открыть поиск