Остановить отрицательное значение до серверной записи

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

Клиентская проверка формы даёт быстрый отказ до отправки объекта на сервер. Контекст: Справочники → УчебныеКонтрольныеТовары → Формы → ФормаЭлемента.

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

Модуль управляемой формы: Справочники → УчебныеКонтрольныеТовары → Формы → ФормаЭлемента. Серверная и клиентская директивы уже указаны; не вставляйте процедуру внутрь другой.

Подготовка

  1. Все действия выполняйте только в отдельной учебной конфигурации.

  2. Создайте неиерархический справочник УчебныеКонтрольныеТовары: строковый код 10 с автонумерацией, наименование 100. Добавьте КонтрольноеЧисло (Число 15.2) и Комментарий (Строка 100).

  3. Создайте основную управляемую форму элемента с основным реквизитом Объект. Проверяйте новый элемент с наименованием Книга.

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

  5. Выведите основной числовой реквизит и комментарий на форму. Добавьте отдельный реквизит формы Статус (Строка 200), выведите его недоступным для редактирования.

  6. Откройте Справочники → УчебныеКонтрольныеТовары → Формы → ФормаЭлемента → Модуль формы. Назначьте событие ПередЗаписью одноимённой процедуре. Обновите только учебную базу.

  7. Примеры соседних событий можно объединить в одном модуле: каждая процедура должна существовать только один раз. Для обычного опыта задайте число 25 и комментарий Учебный объект.

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если Объект.КонтрольноеЧисло < 0 Тогда
        Отказ = Истина;
        Сообщить("Отрицательное значение не допускается");
    КонецЕсли;
КонецПроцедуры

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

  1. Платформа вызывает назначенный обработчик, передавая параметры именно своего расширения формы.

  2. Клиентская проверка формы даёт быстрый отказ до отправки объекта на сервер.

  3. Работа ведётся с реквизитами объекта, который полностью объявлен в подготовке.

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

  1. Введите -1 и нажмите Записать: запись отменяется с сообщением.

  2. Введите 25: эта клиентская проверка пропускает запись.

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

Остановить отрицательное значение до серверной записи для собственного учебного объекта.

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

  1. Эта проверка действует только при записи из данной формы; программную запись защищают правила модуля объекта.

  2. В этом клиентском событии не вызывайте &НаСервере и не меняйте свойства, вызывающие серверное обращение.

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

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

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

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

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