«1С:ЗУП» — популярное отечественное решение для автоматизации кадровых процессов. О том, как на его основе выстроить стабильную и гибкую HR-систему, избежав больших затрат на сопровождение и поддержку, рассказывает Жираслан Алоев, начальник отдела разработки «1С:ЗУП», MDM, ДО департамента разработки корпоративных решений IBS.
Внедрение в крупной компании «1С:ЗУП» с высокой степенью кастомизации требует особого внимания к технической реализации. Поэтому до начала работ важно определить состав команды, регламент разработки, а также организовать процессы код-ревью и тестирования.
Команда
Команда внедрения включает в себя множество ролей. Одни из них есть всегда (руководитель проекта, консультанты, аналитики, разработчики), другие появляются в сложных проектах (функциональный архитектор, технический архитектор, руководитель разработки).
Функциональный архитектор — это ключевой специалист, который связывает между собой бизнес и команду внедрения. Его основные задачи — проектирование архитектуры и контроль логики системы, работа с требованиями, анализ бизнес-процессов и их перевод в функциональную модель, обеспечение согласованности решений разных аналитиков. Такой специалист необходим в проектах, где активно развиваются функциональные блоки, используются сложные архитектурные решения либо задействовано более пяти аналитиков.
Технический архитектор, в свою очередь, отвечает за техническую реализацию проектируемой системы — разработку оптимальной архитектуры с учетом функциональных требований и ограничений платформы. Кроме того, он определяет регламенты и стандарты разработки. Участие технического архитектора необходимо при реализации крупных и сложных проектов, при глубокой кастомизации, повышенных требованиях к производительности и множественных интеграциях.
Еще одна важная роль — руководитель разработки. Он занимается формированием и ведением бэклога, планированием задач по спринтам и распределением их между разработчиками.
Регламент разработки
На старте проекта техническому архитектору следует сформировать стандарт и регламент разработки.
Стандарт представляет собой свод правил, по которым ведется разработка на проекте. В его основу, как правило, ложится стандарт вендора, к которому добавляются дополнительные требования, соответствующие специфике проекта. Регламент описывает правила доработки коробочного решения, устанавливает общий стиль и подходы к написанию кода, определяет использование тех или иных инструментов.
При наличии единых подходов повышаются читаемость и качество кода, снижаются трудозатраты на внесение изменений и исправление ошибок. Разработчики, особенно с небольшим опытом, получают понятные ориентиры для реализации типовых задач, а рекомендации по использованию библиотек способствуют созданию переиспользуемого кода.
Код-ревью и тестирование
Код-ревью — важная часть современного процесса разработки ПО, которая помогает создавать качественные, надежные и безопасные продукты и одновременно способствует профессиональному росту разработчиков.
Правила проведения код-ревью необходимо определить еще на старте проекта. В решении «1С» предусмотрены инструменты для автоматизации этого процесса, позволяющие сразу выявлять и устранять типовые ошибки в коде, что особенно актуально при работе с большой командой.
Тестирование со стороны команды внедрения — еще один обязательный этап, который должен быть четко описан и запланирован в начале проекта. Как правило, этот процесс выстроен следующим образом: разработчик передает реализованную функциональность аналитику, а тот проверяет ее на соответствие бизнес-требованиям.
При внедрении решений с высокой степенью кастомизации рекомендуется использовать автотесты. Они помогут выявить критические ошибки на раннем этапе, особенно в местах пересечения новых разработок. Такие ошибки зачастую не проявляются в моменте и обнаруживаются уже при эксплуатации или сквозном тестировании.
Есть инструменты, которые позволяют внедрять и дорабатывать «1С:ЗУП» без больших затрат на поддержку и сопровождение системы.
Механизм расширений
Механизм расширений в «1С» — это технология модификации и дополнения конфигурации без прямого изменения основного кода. При его применении сохраняется возможность автоматического обновления системы.
Расширения позволяют также гибко управлять функциональностью. Их можно структурировать по отдельным пакетам и распространять на разные системы. Это удобно, например, когда у компании несколько филиалов с различными требованиями. В этом случае общая функциональность размещается в базовом расширении, которое обновляется централизованно, а специфические блоки устанавливаются точечно.
Кроме того, этот инструмент дает возможность при необходимости отключать проблемные расширения без остановки всей системы.
Программный интерфейс
Разработчики нередко выстраивают функциональность, напрямую обращаясь к таблицам баз данных «1С». Однако в многослойной структуре «1С:ЗУП» сложно реализовать доработки с прямым обращением к метаданным. Такой подход сопряжен с высоким риском методологических ошибок. Может показаться, что нужная информация содержится в конкретной таблице, но зачастую эти данные будут либо неполными, либо недостоверными на конкретный момент времени, а для корректной работы нужно собирать данные из целого комплекса таблиц.
При доработке конфигурации «1С:ЗУП» стоит использовать предусмотренный вендором инструмент — программный интерфейс. Это набор готовых функций и методов, которые позволяют корректно обращаться к таблицам и получать необходимые данные.
Знание программного интерфейса и умение им пользоваться повышает качество и скорость разработки, уменьшает количество методологических ошибок.
Кроме того, обращение к данным через программный интерфейс повышает стабильность системы при обновлениях. Доработки, выполненные с его использованием, легче адаптируются к новым версиям. В отличие от прямого обращения к таблицам при таком подходе нет необходимости после каждого обновления платформы переписывать значительные части кода.
Менеджер расчета зарплаты
Менеджер расчета зарплаты используется всеми расчетными документами. Этот механизм позволяет рассчитывать начисления, удержания, НДФЛ и другие показатели по заданным сотрудникам. В «1С:ЗУП» он реализован как отдельное ядро, которое можно применять произвольно и независимо.
При внедрении «1С:ЗУП» нередко встречаются задачи с нетиповыми расчетами, которые не удается реализовать стандартными средствами. Если не понимать, как устроен менеджер расчета, можно погрузиться в разработку громоздкого и трудоемкого решения, потратив на него массу ресурсов.
При этом вносить изменения в сам инструмент не рекомендуется. Расчет зарплаты — это основа, вокруг которой строится вся система «1С:ЗУП». Даже кадровые приказы, которые, казалось бы, не содержат расчетных данных, используют менеджер расчета — например, для определения фонда оплаты труда. Вместо модификации самого механизма лучше сосредоточиться на правильном формировании входных данных для него. У менеджера расчета очень широкий набор параметров, позволяющий решать множество задач, включая те, которые не предусмотрены типовой конфигурацией.
Загрузка внешних файлов
Загрузка из Excel — частая задача при внедрении «1С:ЗУП». Речь не о разовой миграции, а о регулярной массовой загрузке данных в документ. Это могут быть премии, расчеты компенсаций и т. д. На одном проекте может потребоваться с десяток различных загрузчиков. Если каждый разработчик будет реализовывать эту задачу по-своему, неизбежно возникнет дублирование кода. Поэтому техническому архитектору следует позаботиться о создании единого механизма загрузки.
Доработка типовых отчетов
В коробочной версии «1С:ЗУП» уже есть множество типовых отчетов, но при внедрении решения заказчики, как правило, запрашивают дополнительные формы. Если реализовать их с помощью стандартных настроек не удается, лучше не дорабатывать сам отчет, а скопировать его и делать изменения уже в копии. Это связано с тем, что модифицированные отчеты непросто обновлять из-за отсутствия удобного инструмента сравнения версий.
Конструктор печатных форм
Конструктор печатных форм — механизм, позволяющий создавать формы по шаблонной схеме. В шаблоне уже есть статическая часть документа, а специалист через конструктор добавляет динамическую часть, которую система будет автоматически изменять.
Преимущества конструктора — ускорение разработки новых печатных форм, возможность добавления или изменения печатных форм без привлечения разработчиков, единый реестр всех печатных форм.
Устранение ошибок разработки на этапе эксплуатации
Проблемы в функционировании системы могут обнаружиться уже во время эксплуатации. Можно столкнуться с недостаточной производительностью, нестабильной работой, ошибками после обновлений и другими сбоями. Выявить их причины помогает технический аудит. Для его проведения рекомендуется привлечь технического и функционального архитекторов, в идеале специалистов с экспертизой именно в «1С:ЗУП».
Аудит включает в себя:
Например, в ходе аудита может выясниться, что работу системы замедляют устаревшие доработки.
Если в компании часто меняются или добавляются печатные формы, стоит внедрить конструктор печатных форм для более быстрого их ввода и унификации. Снизить нагрузку на поддержку позволяет перенос доработок в расширения. Не стоит забывать и про грамотное использование такого инструмента, как менеджер расчета зарплаты.
Эти рекомендации помогут оптимизировать работу «1С:ЗУП» в долгосрочной перспективе.