Передать Основание при открытии УчебныеСогласования

Учебные задачи

Основанием собственного нового объекта служит заранее составленная структура, которую получает ОбработкаЗаполнения. Это не автоматически выбранный рабочий документ.

Где и как запускать

Клиентская команда отдельной внешней учебной формы; дополнительные блоки размещаются строго в указанных модулях.

Подготовка

  1. Работайте в отдельной пустой учебной конфигурации. Создайте справочник УчебныеИсполнители и предопределённый элемент Демонстрационный с наименованием Учебный исполнитель.

  2. Создайте задачу УчебныеСогласования: строковый номер длиной 12, автонумерация, наименование длиной 100. Добавьте реквизит адресации Исполнитель типа СправочникСсылка.УчебныеИсполнители и выберите его основным реквизитом адресации. Здесь используется прямая адресация; регистр ролевой адресации не нужен.

  3. Создайте параметр сеанса УчебныйИсполнитель того же ссылочного типа. В свойстве задачи Текущий исполнитель выберите этот параметр. Запросы урока передают исполнителя явно и не зависят от начального значения параметра сеанса.

  4. Создайте бизнес-процесс УчебноеСогласование со строковым номером длиной 12 и автонумерацией. В свойстве Задача выберите УчебныеСогласования. Карта маршрута: Старт (начало) → Согласовать (действие) → Завершение. В точке Согласовать задайте адресацию Исполнитель = Демонстрационный, Групповая = Ложь.

  5. И у задачи, и у бизнес-процесса создайте обычные реквизиты КомментарийУчебный (Строка 100), Сумма (Число 12.2), Подтверждено (Булево), ЗапретУдаления (Булево). Добавьте табличную часть Детали с колонками Наименование (Строка 100) и Количество (Число 10.0).

  6. Создайте общий реквизит УчебныйИсточник типа Строка 20, Разделение данных = Не использовать. Включите только учебную задачу и бизнес-процесс в его состав. Это не разделитель и не настройка рабочей конфигурации.

  7. В модуле объекта бизнес-процесса разместите отдельный обработчик СогласоватьПриСозданииЗадач из дополнительного блока. В свойствах точки Согласовать назначьте его событию ПриСозданииЗадач. Платформа записывает сформированные задачи после обработчика; внутри него Записать не вызывается.

  8. Обновите учебную базу. Создайте серверный общий модуль УчебныеПроцессы: поместите туда функцию ПодготовитьУчебныйПроцесс из отдельного блока и процедуру ВыполнитьПример() Экспорт. Основной код без заголовка вставляйте в тело этой процедуры и вызывайте её из серверной команды своей обработки.

  9. Каждый запуск подготовки действительно создаёт новый учебный бизнес-процесс и его задачу. Не используйте рабочую базу. Табличные части и обычные реквизиты заполняются только у этих новых объектов; ничего не отправляется по сети.

  10. В модуле собственного объекта не отключайте стандартную обработку заполнения. Имена полей структуры должны точно совпадать с созданными реквизитами.

  11. Если используете Основание и написали свой ОбработкаЗаполнения, сохраните обработку данной структуры; другой алгоритм может изменить результат.

  12. У собственного Задача УчебныеСогласования создайте управляемую объектную форму УчебноеОткрытие, основной реквизит Объект. Выведите комментарий и число; стандартные реквизиты также должны быть видны.

  13. Основной блок разместите в модуле отдельной внешней учебной формы: команда ОткрытьСПримером и её кнопка. Это код вызывающей формы, не код внутри открываемой карточки.

  14. Серверный производитель, если он показан, находится отдельно в том же модуле внешней формы. Для процесса / задачи функция подготовки остаётся в серверном общем модуле УчебныеПроцессы, обработчик точки — в модуле своего процесса.

  15. Демонстрация не запускается браузером. Открытие новой формы само по себе не выполняет Записать, Старт или Выполнить.

&НаКлиенте
Процедура ОткрытьСПримером(Команда)
    ПараметрыОткрытия = Новый Структура;
    Заполнение = Новый Структура("КомментарийУчебный,Сумма", "Заполнено при открытии", 25);
    ПараметрыОткрытия.Вставить("Основание", Заполнение);
    Заполнение.Вставить("Наименование", "Учебная задача");
    Заполнение.Вставить("Исполнитель", ПредопределенноеЗначение("Справочник.УчебныеИсполнители.Демонстрационный"));
    ОткрытьФорму("Задача.УчебныеСогласования.Форма.УчебноеОткрытие", ПараметрыОткрытия, ЭтаФорма);
КонецПроцедуры

Разбор по шагам

  1. Создаём структуру с точным именем стандартного параметра.

  2. Передаём её в ОткрытьФорму для точной собственной формы нужного типа.

  3. Основанием собственного нового объекта служит заранее составленная структура, которую получает ОбработкаЗаполнения. Это не автоматически выбранный рабочий документ.

Как проверить результат

  1. Новый объект показывает комментарий Заполнено при открытии и число 25 при сохранённой стандартной обработке заполнения.

  2. Автоматической записи нет. Закройте форму без сохранения; неизвестные поля структуры не становятся реквизитами метаданных.

Ожидаемый результат

Параметр применяется в настоящем контексте собственного объекта и формы.

На что обратить внимание

  1. Не переносите учебные имена в рабочую конфигурацию без создания этих метаданных.

  2. Не передавайте Ключ вместе с параметрами создания, ожидая новый объект: существующий ключ означает редактирование сохранённого.

  3. При копировании процессы и задачи не следует считать запущенными / выполненными; состояния, адресация и маршрут требуют отдельного контроля.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.