Ноль может быть правильным значением, хотя ЗначениеЗаполнено вернёт Ложь. Булево Ложь, напротив, считается заполненным.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Значения заданы в коде. Учебный контракт: Количество — целое число от 0, поэтому нулевой остаток допустим.
Функция ЗначениеЗаполнено имеет специальные правила для Булево, строк, массивов, Null и Неопределено.
Сообщить(Не ЗначениеЗаполнено(Неопределено));
Сообщить(Не ЗначениеЗаполнено(Null));
Сообщить(Не ЗначениеЗаполнено(" "));
Сообщить(ЗначениеЗаполнено("Книга"));
Сообщить(Не ЗначениеЗаполнено(0));
Сообщить(ЗначениеЗаполнено(Ложь));
ПустойМассив = Новый Массив;
Сообщить(Не ЗначениеЗаполнено(ПустойМассив));
ПустойМассив.Добавить(0);
Сообщить(ЗначениеЗаполнено(ПустойМассив));
Количество = 0;
Если ТипЗнч(Количество) <> Тип("Число") Тогда
ВызватьИсключение "Количество должно быть числом";
КонецЕсли;
Если Количество < 0 Или Количество <> Цел(Количество) Тогда
ВызватьИсключение "Учебный контракт допускает целые количества от нуля";
КонецЕсли;
Сообщить("Количество 0 допустимо по учебному контракту");
Настройки = Новый Структура("Количество", Количество);
Если Не Настройки.Свойство("Количество", ЗначениеКоличества) Тогда
ВызватьИсключение "Поле Количество отсутствует";
КонецЕсли;
Сообщить(ЗначениеКоличества = 0);Разбор по шагам
Проверяем пустые значения отдельно от валидности данных: 0 не заполнено по правилу функции, но допустимо в нашем контракте.
Для типа Булево функция всегда возвращает Истина, в том числе для Ложь.
Массив из одного элемента 0 считается заполненным по наличию элемента, не по заполненности этого элемента.
Для Структуры проверяем наличие ключа через Свойство, затем тип и ограничения значения; не вызываем ЗначениеЗаполнено на произвольном мутабельном объекте.
Как проверить результат
Все контрольные сообщения Истина, а количество 0 явно признано допустимым.
Замените Количество на -1 или 1.5: бизнес-проверка отклоняет его независимо от ЗначениеЗаполнено.
Удалите ключ из структуры: Свойство возвращает Ложь, что отличается от существующего значения 0.
Ожидаемый результат
Разделены отсутствие поля, специальное правило заполненности и проверка учебного числового контракта.
На что обратить внимание
Не проверяйте Булево на истинность через ЗначениеЗаполнено: для Ложь результат этой функции тоже Истина.
Функция не поддерживает произвольные мутабельные значения и может вызвать исключение. Проверяйте конкретный API типа.
Допустимость нуля зависит от задачи: здесь она объявлена в учебном контракте, не перенесена на все документы конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.