Заполнение документа в 1С

1С 8.3 Имеется документ с реквизитами, реквизиты не проверяются, все кроме статуса, но нужно чтобы если человек не заполнил статус, то всего лишь выводилось предупреждение, но документ проводился, а за место статуса указывался статус (По умолчанию), подскажите как это программно реализовать, пробовал такой код

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

Программа не выводит ошибок, но и при проведении с пустой строчкой статуса просто проводит документ


Ответы (1 шт):

Автор решения: antizilis

Как я понимаю реквизит Статус имеет строковый тип, поэтому можно воспользоваться методом ЗначениеЗаполнено

Описание: Глобальный контекст.ЗначениеЗаполнено (Global context.ValueIsFilled) Глобальный контекст (Global context) ЗначениеЗаполнено (ValueIsFilled) Синтаксис:

ЗначениеЗаполнено(<Значение>) Параметры:

<Значение> (обязательный)

Тип: Произвольный. Значение для проверки. Возвращаемое значение:

Тип: Булево. Для значений типа Булево всегда возвращается Истина. Для значений типа Строка возвращается Истина, если в строке есть непробельные символы. Для массивов и коллекций возвращается Истина, если в них есть хотя бы 1 элемент. Для Неопределено и Null всегда возвращается Ложь. Описание:

Функция проверяет, отличается ли переданное значение от значения по умолчанию того же типа. Не работает с мутабельными значениями. При передаче мутабельного значения функция вызывает исключение.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Примечание:

Источники данных не проверяются, значение считается заполненным всегда.

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