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