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