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