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