Зарплата и кадры бюджетного учреждения 8 Выплата аванса

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

В Настройке параметров учета, на закладке Выплата зарплаты можно установить "галку"  Учитывать невыходы и установить Дату расчета планового аванса.

Или Вам этого недостаточно?
обычная история - не зная возможностей программы переписываю код
Было бы вполне достаточно, если бы эта настройка работала. Дело в том, что в любом случае в документ выходят и те сотрудники, которые в отпуске. Программа выдает лишь сообщение о том, что у них неполный месяц отработан и исходя из этого сообщения приходится удалять их руками.
Девушка, а вы кадровые документы вводите?
Разумеется! и кадровые и расчетные документы введены
у меня при введенных документах отпускники в плановый аванс не попадают
И вы хотите сказать, что неважно идет сотрудник в отпуск с 01.07.2011 или к примеру с 3-го числа? Просто у меня все отпускники уходят не с первого дня месяца
Просто момент еще заключается в том, что кадровые приказы вводятся заранее. Например для сотрудников идущих в отпуск в июле кадровые документы вводятся в мае
приведите пример, на котором, как вы считаете, программа неправильно работает.
Читают тему
(гостей: 1)

Быстрый переход