Обязательные "Дополнительные реквизиты и сведения"

1. dpagon 8 20.12.12 12:01 Сейчас в теме
Кто нибудь реализовывал механизм для обязательного заполнения дополнительных реквизитов и сведений?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. motorkuzbassa.it 100 20.12.12 12:54 Сейчас в теме
(1)ну и в чем проблема? вешай на событие и проверяй на заполненность.
5. spenser123 20.12.12 13:08 Сейчас в теме
(1) dpagon, например:
 Процедура ПриНажатииВыполнить()
Если ЗначениеЗаполнено(НовыйРеквизит) Тогда
Если ЗначениеЗаполнени(НовыйРеквизит2) ТОгда
Что выполнять.....
Иначе Сообщить("Заполните Поле НовыйРеквизит2");
КонецЕсли;
Иначе Сообщить("Заполните Поле НовыйРеквизит");
КонецЕсли;
Показать

И т.п.
3. dpagon 8 20.12.12 12:56 Сейчас в теме
пожалуйста поподробнее...
4. nuelectro 20.12.12 13:02 Сейчас в теме
в свойствах объекта есть пункт "проверка заполнения", там выбрать "выдавать ошибку" или как то так
6. mymyka 20.12.12 15:47 Сейчас в теме
У меня реализовано так: в подписку ОбработкаПроверкиЗаполнения для ВнутреннегоДокумента

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

	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	               |	н_СоответствияСрезПоследних.Период,
	               |	н_СоответствияСрезПоследних.ИД,
	               |	н_СоответствияСрезПоследних.Соответствие,
	               |	н_СоответствияСрезПоследних.Описание,
	               |	н_СоответствияСрезПоследних.ДопИзмерение
	               |ИЗ
	               |	РегистрСведений.н_Соответствия.СрезПоследних КАК н_СоответствияСрезПоследних
	               |ГДЕ
	               |	(н_СоответствияСрезПоследних.Описание = ""ОбязательныйРеквизит""
	               |			ИЛИ н_СоответствияСрезПоследних.Описание = ""ОбязательныйДопРеквизит"")
	               |	И н_СоответствияСрезПоследних.Соответствие = &Соответствие
	               |	И НЕ н_СоответствияСрезПоследних.ДопИзмерение = ""НеИспользовать""";
	Запрос.УстановитьПараметр("Соответствие",ДокументОбъект.ВидДокумента);				   
	Результат = Запрос.Выполнить().Выбрать();
	Пока Результат.Следующий() Цикл
		Если Результат.Описание = "ОбязательныйРеквизит" Тогда
			Попытка
				Если НЕ ЗначениеЗаполнено(ДокументОбъект[Результат.ИД]) Тогда
					ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
						СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
							НСтр("ru = 'Поле %1 не заполнено.'"),
							Строка(Результат.ИД)),
						ДокументОбъект,
						Результат.ИД,, 
						Отказ);
				КонецЕсли;
			Исключение
				Продолжить;
			КонецПопытки;
		ИначеЕсли Результат.Описание = "ОбязательныйДопРеквизит" Тогда
			Попытка
				СвойствоЗаполнено = Ложь;
				Для Каждого Стр из ДокументОбъект.ДополнительныеРеквизиты Цикл
					Если СокрЛП(Стр.Свойство.Наименование) = СокрЛП(Результат.ИД) Тогда
						СвойствоЗаполнено = ЗначениеЗаполнено(Стр.Значение);
					КонецЕсли;
				КонецЦикла;
				Если НЕ СвойствоЗаполнено Тогда
					ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
						СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
							НСтр("ru = 'Поле %1 не заполнено.'"),
							Строка(Результат.ИД)),
						ДокументОбъект,
						Результат.ИД,, 
						Отказ);
				КонецЕсли;
			Исключение
				Продолжить;
			КонецПопытки;
		КонецЕсли;
	КонецЦикла;	
КонецПроцедуры
Показать


настройки хранятся в самописном РС Соответствия где храню всякие значения инф.базы по строковым ключам, дабы не искать по наименованию каждый раз. Структура РС видна из запроса.
Оставьте свое сообщение

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