СКД. Сообщение пользователю.

1. applesound 1 03.06.20 18:19 Сейчас в теме
Добрый день.
Создал отчёт в СКД. &Курс обязателен к заполнению.
Как пользователю вывести сообщение, если курс не заполнен?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. soft_wind 03.06.20 18:26 Сейчас в теме
(1) Настройте вывод Курса в быстрые/доступные параметры.формы отчета
и все, больше ни каких проверок не надо.
если пользователь его не заполнит, он и так получит сообщение при формировании отчета!
3. nomad_irk 76 03.06.20 18:26 Сейчас в теме
(1) нарисовать свою кнопку "Сформировать" вместо типовой и по нажатию этой кнопки выполнять проверку заполнености параметра СКД.
Если параметры заполнены, то выполнить формирование и вывод результата отчета.
5. toypaul 63 03.06.20 19:29 Сейчас в теме
можно сделать проверку при компоновке результата. по-моему даже в УФ прокатит
8. applesound 1 04.06.20 12:31 Сейчас в теме
Спасибо всем за предложенные варианты. Вопрос можно решить всеми перечисленными способами.
Решение:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	КурсДокумента = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КурсДокумента");
	Курс = КурсДокумента.Значение;
	Если Курс = 0 Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Курс не установлен";
		Сообщение.Сообщить();
		СтандартнаяОбработка = Ложь;
	КонецЕсли;
		
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 03.06.20 18:26 Сейчас в теме
(1) Настройте вывод Курса в быстрые/доступные параметры.формы отчета
и все, больше ни каких проверок не надо.
если пользователь его не заполнит, он и так получит сообщение при формировании отчета!
3. nomad_irk 76 03.06.20 18:26 Сейчас в теме
(1) нарисовать свою кнопку "Сформировать" вместо типовой и по нажатию этой кнопки выполнять проверку заполнености параметра СКД.
Если параметры заполнены, то выполнить формирование и вывод результата отчета.
4. toypaul 63 03.06.20 19:28 Сейчас в теме
Поставить использовать - Всегда. И для пущей сложности поделить где-нибудь. При делении на 0 будет ошибка :)
5. toypaul 63 03.06.20 19:29 Сейчас в теме
можно сделать проверку при компоновке результата. по-моему даже в УФ прокатит
6. motiask 04.06.20 09:27 Сейчас в теме
Ничего не нужно, добавить на вкладку отчета можно реквизит. 1С своими средствами выдаст ошибку, правда будет не красивая.
А если хочешь красиво вывести, тогда в модуле объекта отчета процедура ОбработкаПроверкиЗаполнения


Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	Если НЕ ЗначениеЗаполнено(Курса) тогда
	Сообщение  = Новый СообщениеПользователю;
	Сообщение.Текст =  "Не заполнен курс";
        Сообщение.Сообщить();
        Отказ = Истина;
	КонецЕсли;
	
КонецПроцедуры
Показать
7. applesound 1 04.06.20 11:48 Сейчас в теме
(6) ПроверяемыеРеквизиты должны быть заполнены?
Туда необходимо передать массив проверяемых значений?
10. motiask 04.06.20 13:30 Сейчас в теме
(7)
У меня реквизит был в отчете.
8. applesound 1 04.06.20 12:31 Сейчас в теме
Спасибо всем за предложенные варианты. Вопрос можно решить всеми перечисленными способами.
Решение:

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

Синтаксис:

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

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

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

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

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

КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот