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