ПередНачаломДобавления: Задачи → УчебныеСогласования, свой обычный список

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

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

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

Модуль собственной обычной формы списка, толстый клиент; событие табличного поля СписокУрока.

Подготовка

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

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

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

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

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

  6. В своей учебной конфигурации подготовьте Задачи → УчебныеСогласования. После создания учебных метаданных задачи и процесса вручную создайте свою задачу Разобрать учебную книгу для предопределенного учебного исполнителя Демонстрационный. Маршрут не запускайте. В списке выберите Все задачи, чтобы задача не скрылась из-за текущего исполнителя сеанса.

  7. Мастером создайте именно обычную форму списка этого объекта. Основной реквизит и табличное поле должны остаться реальным списком метаданных, не ТаблицаЗначений. Поле назовите СписокУрока. Для журнала создаётся форма списка журнала, не форма документа.

  8. Добавьте реквизиты формы РазрешитьИзменение (Булево, исходно Ложь), ЗапретитьСворачивание (Булево, исходно Истина), Статус (Строка 200) и выведите их. Значения по умолчанию задайте в редакторе или при открытии своей формы.

  9. Основной блок назначьте событию СписокУрока → ПередНачаломДобавления через редактор. Обычная форма, толстый клиент в обычном режиме. Дополнительный первый параметр Элемент создаётся редактором поля; серверные директивы здесь не нужны.

  10. Каждый урок самостоятельный и использует только свои строки. Для положительного действия флажок снимается / устанавливается явно; ничего не проверяйте на рабочем справочнике, документе, плане обмена или задаче.

  11. Нажмите штатную команду Копировать своей строки: она отклоняется независимо от флажка. Затем попробуйте Добавить с выключенным и включенным РазрешитьИзменение. Новую строку / карточку после положительной проверки закройте без сохранения.

Процедура СписокУрокаПередНачаломДобавления(Элемент, Отказ, Копирование)
    Если Копирование Или Не РазрешитьИзменение Тогда
        Отказ = Истина;
        Статус = "Копирование запрещено; новое добавление требует своего подтверждения";
        Сообщить(Статус);
    КонецЕсли;
КонецПроцедуры

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

  1. Подготовьте собственные метаданные, сохраненные строки и обычную форму списка.

  2. Назначьте обработчик точному событию расширения своего списка.

  3. Выполните указанную команду и сравните отказ / разрешение на своей строке.

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

  1. Копирование собственной строки отклонено, обычное добавление разрешается только после подтверждения.

  2. Сигнатура расширения списка содержит Копирование, а у иерархических видов также Родитель и ЭтоГруппа. Она не подменяется базовым событием ТабличноеПоле с меньшим набором параметров.

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

Показан типичный интерфейсный контроль конкретной команды своего списка.

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

  1. Это не проверка прав и не серверный запрет записи. Защита данных должна дополнительно выполняться правами и серверной логикой объекта.

  2. Обычная форма списка не взаимозаменяема с управляемой таблицей динамического списка.

  3. BSL, проведение, обмен, изменение пометок и рабочего состояния агентом не запускались.

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

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

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

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

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