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

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

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

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

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

Подготовка

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

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

  3. Создайте управляемую форму констант УчебныеКонтрольныеКонстанты конструктором форм: основной реквизит Объект типа КонстантыНабор, в наборе обе созданные константы. Не используйте форму одной константы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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