Печать личной карточки формы Т-2 в ЗУП 3.1 с разбивкой отпусков по рабочим годам

28.09.21

Учетные задачи - Кадровый учет

При предоставлении отпуска за несколько периодов работы в форме Т2 печатается, сколько дней отпуска за какой период.

Скачать файлы

Наименование Файл Версия Размер
Печать личной карточки формы Т-2 в ЗУП 3.1 с разбивкой отпусков по рабочим годам: (варианты 1 и 2)
.zip 53,58Kb
22
.zip 53,58Kb 22 Скачать

В связи с наличием определенного интереса к данной разработке (высказанного иногда, к сожалению, в невежливой форме без  учета регулярных переработок в основной конфигурации) выкладываю доработанный отчет для текущих версий конфигурации и платформы. Отчет тестировался на ЗУП 3.1 (3.1.18.189) платформа 8.3.18.1483. 

Стандартный отчет (личная карточка Т2) может в качестве периода указывать 2 года (Рис.1). В разработанном отчете данные выводятся отдельно по каждому рабочему году (Рис.2). Для расчета используются те же функции и процедуры, что и при расчете отпуска, поэтому при вычислениях учитываются праздники.

За основу взят стандартный отчет для формы Т2, но периоды в 2 года разбиваются по годам (если это удается). 

По сравнению с предыдущим отчетом (2018 года) добавлено:

1. Учет возможности разбиения отпуска больничным.

2. Учет сдвига начала и окончания рабочего года, за который дается отпуск.

Анализ работы отчета в течении 3 лет показал, что, к сожалению, отчет дает правильные цифры приблизительно в 90 % случаев.

Досрочный выход из отпуска по беременности, отмена отпуска, перенос сроков отпуска и другие подобные события приводят к тому, что период разбивается неправильно, так как анализ расчета в подобных случаях затруднителен. В таких ситуациях результаты нужно править вручную.

К публикации приложены 2 варианта отчета:

Вариант 1 - основной - остатки отпусков рассчитываются на 5 лет вперед (как в основной конфигурации).

Вариант 2 - иногда помогает в случае, когда вариант 1 дает неправильный результат - остатки отпусков рассчитываются на дату, предыдущую указанной.    

Отчет ЗУП 3.1 Личная карточка Т2

См. также

SALE! 7%

Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

18900 17577 руб.

01.04.2020    136024    645    342    

228

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    8168    4    8    

7

Загрузка данных по сотрудникам и физическим лицам из файла XLS (xlsx, mxl, ods) в ЗУП/ЗиКГУ редакция 3.1

Загрузка и выгрузка в Excel Зарплата Кадровый учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Обработка позволяет загрузить из структурированного файла данные по физическим лицам, сотрудникам. Предусмотрено создание документов "Прием на работу". Данные загружаются не только в справочники и документы, но и в регистры сведений. Обработка разработана для конфигураций "Зарплата и Управление Персоналом, редакция 3.1"/"Зарплата и кадры государственного учреждения, редакция 3.1" на платформе 8.3.

6000 руб.

15.07.2015    61634    83    47    

88

Печать трудового договора + доп.соглашение в WORD

Печатные формы Зарплата Кадровый учет Платформа 1С v8.3 Сложные периодические расчеты Управляемые формы 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Большинству организаций стандартная печатная форма трудового договора в программе 1С:Зарплата и управление персоналом не подходит. Для решения этой проблемы предлагаю Вам внешнюю обработку с возможностью печати Трудового договора и Дополнительного соглашения к нему в Word-документ

1000 руб.

27.06.2019    19620    14    0    

13

Штатное расписание с итогами в иерархии для ЗУП 3.Х

Кадровый учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Штатное расписание с итогами в иерархии. Итоги по позициям могут быть свернуты по изменениям (Подразделение, Должность, Категория, МВЗ, Начисления, etc).

3000 руб.

06.09.2017    30501    10    0    

12

Внешние печатные формы по кадровым документам и зарплате в БП 3.0

Печатные формы Зарплата Кадровый учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

1. Трудовой договор. 2. Заявление на отпуск 3. Заявление о согласии на работу в ночное время 4. Заявление на увольнение 5. Заявление о выплате денег на личную карту 6. Договор аренды транспортного средства

2880 руб.

25.02.2021    8766    2    0    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user1027406 15.07.20 16:37 Сейчас в теме
Добрый день! Отчет не работает в релизе 3-1-10-470! Поправьте, пожалуйста! Спасибо!
2. vikhrov53 63 15.07.20 18:40 Сейчас в теме
Согласно правилам Инфостарта разработчик, представивший публикацию за Startmoney, не обязан сопровождать ее.
На момент публикации отчет был работоспособен для указанной конфигурации и платформы.
За прошедшие почти 2 года программа была существенна переработана и используется сейчас в расширении.
К сожалению, на оформление и тестирование программы в форме отчета нет времени. Могу лишь подсказать, что в связи с изменением основной конфигурации вместо "РабочееМесто.." надо использовать "Работа...".
WhiteOwl; +1 Ответить
3. user1543540 13.07.21 17:03 Сейчас в теме
Добрый день. На текущий момент отчет работает?
4. vikhrov53 63 14.07.21 10:10 Сейчас в теме
Смотрите комментарий 2.
5. JinAir7460 24.09.21 13:36 Сейчас в теме
вот код человека, который просит 2 стартмани за нерабочую обработку:


&НаСервере
Функция ОбработкаДанныхЗаполнения(ДанныеЗаполненияПоСотруднику, ТекСотрудник)

Инд = 0;

ДанныеЗаполненияПоСотруднику_New = ДанныеЗаполненияПоСотруднику.СкопироватьКолонки();

Пока Инд < ДанныеЗаполненияПоСотруднику.Количество() Цикл
ЭлемМассива = ДанныеЗаполненияПоСотруднику[Инд];

Если ((ЭлемМассива.ВидОтпуска <> "Ежегодный") И (ЭлемМассива.ВидОтпуска <> "Основной отпуск")) ИЛИ ((ЭлемМассива.РабочийГодПо - ЭлемМассива.РабочийГодС) < 2*364*24*60*60) Тогда
НоваяСтрока = ДанныеЗаполненияПоСотруднику_New.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЭлемМассива);

Иначе //разбивка по годам

МассивОтпПоГодам = ПодготовитьМассивОтпПоГодам(ЭлемМассива, ТекСотрудник);

Для каждого ЭлПоГодам Из МассивОтпПоГодам Цикл

НоваяСтрока = ДанныеЗаполненияПоСотруднику_New.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЭлемМассива);
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЭлПоГодам);

КонецЦикла;

КонецЕсли;
Инд = Инд + 1;

КонецЦикла;

Возврат ДанныеЗаполненияПоСотруднику_New;

КонецФункции

&НаСервере
Функция ПодготовитьМассивОтпПоГодам(СтруктПарам, ТекСотрудник)

МассивОтпПоГодам = Новый Массив;

Если типЗнч(СтруктПарам.ДатаС) = Тип("Дата") Тогда
ДатаС = СтруктПарам.ДатаС;
Иначе
ДатаС = Дата(Сред(СтруктПарам.ДатаС,7,4)+Сред(СтруктПарам.ДатаС,4,2)+Сред(СтруктПарам.ДатаС,0,2));
КонецЕсли;

Если типЗнч(СтруктПарам.ДатаПо) = Тип("Дата") Тогда
ДатаПо = СтруктПарам.ДатаПо;
Иначе
ДатаПо = Дата(Сред(СтруктПарам.ДатаПо,7,4)+Сред(СтруктПарам.ДатаПо,4,2)+Сред(СтруктПарам.ДатаПо,0,2));
КонецЕсли;


СтруктураПараметров = ОстаткиОтпусков.ПараметрыПолученияРабочегоПериодаОтпуска();
СтруктураПараметров.ВидОтпуска = Справочники.ВидыОтпусков.Основной;
СтруктураПараметров.ДатаНачала = ДатаС;
СтруктураПараметров.ДатаКомпенсации = ДатаС;
СтруктураПараметров.ДатаОкончания = ДатаПо;
СтруктураПараметров.КоличествоДнейКомпенсации = СтруктПарам.ДнейОтпуска;
СтруктураПараметров.Сотрудник = ТекСотрудник;

//поиск док отпуска

Запрос = Новый запрос;
Запрос.Текст = "ВЫБРАТЬ
| Отпуск.Ссылка КАК Ссылка
|ИЗ
| Документ.Отпуск КАК Отпуск
|ГДЕ
| Отпуск.Сотрудник = &Сотрудник
| И Отпуск.ДатаНачалаОсновногоОтпуска = &ДатаНачалаОсновногоОтпуска
| И Отпуск.Организация = &Организация
| И Отпуск.Проведен = Истина";
Запрос.УстановитьПараметр("Сотрудник", ТекСотрудник);
Запрос.УстановитьПараметр("ДатаНачалаОсновногоОтпуска",ДатаС);
Запрос.УстановитьПараметр("Организация",ТекСотрудник.ГоловнаяОрганизация);

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
НужДок = Выборка.Ссылка;
Иначе //Док отпуск не найден - печатаем как есть
МассивОтпПоГодам.Добавить(СтруктПарам);
Возврат МассивОтпПоГодам;
КонецЕсли;

массивРегистр = Новый Массив;
массиврегистр.Добавить(НужДок);
СтруктураПараметров.Текущийрегистратор = МассивРегистр;

ДатаОстатков = СтруктураПараметров.ДатаНачала;
Если ДатаОстатков = Дата(1, 1, 1) Тогда
ДатаОстатков = СтруктураПараметров.ДатаКомпенсации;
КонецЕсли;

ОписаниеВидаОтпуска = ОстаткиОтпусков.ОписаниеВидаОтпуска(СтруктураПараметров.ВидОтпуска, ОстаткиОтпусков.ОтпускСотрудникаВРабочихДняхПоДоговору(СтруктураПараметров.Сотрудник, ДатаОстатков));
ЕжегодныйОтпуск = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтруктураПараметров.ВидОтпуска, "ОтпускЯвляетсяЕжегодным");

КоличествоДнейОтпуска = УчетРабочегоВремениРасширенный.ДлительностьИнтервала(
СтруктураПараметров.Сотрудник,
СтруктураПараметров.ДатаНачала,
СтруктураПараметров.ДатаОкончания,
ОписаниеВидаОтпуска.СпособРасчетаПоКалендарнымДням,
ОписаниеВидаОтпуска.ЕжегодныйОтпуск);

РасходуетсяДней = КоличествоДнейОтпуска + СтруктураПараметров.КоличествоДнейКомпенсации;

ПараметрыВызова = ОстаткиОтпусков.ОписаниеПараметровДляОстаткиОтпусков();
ПараметрыВызова.Сотрудники = СтруктураПараметров.Сотрудник;
//ПараметрыВызова.ДатаОстатков = НачалоДня(ДатаОстатков);

// Остатков отпуска на текущий момент не хватает, необходимо посчитать "будущие" остатки.
// Чтобы не получить бесконечную итерацию, устанавливаем максимальную дату "заглядывания в будущее".
// 1. получаем остатки на максимальную дату.
МаксимальнаяДата = Дата(Год(ТекущаяДатаСеанса()) + 5, Месяц(ТекущаяДатаСеанса()), День(ТекущаяДатаСеанса()));

ПараметрыВызова.ДатаОстатков = МаксимальнаяДата;

ПараметрыВызова.ВидыОтпусков = СтруктураПараметров.ВидОтпуска;
ПараметрыВызова.ИсключаемыеРегистраторы = СтруктураПараметров.ТекущийРегистратор;

ОстаткиОтпусковСотрудника = ОстаткиОтпусков.ОстаткиОтпусков(ПараметрыВызова);
КолвоРабГодов = ОстаткиОтпусковСотрудника.Количество();

НужноДнейотпуска = СтруктПарам.ДнейОтпуска;

ТекДатаНачала = СтруктураПараметров.ДатаНачала;
Инд = 0;
Пока НужноДнейотпуска > 0 Цикл
Если Инд > КолвоРабГодов - 1 Тогда
Сообщить("Нет рабочих годов для отпуска.");
Прервать;
КонецЕсли;
ТекСтр = ОстаткиОтпусковСотрудника[Инд];

НовСтрукт = Новый Структура;
НовСтрукт.Вставить("РабочийГодС", ТекСтр.РабочийГодДатаНачала);
НовСтрукт.Вставить("РабочийГодПо", ТекСтр.РабочийГодДатаОкончания);

ДнейОтпуска = ТекСтр.Дни;

Если НужноДнейОтпуска <= ДнейОтпуска Тогда
НовДнейотпуска = НужноДнейотпуска;
Иначе
НовДнейотпуска = Днейотпуска;
КонецЕсли;
НовСтрукт.Вставить("ДнейОтпуска",НовДнейотпуска);

НужноДнейотпуска = НужноДнейотпуска - НовДнейОтпуска;

НовСтрукт.Вставить("ДатаС", ТекДатаНачала);

НовДатаОкончания = ОстаткиОтпусковВызовСервера.ДатаОкончанияЕжегодногоОтпуска(СтруктураПараметров.Сотрудник, ТекДатаНачала, НовДнейОтпуска, ИСТИНА);
НовСтрукт.Вставить("ДатаПо", НовДатаОкончания);
ТекДатаНачала = НачалоДня(НовДатаОкончания + 24*60*60);

МассивОтпПоГодам.Добавить(НовСтрукт);

Инд = Инд + 1;
КонецЦикла;

Возврат МассивОтпПоГодам;

КонецФункции
6. JinAir7460 24.09.21 13:38 Сейчас в теме
как-будто мне в монитор насрали его кодом
7. user1543540 12.01.22 11:30 Сейчас в теме
Добрый день. Отчет не формирует, грит что прав нет над базой данных. Хотя, права у меня усеченные, не спорю.( но как у сотрудника кадровой службы прав достаточно). Отчет нужно дорабатывать? Или у системного администратора доп права попросить?
1С:Предприятие 8.3 (8.3.18.1334)
8. vikhrov53 63 13.01.22 10:59 Сейчас в теме
(7)Если у Вас работает стандартный отчет "Личная карточка (Т2)", то по идее должен работать и этот отчет. В моей системе все кадровики работают с профилем "Старший кадровик". Если не хватает прав, я обычно добавляю пользователю профиль с режимом ПРОСМОТРА (чтения) необходимых данных.
9. user1543540 13.01.22 14:16 Сейчас в теме
Спасибо. IT-к помог.
Первый вариант не подошел, второй более на правду похож.
Сотрудник оформил отпуск на 32 дня (4+28). В первом варианте отчет показал (28+4). Во втором как надо! (4 оставшиеся дня за один период, и 28 (новых) за второй)


Хотелось бы формировать не всю карточку Т2. А только ту часть, которая касается отпусков. Т.к саму карточку печатаем при приеме на работу. А данные отпусков вписываем в течении трудовой деятельности руками.
С этого года хотим печатать приложение с отпусками отдельно.
10. user1543540 29.08.22 09:03 Сейчас в теме
Добрый день. Подскажите, в чем может быть ошибка (только у некоторых сотрудников)

" В настройку отчета внесены критичные изменения. Отчет не будет сформирован. Индекс находится за границами массива"

Хотя, никаких настроек не делала. У большинства сотрудников все формирует, а у некоторых пишет эту ошибку.
11. vikhrov53 63 29.08.22 10:45 Сейчас в теме
Обычно такое сообщение выскакивает после обновления конфигурации, но я проверил на версии ЗУП 3.1.23.63 оба варианта работают. Иногда помогает очистка параметров пользователя. Для этого надо записать параметры базы (кластер серверов, имя инф. базы) в перечне инф. баз (с помощью кнопки "изменить"), затем удалить базу из списка, а затем добавить вновь эту базу с записанными ранее параметрами.
Оставьте свое сообщение