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