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

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

Передаём структуру начальных реквизитов для нового объекта.

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

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

Подготовка

  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С» и не аффилирован с ней.