Объекты возникновения затрат / Форма элемента / Модуль формы

файл


#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	// СтандартныеПодсистемы.Свойства
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
	УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
	// Конец СтандартныеПодсистемы.Свойства
	
	// Обработчик подсистемы запрета редактирования реквизитов объектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
	
	ПриЧтенииСозданииНаСервере();

КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

	// Обработчик подсистемы запрета редактирования реквизитов объектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);

КонецПроцедуры


&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)

	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства

КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

	ТекущийОбъект.НеИспользуется = Использование = "НеИспользуется";
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства

КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

	Если Не ПолныеВозможности Тогда
		Объект.ВариантРаспределенияРасходовРегл = Объект.ВариантРаспределенияРасходовУпр;
		Объект.ПравилоРаспределенияРасходовРегл = Объект.ПравилоРаспределенияРасходовУпр;
		Объект.ВариантРаспределенияРасходовНУ = Объект.ВариантРаспределенияРасходовУпр;
		Объект.ПравилоРаспределенияРасходовНУ = Объект.ПравилоРаспределенияРасходовУпр;
	КонецЕсли;

КонецПроцедуры


&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства

	ПриЧтенииСозданииНаСервере();

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	// СтандартныеПодсистемы.Свойства
		УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства

КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

	// СтандартныеПодсистемы.Свойства 
	Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
		ОбновитьЭлементыДополнительныхРеквизитов();
		УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.Свойства

	// Отработка видимости элементов формы, напрямую не связанных с ФО
	Если ИмяСобытия = "Запись_НаборКонстант" Тогда
		УправлениеЭлементамиФормы();
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ИспользованиеПриИзменении(Элемент)
	Модифицированность = Истина;
КонецПроцедуры

&НаКлиенте
Процедура ТипРасходовПриИзменении(Элемент)
	
	ОбработатьПереключениеНаправленияОтнесения();
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантРаспределенияРасходовУпрПриИзменении(Элемент)
	
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантРаспределенияРасходовРеглПриИзменении(Элемент)
	
	Объект.ВариантРаспределенияРасходовНУ = Объект.ВариантРаспределенияРасходовРегл;
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантРаспределенияРасходовНУПриИзменении(Элемент)
	
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ПереключательИспользоватьПолныеВозможностиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ПолныеВозможности = Истина;
	УправлениеЭлементамиФормы();
	
КонецПроцедуры

&НаКлиенте
Процедура ПереключательОтключитьПолныеВозможностиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ПолныеВозможности = Ложь;
	//++ НЕ УТ
	ОписаниеОповещения = Новый ОписаниеОповещения("ПереключательОтключитьПолныеВозможностиОповещение", ЭтотОбъект);
	ПоказатьВопрос(ОписаниеОповещения, 
		СтрШаблон(НСтр("ru = 'При отключении полных возможностей все настройки приравниваются к значению настроек упр. учета.%1 
		|Продолжить?'"), Символы.ВК), РежимДиалогаВопрос.ДаНетОтмена);
	//-- НЕ УТ
	
КонецПроцедуры

&НаКлиенте
Процедура ПравилоРаспределенияРасходовОбщПриИзменении(Элемент)

	ПривестиВариантыИПравилаКНастройкамУпр();

КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

// СтандартныеПодсистемы.Свойства
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)

	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
	
	Если Не Объект.Ссылка.Пустая() Тогда
		
		ОткрытьФорму("Справочник.ОбъектыВозникновенияЗатрат.Форма.РазблокированиеРеквизитов",,,,,, 
		Новый ОписаниеОповещения("Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение", ЭтотОбъект), 
		РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение(Результат, ДополнительныеПараметры) Экспорт
    
    Если ТипЗнч(Результат) = Тип("Массив") И Результат.Количество() > 0 Тогда
        ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(ЭтотОбъект, Результат);
    КонецЕсли;

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

// СтандартныеПодсистемы.Свойства 

&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()

	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);

КонецПроцедуры

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()

	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)

	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);

КонецПроцедуры

// Конец СтандартныеПодсистемы.Свойства

#КонецОбласти

#Область УправлениеЭлементамиФормы

&НаСервере
Процедура УправлениеЭлементамиФормы()
	
	// Общие настройки или полные возможности
	Элементы.ГруппаПростыеВозможности.Видимость = НЕ ПолныеВозможности;
	Элементы.ГруппаПолныеВозможности.Видимость = ПолныеВозможности;

	// Настройки отборов и параметров создания новых правил
	НазначениеПравилаУпр = Справочники.ПравилаРаспределенияРасходов.ПолучитьНазначениеПравилаПоВариантуРаспределения(Объект.ВариантРаспределенияРасходовУпр);
	НазначениеПравилаРегл = Справочники.ПравилаРаспределенияРасходов.ПолучитьНазначениеПравилаПоВариантуРаспределения(Объект.ВариантРаспределенияРасходовРегл);
	
	// Правила распределения
	Элементы.ПравилоРаспределенияРасходовУпр.Видимость = Объект.ВариантРаспределенияРасходовУпр = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат 
		ИЛИ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределения(Объект.ВариантРаспределенияРасходовУпр);
	Элементы.ПравилоРаспределенияРасходовРегл.Видимость = Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат 
		ИЛИ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределения(Объект.ВариантРаспределенияРасходовРегл);
	Элементы.ПравилоРаспределенияРасходовОбщ.Видимость = Элементы.ПравилоРаспределенияРасходовУпр.Видимость;
	
	// Надписи
	Элементы.НадписьНеТребуетРаспределенияУпр.Видимость = 
		НЕ Объект.ВариантРаспределенияРасходовУпр.Пустая() 
		И НЕ (Объект.ВариантРаспределенияРасходовУпр = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат) 
		И Перечисления.ВариантыРаспределенияРасходов.ВариантБезРаспределения(Объект.ВариантРаспределенияРасходовУпр);
	Элементы.НадписьНеТребуетРаспределенияРегл.Видимость = 
		НЕ Объект.ВариантРаспределенияРасходовРегл.Пустая() 
		И НЕ (Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат) 
		И Перечисления.ВариантыРаспределенияРасходов.ВариантБезРаспределения(Объект.ВариантРаспределенияРасходовРегл);
	Элементы.НадписьПравилоРаспределенияРеглКакУпр.Видимость = 
		НЕ Объект.ВариантРаспределенияРасходовРегл.Пустая() 
		И НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределения(Объект.ВариантРаспределенияРасходовРегл) 
		И НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантБезРаспределения(Объект.ВариантРаспределенияРасходовРегл) 
		И (Объект.ВариантРаспределенияРасходовУпр = Объект.ВариантРаспределенияРасходовРегл);
	Элементы.НадписьНеТребуетРаспределенияОбщ.Видимость = Элементы.НадписьНеТребуетРаспределенияУпр.Видимость; 
	
	//++ Локализация
	ОбъектыВозникновенияЗатратЛокализация.УправлениеЭлементамиФормы(ЭтотОбъект);
	//-- Локализация
	
	// Функциональные настройки
	ВариантыПроизводства = Новый Массив();
	ВариантыПроизводства.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты);
	ВариантыПроизводства.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства);
	
	Элементы.ГруппаНастройкиПроизводства.Видимость = 
		ВариантыПроизводства.Найти(Объект.ВариантРаспределенияРасходовУпр)<>Неопределено
		ИЛИ ВариантыПроизводства.Найти(Объект.ВариантРаспределенияРасходовРегл)<>Неопределено
		ИЛИ РасчетСебестоимостиЛокализация.ПолучитьФункциональнуюОпциюУчетПоНДД()
			И (Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности
				ИЛИ Объект.ВариантРаспределенияРасходовНУ = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
		ИЛИ Ложь;
	
КонецПроцедуры

&НаСервере
Процедура ОпределитьИспользованиеПолныхВозможностей()
	
	ПолныеВозможности = Ложь;
	
	ПолныеВозможности = (Объект.ВариантРаспределенияРасходовУпр <> Объект.ВариантРаспределенияРасходовРегл);
	Если ПолныеВозможности Тогда
		Возврат;
	КонецЕсли;
	ПолныеВозможности = ПолныеВозможности ИЛИ (Объект.ВариантРаспределенияРасходовРегл <> Объект.ВариантРаспределенияРасходовНУ);
	ПолныеВозможности = ПолныеВозможности ИЛИ (Объект.ВариантРаспределенияРасходовУпр <> Объект.ВариантРаспределенияРасходовНУ);
	Если ПолныеВозможности Тогда
		Возврат;
	КонецЕсли;
	
	Правила = Новый Соответствие();
	Если Объект.ВариантРаспределенияРасходовУпр = Объект.ВариантРаспределенияРасходовУпр = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности 
			ИЛИ Объект.ВариантРаспределенияРасходовУпр = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат 
			ИЛИ Объект.ВариантРаспределенияРасходовУпр = Перечисления.ВариантыРаспределенияРасходов.НаРасходыБудущихПериодов 
			ИЛИ Объект.ВариантРаспределенияРасходовУпр = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты 
	Тогда
		Правила.Вставить(Объект.ПравилоРаспределенияРасходовУпр);
	КонецЕсли;
	
	Если Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности 
			ИЛИ Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат 
			ИЛИ Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаРасходыБудущихПериодов 
			ИЛИ Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты 
	Тогда
		Правила.Вставить(Объект.ПравилоРаспределенияРасходовРегл);
	КонецЕсли;

	Если Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаРасходыБудущихПериодов 
	Тогда
		Правила.Вставить(Объект.ПравилоРаспределенияРасходовНУ);
	КонецЕсли;

	ПолныеВозможности = ПолныеВозможности ИЛИ Правила.Количество() > 1;
	
КонецПроцедуры

#КонецОбласти

#Область ПрочееНаКлиенте
&НаКлиенте
Процедура ПереключательОтключитьПолныеВозможностиОповещение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если (РезультатВопроса = КодВозвратаДиалога.Да) Тогда
		ПривестиВариантыИПравилаКНастройкамУпр();
		УправлениеЭлементамиФормы();
	КонецЕсли;
	
КонецПроцедуры
#КонецОбласти


#Область ПрочееНаСервере

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	ОпределитьИспользованиеПолныхВозможностей();
	НастройкиСистемыЛокализация.УстановитьВидимостьЭлементовЛокализации(ЭтотОбъект);
	УправлениеЭлементамиФормы();
	Использование = ?(Объект.НеИспользуется, "НеИспользуется","Используется")
	
КонецПроцедуры

&НаСервере
Процедура ОбработатьПереключениеНаправленияОтнесения()

	ВариантПоУмолчанию = Перечисления.ВариантыРаспределенияРасходов.НеРаспределять;
	ПравилоПоУмолчанию = Справочники.ПравилаРаспределенияРасходов.ПустаяСсылка();
	Если (Объект.ТипРасходов = Перечисления.ТипыРасходов.ВозникновениеЗатратНаОбъектах) Тогда
		ВариантПоУмолчанию = Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат;
	ИначеЕсли (Объект.ТипРасходов = Перечисления.ТипыРасходов.ПрочиеРасходы) Тогда
		ВариантПоУмолчанию = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты;
	КонецЕсли;
	Объект.ВариантРаспределенияРасходовУпр =	ВариантПоУмолчанию;
	Объект.ВариантРаспределенияРасходовРегл =	ВариантПоУмолчанию;
	Объект.ВариантРаспределенияРасходовНУ =		ВариантПоУмолчанию;
	Объект.ПравилоРаспределенияРасходовУпр =	ПравилоПоУмолчанию;
	Объект.ПравилоРаспределенияРасходовРегл =	ПравилоПоУмолчанию;
	Объект.ПравилоРаспределенияРасходовНУ =		ПравилоПоУмолчанию;

КонецПроцедуры

&НаСервере
Процедура ПривестиВариантыИПравилаКНастройкамУпр()
	
	Объект.ВариантРаспределенияРасходовРегл = Объект.ВариантРаспределенияРасходовУпр; 
	Объект.ПравилоРаспределенияРасходовРегл = Объект.ПравилоРаспределенияРасходовУпр;
	
	Объект.ВариантРаспределенияРасходовНУ = Объект.ВариантРаспределенияРасходовУпр; 
	Объект.ПравилоРаспределенияРасходовНУ = Объект.ПравилоРаспределенияРасходовУпр;
	 
КонецПроцедуры

#КонецОбласти

Связанные материалы