Процедура ПередЗаписью(Отказ)
Если ЭтоГруппа = Ложь И ЕдиницаИзмерения.Пустая()Тогда
Сообщить("Не указана основная ед. измерения!"); |
Отказ = Истина; |
КонецПроцедуры
Обратите внимание, что реквизит ЕдиницаИзмерения определен только для элементов справочника Номенклатура, поэтому сначала проверяется, что записывается именно элемент, а не группа (условие «ЭтоГруппа = Ложь»). |
|
Также заметьте, что вторая часть условия в операторе Если не выполняется, если первое условие не выполнено. Это происходит, потому, что, как уже говорилось в главе Встроенный язык, в 1С:Предприятии 8.0 применяется сокращенное вычисление условий. Если после вычисления части составного условия уже можно определить результат всего условия, то остальная часть условия не вычисляется. Если бы в нашем примере для группы вычислялась вторая часть условия, то выдавалась бы ошибка, поскольку реквизит ЕдиницаИзмерения для групп не определен. |
|