В форме внешней обработки вводятся данные( реквизиты). Как можно проверить их на заполнение до создания документов, до вызова основных процедур?
Есть свойство АвтоОтметкаНезаполненного, она дает подчеркивание не заполненного реквизита, этого мало.
Если взять Значение = "Неопределено" то как выстроить код?
---
Итог:

```1c
    &НаКлиенте
    Процедура Сформировать(Команда)

    ПроверитьЗаполнение();

    Если Не ПроверитьЗаполнение() Тогда
    Возврат;
    КонецЕсли;

    СоздатьСчетАкт();

    КонецПроцедуры

    &НаСервере
    Функция РеквизитыЗаполнены()
    Возврат ПроверитьЗаполнение();
    КонецФункции
```

Спасибо всем., обработка завершена.
---
можно на реквизитах поставить свойство Проверка заполнения - Выдавать ошибку и перед созданием документа вызвать метод обработки ПроверитьЗаполнение(). А можно свой аналог такой функции написать и ее вызывать перед созданием документа, где выполнить все необходимые проверки и вернуть флаг разрешающий или запрещающий дальнейшее выполнение
---
Поставил уже на реквизитах.
Вот соображаю как прикрутить это - ПроверитьЗаполнение().
Есть пример использования?
погуглю еще обязательно.
---
В Свойствах формы Установить галку "ПроверятьЗаполнениеАвтоматически"
В свойствах реквизитов Проверка заполнения - Выдавать ошибку
И в нужной процедуре вызываем проверку
ПроверитьЗаполнение();
---
Есть пример использования?
Данный метод является методом формы, поэтому если использовать в контексте данной формы, то можно вызвать например так:

```1c
    Функция РеквизитыЗаполнены()
    Возврат ПроверитьЗаполнение();
    КонецФункции
```

И в нужном месте функцию вызвать. Если же проверяется из другой формы, то сначала надо получить форму нужную, а потом вызывать метод:

```1c
    Форма = ПолучитьФорму(Нужная форма);
    ВсеЗаполнено = Форма.ПроверитьЗаполнение();
```
---
Спасибо!
А еще момент...
Как это использовать при создании документов, что бы в случает нахождения ошибок, документ не создавался, что бы процедура обрывалась?
---
Гугли по ключевым словам ОбработкаЗаполнения, Заполнить, ОбработкаПроверкиЗаполнения, ПроверитьЗаполнение. И вдумчиво читаем. Все уже давно разжевано. Потратишь время, зато раз и навсегда научишься делать правильно. Это гораздо эффективнее, чем получать на форуме обрывочные сведения.
---
Совет хороший, когда время не жмет.
Нашел ...

```1c
    Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

    // Проверим заполненность реквизита "Покупатель"

    Покупатель = ПроверяемыеРеквизиты.Найти("Покупатель");
    Если Не ЗначениеЗаполнено(Покупатель) Тогда

    // Если он не заполнен, сообщим об этом пользователю

    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = "Не указан Покупатель, на которого выписывается товарная накладная!";
    Сообщение.Поле = "Покупатель";
    Сообщение.УстановитьДанные(ЭтотОбъект);

    Сообщение.Сообщить();

    // Сообщим платформе, что мы сами обработали проверку заполнения реквизита "Покупатель"

    ПроверяемыеРеквизиты.Удалить(Покупатель);
    // Так как информация не консистентна, то продолжать работу дальше смысла нет

    Отказ = Истина;

    КонецЕсли;

    // Сообщим платформе, что мы сами обрабатываем проверку реквизита товар в табличной части Товары

    ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Товары.Товар"));

    // Обходим строки и проверяем заполнение реквизита

    Для Индекс = 0 по Товары.Количество()-1 Цикл
    СтрокаТовар = Товары.Получить(Индекс);
    Если Не ЗначениеЗаполнено(СтрокаТовар.Товар) Тогда
    Сообщение = Новый СообщениеПользователю();
    Сообщение.Текст = "В строке " + Индекс + " не заполнено значение товара";
    Сообщение.Поле = "Товары[" + Индекс + "].Товар";
    Сообщение.УстановитьДанные(ЭтотОбъект);
    Сообщение.Сообщить();
    Отказ = Истина;
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```

Пойду разбираться.
---
Итог:

```1c
    &НаКлиенте
    Процедура Сформировать(Команда)

    ПроверитьЗаполнение();

    Если Не ПроверитьЗаполнение() Тогда
    Возврат;
    КонецЕсли;

    СоздатьСчетАкт();

    КонецПроцедуры

    &НаСервере
    Функция РеквизитыЗаполнены()
    Возврат ПроверитьЗаполнение();
    КонецФункции
```

Спасибо всем., обработка завершена.
---
ПроверитьЗаполнение();
Можно было обойтись и без строки

```1c
    ПроверитьЗаполнение();
```

а сразу начать с

```1c
    Если Не ПроверитьЗаполнение() Тогда
```
---
а как быть с реквизитами которые есть только на форме? для них есть проверка заполнения?
---
В 8.3.22 для реквизитов таблиц появилась возможность выполнять проверку заполнения. Ждем когда из беты в релиз перейдет.