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