#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
МодельБюджетирования = Справочники.МоделиБюджетирования.МодельБюджетирования_ИспользоватьУтверждениеБюджетов();
Элементы.СписокГруппаУстановитьСтатус.Видимость = ЗначениеЗаполнено(МодельБюджетирования);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ПустаяДата", '00010101000000');
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "НачалоПериода",'00010101000000');
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ОкончаниеПериода", '00010101000000');
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
УстановитьПараметрыВидимостиКолонокАналитика();
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект, "Список.Дата", Элементы.Дата.Имя);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Если Параметры.Свойство("Отбор") Тогда
Параметры.Отбор.Свойство("ВидБюджета", ВидБюджета);
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ВидБюджета", ВидБюджета, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(ВидБюджета));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Статус", Статус, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Статус));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ответственный", Ответственный, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Ответственный));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Сценарий", Сценарий, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Сценарий));
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список, "НачалоПериода", Период.ДатаНачала);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
Список, "ОкончаниеПериода", Период.ДатаОкончания);
УстановитьПараметрыВидимостиКолонокАналитика();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОтборВидБюджетаПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ВидБюджета", ВидБюджета, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(ВидБюджета));
УстановитьПараметрыВидимостиКолонокАналитика();
КонецПроцедуры
&НаКлиенте
Процедура ОтборСценарийПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Сценарий", Сценарий, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Сценарий));
КонецПроцедуры
&НаКлиенте
Процедура ОтборСтатусПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Статус", Статус, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Статус));
КонецПроцедуры
&НаКлиенте
Процедура ОтборОтветственныйПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ответственный", Ответственный, ВидСравненияКомпоновкиДанных.Равно, , ЗначениеЗаполнено(Ответственный));
КонецПроцедуры
&НаКлиенте
Процедура ПериодПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "НачалоПериода", Период.ДатаНачала, Истина);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ОкончаниеПериода", Период.ДатаОкончания, Истина);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура УстановитьСтатусВПодготовке(Команда)
УстановитьСтатус("ВПодготовке", НСтр("ru = 'В подготовке'"));
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусНаУтверждении(Команда)
УстановитьСтатус("НаУтверждении", НСтр("ru = 'На утверждении'"));
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусУтвержден(Команда)
УстановитьСтатус("Утвержден", НСтр("ru = 'Утвержден'"));
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусОтменен(Команда)
УстановитьСтатус("Отменен", НСтр("ru = 'Отменен'"));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ОчиститьСообщения();
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура УстановитьСтатус(Статус, ТексСтатуса)
ВыделенныеСтроки = ОбщегоНазначенияУТКлиент.ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.Список);
Если ВыделенныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ТекстВопроса = НСтр("ru='У выделенных в списке документов будет установлен статус ""%Статус%"". Продолжить?'");
ТекстВопроса = СтрЗаменить(ТекстВопроса, "%Статус%", ТексСтатуса);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Статус", Статус);
ДополнительныеПараметры.Вставить("ТексСтатуса", ТексСтатуса);
ДополнительныеПараметры.Вставить("ВыделенныеСтроки", ВыделенныеСтроки);
Оповещение = Новый ОписаниеОповещения("УстановитьСтатусЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ОчиститьСообщения();
КоличествоОбработанных = ОбщегоНазначенияУТВызовСервера.УстановитьСтатусДокументов(
ДополнительныеПараметры.ВыделенныеСтроки,
ДополнительныеПараметры.Статус);
ОбщегоНазначенияУТКлиент.ОповеститьПользователяОбУстановкеСтатуса(Элементы.Список,
КоличествоОбработанных,
ДополнительныеПараметры.ВыделенныеСтроки.Количество(),
ДополнительныеПараметры.ТексСтатуса);
КонецПроцедуры
&НаСервере
Функция ТаблицаВидовАналитикШапкиБюджета(ВидБюджета)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВидыБюджетовАналитикиШапки.НомерСтроки КАК НомерСтроки,
| ВидыБюджетовАналитикиШапки.ВидАналитики КАК ВидАналитики,
| ВидыБюджетовАналитикиШапки.ВидАналитики.Наименование КАК Наименование
|ИЗ
| Справочник.ВидыБюджетов.АналитикиШапки КАК ВидыБюджетовАналитикиШапки
|ГДЕ
| ВидыБюджетовАналитикиШапки.Ссылка = &ВидБюджета
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Запрос.УстановитьПараметр("ВидБюджета", ВидБюджета);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаВидовАналитик = РезультатЗапроса.Выгрузить();
Возврат ТаблицаВидовАналитик;
КонецФункции
&НаСервере
Процедура УстановитьПараметрыВидимостиКолонокАналитика()
МаксимальноеКоличествоАналитик = БюджетированиеКлиентСервер.МаксимальноеКоличествоАналитик();
Если Не ЗначениеЗаполнено(ВидБюджета) Тогда
Для Сч = 1 По 6 Цикл
Элементы["Аналитика" + Сч].Видимость = Ложь;
КонецЦикла;
ТаблицаВидовАналитик = Новый ТаблицаЗначений;
Иначе
ТаблицаВидовАналитик = ТаблицаВидовАналитикШапкиБюджета(ВидБюджета);
Для Сч = 1 По МаксимальноеКоличествоАналитик Цикл
ЭлементФормы = Элементы["Аналитика" + Сч];
ЭлементФормы.Видимость = Сч <= ТаблицаВидовАналитик.Количество();
Если ЭлементФормы.Видимость Тогда
ЭлементФормы.Заголовок = ТаблицаВидовАналитик[Сч - 1].Наименование;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ОтображаемыеВсегдаАналитики.ВыгрузитьЗначения(), "Наименование");
Для Сч = 1 По МаксимальноеКоличествоАналитик Цикл
Аналитика = ПланыВидовХарактеристик.АналитикиСтатейБюджетов.ПустаяСсылка();
Если Сч <= ОтображаемыеВсегдаАналитики.Количество() Тогда
Аналитика = ОтображаемыеВсегдаАналитики[Сч - 1].Значение;
КонецЕсли;
Если ТаблицаВидовАналитик.Найти(Аналитика) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ОбязательнаяАналитика" + Сч, Аналитика, Истина);
ЭлементФормы = Элементы["ОбязательнаяАналитика" + Сч];
ЭлементФормы.Видимость = ЗначениеЗаполнено(Аналитика);
Если ЭлементФормы.Видимость Тогда
ЭлементФормы.Заголовок = ЗначенияРеквизитов[Аналитика]["Наименование"];
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура АналитикиОтображаемыеВсегда(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореАналитик", ЭтаФорма);
ОткрытьФорму("Документ.ЭкземплярБюджета.Форма.АналитикиОтображаемыеВсегда",
Новый Структура("АналитикиОтображаемыеВсегда", ОтображаемыеВсегдаАналитики),
,,,,ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПриВыбореАналитик(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ОтображаемыеВсегдаАналитики.Очистить();
Для Каждого ЭлементСписка Из Результат Цикл
ОтображаемыеВсегдаАналитики.Добавить(ЭлементСписка.Значение);
КонецЦикла;
УстановитьПараметрыВидимостиКолонокАналитика();
КонецПроцедуры
#КонецОбласти