Зарплата и кадры бюджетного учреждения 8 Выплата аванса
Показывать по
10
20
40
сообщений
- 1
- 2
13.07.2011
21:43
#1
"Всем добрый вечер. Ситуация такая: мне необходимо чтобы при выплате планового аванса в документ садились только те сотрудники, которые работают 15 дней и более в месяце. для этого я дописываю процедуру Автозаполнение() в модуле документа следующим образом: Если ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.ПлановыйАванс тогда ТаблицаЗарплат = ПолучитьЗарплатуПоХарактеруВыплаты(ФизЛица); ОплатаБЛ = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуБЛ; ОплатаБЛПоТравме = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаБЛПоТравмеНаПроизводстве; ВыхДниПоУхЗаДетьмиИнвалидами = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаВыходныхДнейПоУходуЗаДетьмиИнвалидами; ОтпускПоКД = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпКалендарныеДни; ОтпускПоШестидн = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуОтпШестидневка; ПраздВыхДни = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПраздничныхИВыходных; ОтпускБезОплатыСогласноТК = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускБезОплатыПоТКРФ; ОтпускЗаСвойСчет = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускЗаСвойСчет; ОтпускПоБерРодам = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускПоБеременностиИРодам; ОтпускПоУхЗаРебБезОпл = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускПоУходуЗаРебенкомБезОплаты; ОтсутПоБолезни = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтсутствиеПоБолезни; ОтсутПоБолезниПоБерРодам = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтсутствиеПоБолезниПоБеременности; ОтсутПоНевыясПричине = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Невыход; ПрогулПоВинеСотр = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.Прогул; ВидЗанятостиОсн = Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы; Запрос = новый Запрос(); Запрос.УстановитьПараметр("НачМесяца", НачалоМесяца(ПериодРегистрации)); Запрос.УстановитьПараметр("КонМесяца", КонецМесяца(ПериодРегистрации)); Запрос.УстановитьПараметр("ОплатаБЛ", ОплатаБЛ); Запрос.УстановитьПараметр("ОплатаБЛПоТравме", ОплатаБЛПоТравме); Запрос.УстановитьПараметр("ВыхДниПоУхЗаДетьмиИнвалидами", ВыхДниПоУхЗаДетьмиИнвалидами); Запрос.УстановитьПараметр("ОтпускПоКД", ОтпускПоКД); Запрос.УстановитьПараметр("ОтпускПоШестидн", ОтпускПоШестидн); Запрос.УстановитьПараметр("ПраздВыхДни", ПраздВыхДни); Запрос.УстановитьПараметр("ОтпускБезОплатыСогласноТК", ОтпускБезОплатыСогласноТК); Запрос.УстановитьПараметр("ОтпускЗаСвойСчет", ОтпускЗаСвойСчет); Запрос.УстановитьПараметр("ОтпускПоБерРодам", ОтпускПоБерРодам); Запрос.УстановитьПараметр("ОтпускПоУхЗаРебБезОпл", ОтпускПоУхЗаРебБезОпл); Запрос.УстановитьПараметр("ОтсутПоБолезни", ОтсутПоБолезни); Запрос.УстановитьПараметр("ОтсутПоБолезниПоБерРодам", ОтсутПоБолезниПоБерРодам); Запрос.УстановитьПараметр("ОтсутПоНевыясПричине", ОтсутПоНевыясПричине); Запрос.УстановитьПараметр("ПрогулПоВинеСотр", ПрогулПоВинеСотр); Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ФизЛицо, | ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета, | ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ПериодДействияНачало, | ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ПериодДействияКонец, | ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ПериодДействия |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия КАК ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия |ГДЕ | ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ПериодДействияНачало >= &НачМесяца | И ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ПериодДействияНачало <= &КонМесяца | И (ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОплатаБЛ | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОплатаБЛПоТравме | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ВыхДниПоУхЗаДетьмиИнвалидами | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтпускПоКД | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтпускПоШестидн | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ПраздВыхДни | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтпускБезОплатыСогласноТК | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтпускЗаСвойСчет | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтпускПоБерРодам | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтпускПоУхЗаРебБезОпл | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтсутПоБолезни | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтсутПоБолезниПоБерРодам | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ОтсутПоНевыясПричине | ИЛИ ОсновныеНачисленияРаботниковОрганизацийФактическийПериодДейс твия.ВидРасчета = &ПрогулПоВинеСотр)"; Выборка = Запрос.Выполнить().Выгрузить(); ТаблицаРезультатов = новый ТаблицаЗначений; ТаблицаРезультатов.Колонки.Добавить("Физлицо"); ТаблицаРезультатов.Колонки.Добавить("КолОтрабДней"); Для Каждого ТекущаяСтрока из Выборка цикл НоваяСтрока = ТаблицаРезультатов.Добавить(); НоваяСтрока.Физлицо = ТекущаяСтрока.Физлицо; НоваяСтрока.КолОтрабДней = День(КонецМесяца(ПериодРегистрации)) - (День(ТекущаяСтрока.ПериодДействияКонец) - День(ТекущаяСтрока.ПериодДействияНачало)); КонецЦикла; Для Каждого ТекущаяСтрокаРез из ТаблицаРезультатов цикл Физлицо = ТекущаяСтрокаРез.Физлицо; Отработано = ТекущаяСтрокаРез.КолОтрабДней; Сообщить(ТекущаяСтрокаРез.КолОтрабДней); Сообщить(ТекущаяСтрокаРез.Физлицо); //ФизлицоТаблицыЗарплат = ТаблицаЗарплат.Найти(Физлицо); Если Отработано >=15 тогда ОтборРаботников = новый Структура; ОтборРаботников.Вставить("Физлицо", ТекущаяСтрокаРез.Физлицо); СтрокиТаблицы = ТаблицаЗарплат.НайтиСтроки(ОтборРаботников); ТаблицаЗарплат1 = новый ТаблицаЗначений; ТаблицаЗарплат1.Колонки.Добавить("Физлицо"); ТаблицаЗарплат1.Колонки.Добавить("Начислено"); ТаблицаЗарплат1.Колонки.Добавить("КОСГУ"); ТаблицаЗарплат1.Колонки.Добавить("СтатьяФинансирования"); ТаблицаЗарплат1.Колонки.Добавить("Сумма"); ТаблицаЗарплат1.Колонки.Добавить("Удержано"); ТаблицаЗарплат1.Колонки.Добавить("КомпенсацияЗаЗадержкуЗарплаты"); Для каждого МассивСтрок из СтрокиТаблицы цикл СтрТЗ1 = ТаблицаЗарплат1.Добавить(); СтрТЗ1.Физлицо = МассивСтрок.Физлицо; СтрТЗ1.Начислено = МассивСтрок.Начислено; СтрТЗ1.КОСГУ = МассивСтрок.КОСГУ; СтрТЗ1.СтатьяФинансирования = МассивСтрок.СтатьяФинансирования; СтрТЗ1.Сумма = МассивСтрок.Сумма; СтрТЗ1.Удержано = МассивСтрок.Удержано; СтрТЗ1.КомпенсацияЗаЗадержкуЗарплаты = МассивСтрок.КомпенсацияЗаЗадержкуЗарплаты; конецЦикла; РассчитатьТаблицуЗарплат(ТаблицаЗарплат1); ЗаполнитьПоТаблицеЗарплат(ТаблицаЗарплат1);КонецЕсли; КонецЦикла; Иначе ТаблицаЗарплат = ПолучитьЗарплатуПоХарактеруВыплаты(ФизЛица); РассчитатьТаблицуЗарплат(ТаблицаЗарплат); ЗаполнитьПоТаблицеЗарплат(ТаблицаЗарплат);КонецЕсли;А проблема заключается в том, что у меня в итоге в таблицу садится только 1 сотрудник ито не по той статье финансирования, которую я выбрала при заполнении документа.Сразу говорю, что настройка программы по дате расчета планового аванса не работает.В чем здесь может быть ошибка? Со стороны по любому видней. Заранее спасибо"
14.07.2011
02:17
#2
> мне необходимо чтобы при выплате планового аванса в документ садились только те сотрудники, которые работают 15 дней и более в месяце. для этого я дописываю процедуру Автозаполнение() в модуле документа
В Настройке параметров учета, на закладке Выплата зарплаты можно установить "галку" Учитывать невыходы и установить Дату расчета планового аванса.
Или Вам этого недостаточно?
В Настройке параметров учета, на закладке Выплата зарплаты можно установить "галку" Учитывать невыходы и установить Дату расчета планового аванса.
Или Вам этого недостаточно?
14.07.2011
08:08
#4
Было бы вполне достаточно, если бы эта настройка работала. Дело в том, что в любом случае в документ выходят и те сотрудники, которые в отпуске. Программа выдает лишь сообщение о том, что у них неполный месяц отработан и исходя из этого сообщения приходится удалять их руками.
14.07.2011
09:37
#8
И вы хотите сказать, что неважно идет сотрудник в отпуск с 01.07.2011 или к примеру с 3-го числа? Просто у меня все отпускники уходят не с первого дня месяца
- 1
- 2
Читают тему
(гостей: 1)