В стаже не выделяються больничные листы и отпуска за свой счет(Комплексная 7.7)
19.01.2011
12:34
#1
При выгрузке из 1с Комплексная 7.7 в стаже не выделяются больничные листы и отпуска за свой счет.
19.01.2011
14:08
#3
Отчет: Подготовка сведений для ПФР. При выгрузке пачек в файл. Суммы берет правильно а вот стажевые интервалы не правильно. Получается что у нас люди не болели и отпуска за свой счет не брали.
19.01.2011
17:34
#4
Проверь справочник Сотрудники - Нужный сотрудник. Открываешь. Кнопка Ввод даных - Песонифицированый учет.
20.01.2011
09:29
#5
"По кнопке персонифицированный учет тоже ничего не заполнялось.
Нашла ошибку в функции глЗаполнитьТаблицуПериодовДействияВР. В цикле идет перебор всегда первый месяц в массиве дней. И не учитывалось что в массиве целый год.
Но пока не удается выделять период с отпуском до 3х лет. Может у кого есть какие соображения как это исправить?
Функция глЗаполнитьТаблицуПериодовДействияВР(Сотрудник,ТаблицаПериодов,НачалоПериода, ОкончаниеПериода, СписокВР)
Перем МассивДней[370];
ТаблицаПериодов=СоздатьОбъект("ТаблицаЗначений");
ТаблицаПериодов.НоваяКолонка("НачалоПериода");
ТаблицаПериодов.НоваяКолонка("ОкончаниеПериода");
Для Сч = 1 По 370 Цикл
МассивДней[Сч] = 1;
КонецЦикла;
глЗаполнитьМассивДней(МассивДней, Сотрудник, НачалоПериода, ОкончаниеПериода, 0, СписокВР);
КолДней = ОкончаниеПериода - НачалоПериода +1;
ЕстьПериод=0;
Для Сч = 1 По КолДней Цикл
//Если (ЕстьПериод=0) и (МассивДней[Сч] = 0) Тогда //это было раньше
Если (ЕстьПериод=0) и (МассивДней[Сч+НомерДняГода(НачалоПериода)-1] = 0) Тогда //anna
ЕстьПериод=1;
ТаблицаПериодов.НоваяСтрока();
ТаблицаПериодов.НачалоПериода=НачалоПериода+Сч-1;
//ИначеЕсли (ЕстьПериод=1) и (МассивДней[Сч] = 1) Тогда //это было раньше
ИначеЕсли (ЕстьПериод=1) и (МассивДней[Сч+НомерДняГода(НачалоПериода)-1] = 1) Тогда //anna
ЕстьПериод=0;
ТаблицаПериодов.ОкончаниеПериода=НачалоПериода+Сч-2;
КонецЕсли;
КонецЦикла;
Если ЕстьПериод=1 Тогда
//это значит, что в периоде который мы анализировали действие ВР не закончилось,
//установим дату окончания
ТаблицаПериодов.ОкончаниеПериода=ОкончаниеПериода;
КонецЕсли;
Если ТаблицаПериодов.КоличествоСтрок()>0 Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции //глЗаполнитьТаблицуПериодовДействияВР()
"
Нашла ошибку в функции глЗаполнитьТаблицуПериодовДействияВР. В цикле идет перебор всегда первый месяц в массиве дней. И не учитывалось что в массиве целый год.
Но пока не удается выделять период с отпуском до 3х лет. Может у кого есть какие соображения как это исправить?
Функция глЗаполнитьТаблицуПериодовДействияВР(Сотрудник,ТаблицаПериодов,НачалоПериода, ОкончаниеПериода, СписокВР)
Перем МассивДней[370];
ТаблицаПериодов=СоздатьОбъект("ТаблицаЗначений");
ТаблицаПериодов.НоваяКолонка("НачалоПериода");
ТаблицаПериодов.НоваяКолонка("ОкончаниеПериода");
Для Сч = 1 По 370 Цикл
МассивДней[Сч] = 1;
КонецЦикла;
глЗаполнитьМассивДней(МассивДней, Сотрудник, НачалоПериода, ОкончаниеПериода, 0, СписокВР);
КолДней = ОкончаниеПериода - НачалоПериода +1;
ЕстьПериод=0;
Для Сч = 1 По КолДней Цикл
//Если (ЕстьПериод=0) и (МассивДней[Сч] = 0) Тогда //это было раньше
Если (ЕстьПериод=0) и (МассивДней[Сч+НомерДняГода(НачалоПериода)-1] = 0) Тогда //anna
ЕстьПериод=1;
ТаблицаПериодов.НоваяСтрока();
ТаблицаПериодов.НачалоПериода=НачалоПериода+Сч-1;
//ИначеЕсли (ЕстьПериод=1) и (МассивДней[Сч] = 1) Тогда //это было раньше
ИначеЕсли (ЕстьПериод=1) и (МассивДней[Сч+НомерДняГода(НачалоПериода)-1] = 1) Тогда //anna
ЕстьПериод=0;
ТаблицаПериодов.ОкончаниеПериода=НачалоПериода+Сч-2;
КонецЕсли;
КонецЦикла;
Если ЕстьПериод=1 Тогда
//это значит, что в периоде который мы анализировали действие ВР не закончилось,
//установим дату окончания
ТаблицаПериодов.ОкончаниеПериода=ОкончаниеПериода;
КонецЕсли;
Если ТаблицаПериодов.КоличествоСтрок()>0 Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции //глЗаполнитьТаблицуПериодовДействияВР()
"
Читают тему
(гостей: 1)