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