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