Расходный кассовый ордер / Форма выплата заработной платы / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	ВыплатаЗаработнойПлаты.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресЗарплатаВХранилище));
	
	Ведомость = Параметры.Ведомость;
	ДокументОплаты = Параметры.ДокументОплаты;
	Организация = Параметры.Организация;
	
	ИспользоватьНачислениеЗарплаты = Константы.ИспользоватьНачислениеЗарплаты.Получить();
	
	Если ИспользоватьНачислениеЗарплаты Тогда
		
		ТекстИнструкции = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Доступны для добавления физические лица из документа %1.'"),
			Ведомость);
			
		Элементы.ДекорацияИнструкция.Заголовок = ТекстИнструкции;
		Элементы.ДекорацияИнструкция.Видимость = Истина;
		Элементы.ВыплатаЗаработнойПлатыЗаполнитьПоОстаткам.Видимость = Истина;
		Элементы.ВыплатаЗаработнойПлатыСумма.ТолькоПросмотр = Истина;
		
	КонецЕсли;
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПеренестиДанныеЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Отказ = ДополнительныеПараметры.Отказ;
	
	Ответ = РезультатВопроса;
	Если Ответ = КодВозвратаДиалога.Да Тогда
		ПеренестиДанные(Отказ);
	ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
		Модифицированность = Ложь;
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыВыплатаЗаработнойПлаты

&НаКлиенте
Процедура ВыплатаЗаработнойПлатыРаботникПриИзменении(Элемент)
	
	
	Возврат // в УТ пустой
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыВыплатаЗаработнойПлаты

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

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

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

&НаКлиенте
Процедура ЗаполнитьПоОстаткам(Команда)
	
    
    Возврат // в УТ пустой

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

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	
	ПеренестиДанные();
	
КонецПроцедуры

&НаКлиенте
Процедура Отмена(Команда)
	
	Модифицированность = Ложь;
	Закрыть();
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ПеренестиДанные(Отказ = Ложь)
	
	ОчиститьСообщения();
	
	СписокПолучателейПлатежей = Новый СписокЗначений;
	Для Индекс = 0 По ВыплатаЗаработнойПлаты.Количество() - 1 Цикл
		
		Строка = ВыплатаЗаработнойПлаты[Индекс];
		
		Если НЕ ЗначениеЗаполнено(Строка.ФизическоеЛицо) Тогда
			Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'В строке %1 не заполнен сотрудник.'"),
				Индекс + 1);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
					Текст,
					,
					ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("ВыплатаЗаработнойПлаты", Индекс + 1, "ФизическоеЛицо"),
					,
					Отказ);
		КонецЕсли;
		
		Если НЕ ЗначениеЗаполнено(Строка.Сумма) Тогда
			Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'В строке %1 не заполнена сумма.'"),
				Индекс + 1);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				Текст,
				,
				ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("ВыплатаЗаработнойПлаты", Индекс + 1, "Сумма"),
				,
				Отказ);
		КонецЕсли;
		
	КонецЦикла;
	
	Если НЕ Отказ Тогда
		Модифицированность = Ложь;
		ОповеститьОВыборе(ПоместитьВыплатаЗаработнойПлатыВХранилище());
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция ПоместитьВыплатаЗаработнойПлатыВХранилище()
	
	Возврат ПоместитьВоВременноеХранилище(ВыплатаЗаработнойПлаты.Выгрузить());
	
КонецФункции


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

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

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