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