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