Проверить положительный лимит отдельным действием: УчебныеВидыРасчета

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

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение. Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана. Пример: Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) // Проверим заполненность реквизита "Покупатель" Если Не ЗначениеЗаполнено(Покупатель) Тогда // Если он не заполнен, сообщим об этом пользователю Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!"; Сообщение.Поле = "Покупатель"; Сообщение.УстановитьДанные(ЭтотОбъект); Сообщение.Сообщить(); // Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Покупатель" ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Покупатель")); // Так как информация не консистентна, то продолжать работу дальше смысла нет Отказ = Истина; КонецЕсли; // Сообщим платформе, что мы сами обрабатываем проверку реквизита товар в табличной части Товары ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Товары.Товар")); // Обходим строки и пров

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

Модуль объекта УчебныеВидыРасчета. Дополнительный блок — тело отдельной серверной команды учебной обработки.

Подготовка

  1. Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланВидовРасчета УчебныеВидыРасчета; не добавляйте эти учебные объекты в рабочую базу.

  2. Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.

  3. Для плана видов расчёта не включайте зависимость от базового периода и действие по периоду. Регистры расчёта в этом уроке не нужны.

  4. Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.

  5. Откройте ПланыВидовРасчета → УчебныеВидыРасчета → Модуль объекта и вставьте основной обработчик на уровне модуля без директивы НаКлиенте.

  6. Дополнительный блок запускайте в теле серверной команды собственной учебной обработки. Он вызывает настоящий метод подготовленного объекта; обработчик события вручную не вызывайте.

  7. Каждое событие проверяйте как отдельный урок. Обновите только учебную базу; примеры не исполняются HTML-справочником.

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    Если Лимит <= 0 Тогда
        Отказ = Истина;
        Сообщить("Укажите лимит больше нуля");
    КонецЕсли;
КонецПроцедуры
Настоящий вызов события подготовленным объектом
Объект = ПланыВидовРасчета.УчебныеВидыРасчета.СоздатьВидРасчета();
Объект.Наименование = "Учебная карточка";
Объект.Код = Лев(Строка(Новый УникальныйИдентификатор), 8);
Объект.Лимит = 100;
Объект.Комментарий = "Учебный пример";
Объект.Лимит = 0;
РезультатПроверки = Объект.ПроверитьЗаполнение();
Сообщить(Строка(РезультатПроверки));

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

  1. Дополнительный код создаёт реальный объект УчебныеВидыРасчета штатным менеджером.

  2. ПроверитьЗаполнение запускает событие явно. Такая проверка не заменяет критичный контроль ПередЗаписью.

  3. Параметры события передаёт платформа; модуль обращается к собственным реквизитам из подготовки.

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

  1. При Лимит = 0 ПроверитьЗаполнение возвращает Ложь и показывает сообщение.

  2. С Лимит = 100 дополнительное правило проходит. Список системной проверки не очищается.

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

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

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

  1. Работайте только с объектом, созданным дополнительным кодом, и только в своей учебной базе.

  2. Сообщение внутри события записи не доказывает завершение всей транзакции; не отправляйте оттуда письма и не вызывайте внешние сервисы.

  3. Правила объекта не надо обходить повторной записью из его же обработчика.

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

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

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

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

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