Проведение документа с проверкой заполнения

Проведение документа с проверкой заполнения, если есть ошибки то просто запись.

Функция ПровестиДокумент(ДокументОбъект) Экспорт
	
	Результат = Новый Структура("УспешноПроведен, ОписаниеОшибки");
	
	Если ДокументОбъект.ПроверитьЗаполнение() Тогда
		РежимПроведения = РежимПроведенияДокумента.Неоперативный;
		Если ДокументОбъект.Дата >= НачалоДня(ТекущаяДатаСеанса())
			И ДокументСсылка.Метаданные().ОперативноеПроведение = Метаданные.СвойстваОбъектов.ОперативноеПроведение.Разрешить Тогда
			РежимПроведения = РежимПроведенияДокумента.Оперативный;
		КонецЕсли;
		Попытка
			ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведения);
			Результат.УспешноПроведен = Истина;
		Исключение
			ПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
			Результат.УспешноПроведен = Ложь;
			Результат.ОписаниеОшибки = ПредставлениеОшибки;
			ДокументОбъект.Записать(РежимЗаписиДокумента.Запись, РежимПроведения);
		КонецПопытки;
	Иначе
		ДокументОбъект.Записать(РежимЗаписиДокумента.Запись, РежимПроведения);
		ПредставлениеОшибки = НСтр("ru = 'Ошибки проверки заполнения:'");
		СообПольз = ПолучитьСообщенияПользователю(Истина);
		Для Каждого ТекСооб Из СообПольз Цикл
			ПредставлениеОшибки = ПредставлениеОшибки + Символы.ПС + ТекСооб.Текст;
		КонецЦикла;
		
		Результат.УспешноПроведен = Ложь;
		Результат.ОписаниеОшибки = ПредставлениеОшибки;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции
1

Комментарии

См. также

Попытка проведения и записи документа в одной процедуре

Программное проведение документа

ЗарегистрироватьОшибкуПроведенияДокумента (БСП)

ВыполнитьПроведениеДокументаПриЗагрузке (БСП)

ПроверитьПроведенностьДокументов (БСП)

ИнформацияОДокументах (БСП)

ПроверитьПроведенностьДокументовПроведениеДокументов (БСП)

Модератору