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