Правила распределения расходов / Форма настроек на себестоимость товаров / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	ЗаполнитьСлужебныеРеквизитыФормы();
	//++ Локализация
	УстановитьВидимостьЭлементовПоФО();
	//-- Локализация
	НастроитьЗаголовкиПолей(ЭтаФорма);
	
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтаФорма);
	
КонецПроцедуры

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

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

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

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

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

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

	ПравилаРаспределенияКлиент.ОткрытьФормуНастройкиОтборов(ЭтотОбъект, ПараметрыОткрытия);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
	
	ОбщегоНазначенияУТКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

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

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

#Область Отборы

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

	Если Не ЗначениеЗаполнено(Результат) Тогда
		Возврат;
	КонецЕсли;
	
	ЭтаФорма[ДополнительныеПараметры.ИмяНастроекКомпоновщика].ЗагрузитьНастройки(
		ПолучитьИзВременногоХранилища(Результат));
	Объект.НастройкиБазыРаспределенияПоПартиямИзменены = ПравилаРаспределенияВызовСервера.ОтборУстановлен(
		НастройкиБазыРаспределенияПоПартиям);
	
	НастроитьЗаголовкиПолей(ЭтаФорма, ДополнительныеПараметры.ИмяНастроекКомпоновщика)
	
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьБазовыеНастройкиКомпоновщика(ИмяРеквизита = "")
	
	СхемаКомпоновки = Перечисления.ТипыБазыРаспределенияРасходов.ПолучитьМакет("Товары");
	НастройкиБазыРаспределенияПоПартиям.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
	
КонецПроцедуры

&НаСервере
Процедура ВосстановитьНастройкиКомпоновщика(ИмяРеквизитаСНастройками, ДокОбъект = Неопределено)
	
	МодификаторНастроек = СтрШаблон("%1Изменены", ИмяРеквизитаСНастройками);
	Если Не Объект[МодификаторНастроек] Тогда
		Возврат;
	КонецЕсли;

	Если ДокОбъект = Неопределено Тогда
		ДокОбъект = РеквизитФормыВЗначение("Объект");
	КонецЕсли;

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

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

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

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

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

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

//++ Локализация

&НаСервере
Процедура УстановитьВидимостьЭлементовПоФО()
	
	Элементы.ТекстДобавитьИзменитьОтборБазыРаспределенияПоПартиям.Видимость =
		РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22();
	
КонецПроцедуры
//-- Локализация
#КонецОбласти

#Область ИнициализацияФормы

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

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

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

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