Добрый день.
Создал отчёт в СКД. &Курс обязателен к заполнению.
Как пользователю вывести сообщение, если курс не заполнен?
---
Настройте вывод Курса в быстрые/доступные параметры.формы отчета
и все, больше ни каких проверок не надо.
если пользователь его не заполнит, он и так получит сообщение при формировании отчета!
---
нарисовать свою кнопку "Сформировать" вместо типовой и по нажатию этой кнопки выполнять проверку заполнености параметра СКД.
Если параметры заполнены, то выполнить формирование и вывод результата отчета.
---
можно сделать проверку при компоновке результата. по-моему даже в УФ прокатит
---
Спасибо всем за предложенные варианты. Вопрос можно решить всеми перечисленными способами.
Решение:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    КурсДокумента = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КурсДокумента");
    Курс = КурсДокумента.Значение;
    Если Курс = 0 Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Курс не установлен";
    Сообщение.Сообщить();
    СтандартнаяОбработка = Ложь;
    КонецЕсли;

    КонецПроцедуры
```
---
Настройте вывод Курса в быстрые/доступные параметры.формы отчета
и все, больше ни каких проверок не надо.
если пользователь его не заполнит, он и так получит сообщение при формировании отчета!
---
нарисовать свою кнопку "Сформировать" вместо типовой и по нажатию этой кнопки выполнять проверку заполнености параметра СКД.
Если параметры заполнены, то выполнить формирование и вывод результата отчета.
---
Поставить использовать - Всегда. И для пущей сложности поделить где-нибудь. При делении на 0 будет ошибка :)
---
можно сделать проверку при компоновке результата. по-моему даже в УФ прокатит
---
Ничего не нужно, добавить на вкладку отчета можно реквизит. 1С своими средствами выдаст ошибку, правда будет не красивая.
А если хочешь красиво вывести, тогда в модуле объекта отчета процедура ОбработкаПроверкиЗаполнения

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

    Если НЕ ЗначениеЗаполнено(Курса) тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Не заполнен курс";
    Сообщение.Сообщить();
    Отказ = Истина;
    КонецЕсли;

    КонецПроцедуры
```
---
ПроверяемыеРеквизиты должны быть заполнены?
Туда необходимо передать массив проверяемых значений?
---
У меня реквизит был в отчете.
---
Спасибо всем за предложенные варианты. Вопрос можно решить всеми перечисленными способами.
Решение:

```1c
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    КурсДокумента = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КурсДокумента");
    Курс = КурсДокумента.Значение;
    Если Курс = 0 Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Курс не установлен";
    Сообщение.Сообщить();
    СтандартнаяОбработка = Ложь;
    КонецЕсли;

    КонецПроцедуры
```
---
Не совсем правильно.

Синтаксис:

ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
Параметры:

<ПроверяемыеРеквизиты>

Тип: Массив.
Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
---
Возможно для Вас вопрос не сложный, но для меня пока есть затруднения. Прошу строго не судить:))
Так массив реквизитов каким образом получить?
В Процедуре ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
добрался до проверяемых параметров с помощью КомпановщикНастроек, проверил заполненность, если не заполнили перевёл третий праметр функции СтандартнаяОбработка в значение ЛОЖЬ. Процесс остановлен.

В вариант с ОбработкаПроверкиЗаполнения будет: поправьте если где ошибся

```1c
    Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    КурсДокумента = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КурсДокумента");
    Если НЕ ЗначениеЗаполнено(КурсДокумента) Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Не заполнен курс";
    Сообщение.Сообщить();
    Отказ = Истина;
    КонецЕсли;

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