Печать личной карточки формы Т-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

См. также

Обновление для КА 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 Комплексный учет сельскохозяйственного предприятия

19900 руб.

01.04.2020    141372    668    352    

233

Электронный обходной лист (расширение) для ERP, ЗУП, КА

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

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

9600 руб.

11.01.2022    12446    2    5    

8

Переход на КЭДО: как настроить и внедрить сервис «1С:Кабинет сотрудника»

Кадровый учет ЭДО и ОФД Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Сервис «1С:Кабинет сотрудника» позволяет перейти на КЭДО быстро и с небольшими трудозатратами. После внедрения 1С:КС просто работает, требуя минимальной сервисной поддержки. Рассказываем, как организовать процесс с самого начала.

18.08.2022    15283    Infostart    4    

34

Ни в ЗУП ногой!? А мне нравится! Часть 3. Как меня туда занесло?

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

Ни для кого не секрет, что ЗУП - одно из сложнейших решений в линейке 1С. Многие разработчики и аналитики не любят им заниматься. Тяжело представить, чтоб начинающий разработчик/аналитик стал по доброй воле работать в сфере управления персоналом и расчета заработной платы. В данной серии статьей будет рассказано, какие видятся плюсы в этом решении и как справляться с его минусами. Кратко расскажу, как встать на этот путь, приведу примеры выполненных задач.

18.07.2022    4419    biimmap    8    

35

Ни в ЗУП ногой!? А мне нравится! Часть 2. Плюсы решения, где они прячутся?

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

Ни для кого не секрет, что ЗУП - одно из сложнейших решений в линейке 1С. Многие разработчики и аналитики не любят им заниматься. Тяжело представить, чтобы начинающий разработчик/аналитик стал по доброй воле работать в сфере управления персоналом и расчета заработной платы. В данной серии статьей будет рассказано, какие видятся плюсы в этом решении и как справляться с его минусами. Кратко расскажу, как встать на этот путь, приведу примеры выполненных задач.

04.07.2022    6678    biimmap    56    

62

Личный кабинет сотрудника для ЗУП 3.1 в Telegram

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

Сделайте взаимодействие сотрудников компании и бухгалтерии быстрым и удобным. С Личным кабинетом для Telegram больше не нужно лично посещать бухгалтерию и отдел кадров – все документы доступны в Telegram.

9600 руб.

21.03.2022    13962    7    20    

22

Ни в ЗУП ногой!? А мне нравится! Часть 1. Главные сложности решения, что отталкивает

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

Ни для кого не секрет, что ЗУП - одно из сложнейших решений в линейке 1С. Многие разработчики и аналитики не любят им заниматься. Тяжело представить, чтоб начинающий разработчик/аналитик стал по доброй воле работать в сфере управления персоналом и расчета заработной платы. В данной серии статей будет рассказано, какие видятся плюсы в этом решении и как справляться с его минусами. Кратко расскажу, как встать на этот путь, приведу примеры выполненных задач.

03.03.2022    12625    biimmap    57    

106

Перенос данных из Парус 10 (Торнадо) в ЗУП ред.3 через Excel

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

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

24000 руб.

03.06.2021    12858    1    6    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1027406 15.07.20 16:37 Сейчас в теме
Добрый день! Отчет не работает в релизе 3-1-10-470! Поправьте, пожалуйста! Спасибо!
2. vikhrov53 92 15.07.20 18:40 Сейчас в теме
Согласно правилам Инфостарта разработчик, представивший публикацию за Startmoney, не обязан сопровождать ее.
На момент публикации отчет был работоспособен для указанной конфигурации и платформы.
За прошедшие почти 2 года программа была существенна переработана и используется сейчас в расширении.
К сожалению, на оформление и тестирование программы в форме отчета нет времени. Могу лишь подсказать, что в связи с изменением основной конфигурации вместо "РабочееМесто.." надо использовать "Работа...".
WhiteOwl; +1 Ответить
3. user1543540 13.07.21 17:03 Сейчас в теме
Добрый день. На текущий момент отчет работает?
4. vikhrov53 92 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 92 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 92 29.08.22 10:45 Сейчас в теме
Обычно такое сообщение выскакивает после обновления конфигурации, но я проверил на версии ЗУП 3.1.23.63 оба варианта работают. Иногда помогает очистка параметров пользователя. Для этого надо записать параметры базы (кластер серверов, имя инф. базы) в перечне инф. баз (с помощью кнопки "изменить"), затем удалить базу из списка, а затем добавить вновь эту базу с записанными ранее параметрами.
Оставьте свое сообщение