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

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

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

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

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

Подготовка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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