Ссылки на остальные части статьи:
1. Главные сложности решения, что отталкивает?
4. Главное - правильный перенос данных!
Продолжим раскрывать тему. Везде есть как минусы так и очевидные плюсы. Рассмотрим их.
Плюсы решения, где они прячутся?
1. Постоянство бизнес-процессов кадрового делопроизводства и расчета зарплаты
Одним из главных плюсов является постоянство предметной области. Если посмотреть на другие конфигурации, то проекты строятся исходя из следующих факторов:
- Любое производство имеет свои уникальные особенности, уникальный процесс. Даже 2 металлургических завода выплавляя металл в печах разного типа уже имеют отличия в производственном процессе. Другая структура затрат. Доменная печь работает на коксе, индукционная на электричестве. Разные металлы имеют разное сырье, у каждого предприятия свои ноу-хау. Поэтому и процесс автоматизации производства уникален на каждом предприятии. Разная логистика также накладывает свои особенности на автоматизацию.
- При автоматизации финансового учета вектор автоматизации задаёт финансовый/коммерческий директор. Автоматизация начинается с определения целей, которые требуется достичь. Снижение каких-то затрат, унификация процессов в разных структурных подразделениях, оптимизация логистики и т.д. Что делает проект сильно зависимым от отчетности, которую хотят видеть руководители заказчика.
ЗУП - довольно стабильная область. Цели и автоматизируемые участки практически одинаковы на всех предприятиях.
Отчетность и законодательство также довольно стабильно. Меняются отдельные статьи в кодексах и законах, но новых кодексов не планируется). Иногда добавляются новые формы отчетности - СЗВ-ТД. Это связано с цифровизацией. Но главные формы отчетности существуют уже 6 и более лет.
Благодаря этой стабильности есть возможность создавать и использовать на новых проектах наработки! К примеру, для автоматизации заполнения графиков вахты, расчета переработок на вахте и при суммированном учете рабочего времени мною написана обработка, которую успешно используют коллеги в других организациях. Помощник заполнения графиков при вахтовом методе работы, Описание целей и концепция переноса данных в ЗУП 3, Генерация данных по РК и СН с расчетом северного стажа.
2. Стабильный набор метаданных для решения задач регламентированного учета
Из первого плюса автоматически вытекает второй плюс! Раз бизнес-процессы и законодательство у нас довольно стабильны, и кардинально не меняются длительное время - значит и структура конфигурации остаётся довольно стабильной.
Все пользователи знают, что:
- В ЗУП 3 ведётся штатное расписание и есть документ для его изменения и утверждения
- Кадровые документы по отклонениям являются кадрово-расчетными
- Есть возможность ведения графиков работы и табелей
- Зарплата за первую половину начисляется документом "Начисление зарплаты за первую половину"
- Зарплата за месяц начисляется документом "Начисление зарплаты и взносов"
- Налоги и взносы рассчитываются при каждом начислении. Это может быть как межрасчетная выплата, отсутствие, так и зарплата за месяц.
- Выплата производится одним из 4-х документов Ведомость, в зависимости от способа выплаты.
и т.д.
Все разработчики знают структуру хранения метаданных в кадровом учете. Она также стабильна.
В описанных регистрах хранятся почти все кадровые данные (исключая персональные данные). Они стабильны и созданы были очень давно. Но т.к. время не стоит на месте и законодательство и решение развивается, произошли довольно масштабные изменения:
С 2016 года сдаётся отчетность 6-НДФЛ |
Для обеспечения автоматического заполнения отчетности в конфигурации произошли масштабные изменения в учете исчисленного удержанного НДФЛ. Появилось понятие "Дата получения дохода". Удержанный перестал быть по умолчанию равным исчисленному |
Добавлены интервальные регистры |
В какой-то момент разработчики ЗУП решили, что каждый раз вычислять периоды по кадровым событиям - это неудобно и затратно! Для этого для регистров кадрового учета добавлены интервальные регистры. Периоды вычисляются 1 раз в момент регистрации нового события. Так оказалось удобнее и эффективнее. Для получения данных из интервальных регистров написан программный интерфейс. Обращаться к ним напрямую не рекомендуется.
|
История переделки механизмов расчета зарплаты |
|
Реализован функционал электронных листков нетрудоспособности и прямых выплат из ФСС |
Есть возможность автоматически загрузить электронный лист нетрудоспособности. При прямых выплатах не меняется сальдо взаиморасчетов, на такой больничный лист не создаётся ведомость. |
Реализован функционал электронных трудовых книжек |
В каждом кадровом приказе есть флажок «Отразить в трудовой книжке». Добавлен документ «Сведения о трудовой деятельности работников, СЗВ-ТД» для отправки данных. |
Из этого можно сделать вывод: законодательство и отчетность не стоят на месте, проводится оптимизация многих алгоритмов, но костяк конфигурации остаётся без изменений! Это и есть плюс.
3. Применимость накопленного опыта. Универсальные решения
Раз бизнес-процессы, законодательство и реализация стабильны - каждое созданное решение можно использовать и в других организациях. Во времена перехода с 7.7 на ЗУП 2.5 или УПП проекты, в которых участвовал, на 50% выполнялись за счет ранее выполненных разработок. Опыт появлялся за счет качественного решения задач. которые не были решены в типовой конфигурации. Приведу примеры:
- Не было документа, для отражения приказов по штатному расписанию. Работа со штатным расписанием велась напрямую в регистре сведений. Также не было возможности подобрать из штатного расписания требуемую позицию и заполнить данные автоматически. В ЗУП 3 это реализовано. В ЗУП 2.5 этот функционал был написан с нуля и его легко моно было встроить в любой ЗУП, даже доработанный.
- До сих пор в ЗУП нет понятия "квалификационный разряд". Все мы знаем, что рабочие специальности имеют разряд. Разряд со временем меняется, т.к. многие работники проходят дополнительное обучение и сдают квалификационные экзамены. С точки зрения применения разряда... Разряд - это допуск к более сложной работе, повышенная тарифная ставка, возможно ещё надбавка за классность. В соответствии с этим отдел кадров формирует штатное расписание, предусматривая для разных разрядов разные позиции в штатном расписании. Разряд выводится в печатных формах кадровых приказов. Типовая конфигурация предлагала, и до сих пор предлагает, использовать тарифные сетки. Поэтому разряд добавлялся в кадровые регистры и в штатное расписание, менялись движения кадровых документов и печать приказов. Механизм универсальный и легко встраивался.
- Довольно длительный период ЗУП 2.5 не имел механизма по ведению дополнительных отпусков. Мною был разработан данный механизм по аналогии с ЗУП 3 (хотя на момент разработки ЗУП 3 ещё не было). Случайно угадал концепцию, по которой пойдут в новом решении. Встраивание этого механизма занимало пару дней.
Аналогичным путём стараюсь выполнять проекты сейчас. Любую задачу выполняю не на скорость, лишь бы сдать быстрее! Сразу продумываю возможность использования разработки на будущих проектах. Часто приходится немного менять архитектуру решения для обеспечения универсальности решения. В настоящий момент в разной степени готовности реализованы такие решения:
- Цели переноса данных и концепция переноса данных. Расчет здесь не на переход с ЗУП 2.5/УПП. Концепция прорабатывалась для того, чтоб показать, какой массив данных необходимо внести в ЗУП 3. Не важно откуда прилетит этот массив данных. Сейчас популярны проекты замещения иностранного ПО российским. Многие компании отказываются от SAP и Oracle, переходя на ЗУП 3.
- Доработанная под концепцию обработка по выгрузке данных из ЗУП 2.5/УПП.
- Обработки по исправлению переносимых данных. Часть данных корректируется в ЗУП 2.5/УПП, часть формируется уже в ЗУП 3.
- Генерация данных по РК и СН в штатном расписании и кадровых приказах на основе настроек подразделений. Во многих организациях РК и СН установлен сотрудникам с ошибками, некоторые устанавливают его суммарно одним начислением. У многих не учитывается стаж работы на севере. Т.к. в штатное расписание вовсе в усеченном виде, корректных данных оно обычно не содержит. При переносе из сторонних систем также проще данные сгенерировать, чем перенести. Обработка высчитывает северный стаж и на его основе вычисляет процент северной надбавки. Ещё одна функция - установка прав на отпуск за работу в условиях МКС/РКС. Этих данных в корректном виде не видел ни разу за весь свой опыт с ЗУП (14 лет).
- Заполнение графиков вахты. Обработка позволяет генерировать не цикличные графики работы. Вахта начинается обычно с 1 и с 16 числа месяца. Т.к. длина у месяцев разная - продолжительность вахты отличается. Также здесь следует учесть дорогу, а это с трудом поддается прогнозированию из-за метеоусловий и прочих особенностей.
- Расчет переработок (оплачиваемого междувахтового отпуска) на вахте и расчет переработок при суммированном учете рабочего времени. Многие невнимательно читают ТК РФ, и считают что оплачивать нужно что-то одно. Это заблуждение и нарушение закона. Почему описано в публикации к этой обработке.
- Внешняя база для ведения управленческих табелей. Решение позволяет вести "настоящий" табель отдельно от регламентированного. Работает с конфигурациями ЗУП 2.5, ЗУП 3 для Казахстана, для Беларуси, для РФ. На вход приходит определённый набор данных, необходимых для функционирования. Обработка по получению данных адаптирована для ЗУП 2.5 и отдельно для ЗУП 3 (одна для всех стран). Обработка по трансформации управленческого в регламентированный формирует регламентированный табель и рассчитывает часы переработки. Порядок оплаты переработок на усмотрение работодателя. Переработкой считается разница между нормой часов и реально отработанным временем.
- Расчет ежемесячной премии с базой прошлого месяца. При наличии РК, СН, переводов и прочих дополнительных условий, типовая конфигурация неверно её считает. Также возникают ошибки в определении даты получения дохода для НДФЛ.
На этом списке остановлюсь. Т.к. задача привести примеры, а не реклама. Наверняка у каждого разработчика есть полезный функционал, который можно применить на других проектах. Появляется такой функционал обычно, когда работа выполняется качественно и рассматривается большое количество сценариев. Решение сделанное на скорую руку, лишь бы побыстрее вряд ли станет тиражным.
4. Много сложных и интересных задач
В этом пункте расскажу коротко о необычных и сложных задачах, с которыми приходилось сталкиваться на практике. Подробно указанные задачи будут описаны в отдельной части этой статьи. Опишу задачи не с точки зрения найденного решения, а с точки зрения постановки и возникших сложностей.
- В 2012 году, выполняя проект по автоматизации металлургического предприятия, появилась необходимость автоматизировать сдельную оплату труда во всех цехах завода. Задача имела следующие сложности:
- Каждый цех имеет свой профиль и уникальный производственный процесс
- Расценки на сдельную оплату труда не вводятся, а рассчитываются. Основой для расчета служат "состав бригады", объём обрабатываемого металла (по умолчанию тонна) и временной норматив на выполнение каждой операции.
- Стоимость часа работы бригады получалась как сумма часовых тарифных ставок предполагаемых работников. Получались тарифные ставки из действующего штатного расписания. Учитывались плановые разряд и грейд должности.
- Сдельные наряды могли быть индивидуальными, могли быть бригадными. Некоторые работники были многостаночниками. Бригадные могли учитываться ежедневно или сумма копилась весь месяц, потом распределялась пропорционально отработанному времени и КТУ работников. Итого было 15 различных схем сдельной оплаты
- Используются переводы работников из одного подразделения в другое на несколько часов. (Внутрисменные переводы).
- В сдельном наряде должны рассчитываться доплаты за вредные условия труда и особенности производства, т.к. на каждом рабочем месте они разные. Работники в течение дня могут работать на разном оборудовании.
- Данные должны вводиться в месте их появления. Т.е. не расчетчик вводит показатели и считает сдельную оплату труда, а производственный цех.
- В 2017 году, работая в компании Сигма ИТ на проекте Интер РАО, поступила задача... Необходимо сделать так, чтоб командировка и некоторые другие отклонения не уменьшали сумму аванса. Дополнительно к формулировке руководитель проекта добавил: "С этой задачей двое программистов на текущий момент не справились")))
- В 2018 году, в ГК Роснефть руководитель настоял на моём участии в совещании. Тема совещания "Расчет зарплаты, налогов и взносов в зарубежных филиалах". Озвучил цель моего участия: "Нужно выслушать позицию методологов, обсудить пути решения". На совещании мне предложили быть спикером по этой теме, и без обсуждения с методологами рассказать путь решения данной задачи))) Должен был слушать, а пришлось рассказывать, благо 2 дня до этого изучал вопрос.
- В 2020 году обратилась компания LPP с формулировкой: "Компания подрядчик нам написала самописную базу для ведения управленческих табелей. Также выполнили перенос данных из ЗУП 2.5 в ЗУП 3. Можете проверить правильность выполненной работы и предложить пути по устранению проблем. Есть ощущение, что сейчас много ошибок". Ощущение подтвердилось, использовать наработки коллег оказалось невозможно ввиду низкого качества, работа выполнялась с нуля.
- В 2021 год обратилась компания АО Оргэнергострой с такой же просьбой. Только проект по переходу на ЗУП 3 длился уже 2,5 года, а данные должны переноситься так: кадровые из базы Access, расчетные из базы УПП. Данные содержат много ошибок, их выверкой никто не занимался. Не описан способ объединения объектов баз, написанных на разных платформах. Проект выполняется сейчас.
Подобных задач с никому непонятными формулировками, повышенной сложности и большим количеством неизвестных было очень много. Но каждая из таких задач даёт сильный толчок в развитии. Процесс их выполнения иногда завораживает, несмотря на длительность некоторых задач около 6 месяцев. Интересно разбираться в сложностях учета, особенностях законодательства искать пути решения задач, на первый взгляд невыполнимых. Не всё и везде получалось! Но всегда было невероятно интересно! Согласитесь, писать печатные формы и отчеты не так интересно?!
5. Польза знаний в предметной области в жизни
Все мы, наши друзья, родственники и коллеги являемся работниками у каких-то работодателей. Недопонимание между работником и его работодателем - это практически норма! Ведь у нас абсолютно разные цели. Работник хочет побольше денег получить за проведенное на работе время. Работодатель хочет получить максимум отдачи за время, которое работник проводит на работе. Также платить всякие премии, оплачивать переработки и прочие плюшки работодатели не любят! В каких случаях Вам могут пригодиться знания о кадровом учете и расчете зарплаты:
- К примеру, Вы в отпуске! Отдыхаете где-нибудь недалеко от места работы (т.е. Вам не повезло улететь за границу или хотя бы в другой регион). Случается ЧП на работе, и работодатель требует Вашего возвращения на работу! Т.е. происходит отзыв из отпуска. Некоторые работодатели грозят лишить премии или даже уволить, если не выйдете. Вот чем нужно руководствоваться:
- Никто и никогда, за исключением риска техногенной катастрофы, не имеет права вызвать Вас без Вашего письменного согласия. Грозит уволить - так пусть подумает, что всё равно задачу будет некому делать)))
- Если вдруг Вы согласились выйти, стоит сразу в письменной виде обсудить даты, в которые Вы продолжите отдыхать. Возможно, выйти надо всего на пару дней.
- Если накрываются какие-то важные планы, куплены билеты и т.д. - смело отказывайте, кроме обиды последствий не будет.
- Приходит начальник и говорит: "Пока не сделаешь задачу, не смей уходить с работы! Мне она нужна завтра утром." Уверен, такое слышали все) Посмотрим на это внимательней:
- С чего это вдруг, друг любезный, ты решил, что я должен потратить своё свободное время на работу? Тебе надо - иди делай! Ночь довольно длинная! Моё рабочее время закончится в 6 или 7 вечера. Заставить никто не может. Да могут попросить!
- Однако, есть исключения! Если у Вас в трудовом договоре установлен ненормированный режим рабочего времени, и Вы за это получаете 3 и более дня к отпуску, то достаточно письма на электронную почту Вам, чтоб всё таки остались и выполнили задачу! Откажетесь - получите выговор в трудовую! Оспорить в суде будет тяжело, т.к. есть ненормированный рабочий день и письмо от руководителя.
- А вот если рабочий день нормированный, то просите оформить работу в сверхурочное время. Первые 2 часа в 1,5-м размере, остальные в двойном!
- Когда читаем вакансии и видим фразу "+ сколько то дней к ежегодному отпуску...", знайте - бесплатный сыр в мышеловке! В этой организации в трудовом договоре прописан ненормированный рабочий день, придётся попахать!
- А давай-ка ты в выходной сделаешь всё то, чего не успеваешь в рабочее время, я тебе отгул потом дам. Тоже всем знакомо? Посмотрим внимательней:
- Не нужен мне отгул! Хочу двойную оплату! Только Вам решать, какой способ компенсации переработок выбрать!
- Одинарная оплата за работу в выходной день есть всегда! Поэтому требуйте приказ на работу в выходной день.
- Если у Вас по графику выпал государственный праздник - Вам обязательно оплатят в двойном размере. В т.ч. если вызвали не по графику, но в государственный праздник. Кому охота просто так (за отгул) работать в новый год)
- Отгул оплачиваемый! Т.е. если у Вас накопилось 20 отгулов, это не значит, что Вы будете месяц сидеть без зарплаты! Это значит Вы будете отдыхать, но зарплату получите, возможно правда без премиальной части) Она на усмотрение работодателя и за достижения в труде, а не в отдыхе!
- Полезно знать законы работягам. Вдруг Ваш знакомый работает вахтовым методом на Севере!? График ненормированный, условия сложные - платить должны соответственно. Чаще всего неверно выплачивают компенсацию за переработки на вахте. Рассмотрим подробнее:
- Работают на вахте по 12 часов в сутки, часто смены ночные. Работают без выходных дней 15-30 суток подряд. Некоторые работодатели предоставляют 1 выходной в неделю. Это надо оговаривать заранее!
- Возникают переработки. даже 12*15 = 180 часов. За те же 15 дней по пятидневке работают не более 88. Значит возникает переработка минимум 92 часа. Многие хитрят, и учитывают месяц, тогда переработка при норме в 160 часов всего 20 часов. Но это неверно, это прямой обман!
- Оплачивается эта переработка как "Междувахтовый отпуск оплачиваемый". Часы умножаем на ЧТС и получаем сумму.
- Но ведь у таких работников ещё и суммированный учет рабочего времени! Чаще всего используют период календарный год. Некоторые работодатели думают, что оплатив междувахтовый отдых можно не оплачивать переработки при суммированном учете рабочего времени. Это очередной обман! Законодательная база по этому вопросу описана в моей публикации, ссылку давал ранее. В конце года, либо при увольнении необходимо посмотреть, какова была норма рабочего времени за период и сколько работник отработал фактически. При подсчете нормы необходимо исключить периоды отсутствий (отпуска, б/л), чего многие тоже не делают, завышая норму и занижая часы переработки.
Продолжать здесь можно бесконечно, т.к. ТК РФ довольно большой. Главное знать, что работа в конфигурации ЗУП невероятно сложная, интересная, увлекательная и полезная! Главное выполнять её добросовестно, работая на качество!
Напомню о наличии других полезных статей:
Часть 1. Общие вопросы. Доработка чужого кода. Code review.
Часть 2. Доработка типовой конфигурации. Обновление доработанной типовой конфигурации.
Часть 3. Разбор и доработка запросов
Часть 4. Программный интерфейс. Исправление чужих доработок.
Помощник заполнения графиков вахты
Также напомню о статье про архитектора. Некоторые подходы, позволяющие решать сложные задачи, описаны в ней: