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

28.09.21

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

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

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

19900 руб.

01.04.2020    143938    674    352    

235

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

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

6000 руб.

15.07.2015    63997    93    48    

98

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

Печать из ЗУП уведомления о трудовой деятельности для безвизового иностранного гражданина. С 7 января 2024 года безвизовые иностранцы должны уведомлять по утвержденной форме территориальный орган МВД России о ведении трудовой деятельности. Расширение позволит выполнить распечатку уведомления напрямую из программы ЗУП 3.1

3600 руб.

22.02.2024    740    1    0    

3

Зарплата Кадровый учет Корректировка данных Бухгалтер Пользователь Сложные периодические расчеты 8.3.14 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

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

3 стартмани

17.04.2023    3993    49    Vinzor    6    

25

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

Групповое формирование и печать Дополнительных соглашений для 1С: Зарплата и управление персоналом ПРОФ и КОРП + 8 печатных форм: Индексация заработной платы, Удаленная работа и предупреждение о COVID-19, Выход из удаленной работы, Кадровый перевод, Кадровый перевод списком, Назначение индивидуальной системы начислений, Переименование филиала, Приказ "Совмещение должностей", Приказ "Совмещение исполнения обязанностей"

18000 руб.

24.03.2023    4701    2    0    

4

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

Обработка больше предназначена как основа для своей разработки, чем как универсальное решение. Но можно использовать и как готовое решение для небольшой организации. Переносит данные из файла Excel в ЗУП, по аналогии как данные переносятся из ЗУП 2.5.

7200 руб.

19.01.2023    6042    2    2    

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