#Область ОбработчикиСобытийФормы
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если Не Объект.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен")
И Не Объект.Ссылка = ПредопределенноеЗначение("Справочник.СостоянияОригиналовПервичныхДокументов.ФормаНапечатана")
И Объект.Ссылка.Пустая() Тогда
Объект.РеквизитДопУпорядочивания = РассчитатьПорядокЭлемента();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Функция РассчитатьПорядокЭлемента()
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ ПЕРВЫЕ 1
| СостоянияОригиналовПервичныхДокументов.РеквизитДопУпорядочивания КАК Порядок
|ИЗ
| Справочник.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов
|ГДЕ
| СостоянияОригиналовПервичныхДокументов.Предопределенный = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| РеквизитДопУпорядочивания УБЫВ" ;
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Если Не Выборка.Порядок = Неопределено Тогда
ПорядокПоУмолчанию = Выборка.Порядок + 1;
Иначе
ПорядокПоУмолчанию = 2;
КонецЕсли;
Возврат ПорядокПоУмолчанию;
КонецФункции
#КонецОбласти