Автоматизация проверки расчетов в 1С с помощью инструмента Vanessa automation

Добрый день! В этой статье рассмотрим вариант по автоматизированной проверке расчетов в 1С с использованием инструмента Vanessa automation.

Думаю, что автоматизация проверки расчетов — довольно интересная тема для рассмотрения. Потому-что, в учетных системах (таких как 1С: Предприятие) довольно много разнообразных расчетов — таких как налоги, зарплата, страховые взносы и прочие. Для этого используются различные формулы и результаты округляются по определенным правилам. Также существуют различные граничные значения — к примеру прогрессивная шкала НДФЛ. Поэтому эти проверки очень хочется автоматизировать — чтобы написанный вами сценарий работал за вас.

В чем сложность?

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

В самом простом случае получится такая формула:

Зарплата = (Оклад / Число Рабочих Дней В Месяце) х Число ОтработанныхДнейЗаМесяц

Единственное, что нужно для расчета — это число рабочих дней в месяце и число отработанных дней сотрудником за месяц. И мы сможем получить результат. Вроде бы все довольно просто?

Но, сотрудник может работать на не полную ставку. Или-же получить исполнительный лист — по которому будет вычитаться определенная сумма. Или-же иметь какие-то вычеты по НДФЛ.

Все эти моменты должны учитываться при расчете зарплаты в конфигурации 1С ЗУП. Для этого используется один документ Начисление зарплаты и взносов. Но, для автоматизированной проверки этого документа стоит подготовить несколько сценариев — каждый заточенный под определенный жизненный случай. Самый простой из них — это, что сотрудник отработал все положенные по табелю дни за месяц.

Ошибка же в расчете в документе Начисление зарплаты и взносов приведет к тому, что пользователям придется вручную пересчитывать все суммы. Это довольно объемная работа, которая масштабируется на количество сотрудников в организации. Поэтому такие ошибки лучше не пропускать при тестировании.

Также думаю, все расчет лучше производить на тестовых сотрудниках, т.е. принятых на работу в этом же сценарии. Если мы возьмем существующего в базе сотрудника может случится, что он ушел в Отпуск и поэтому число его рабочих дней будет отличаться от числа рабочих дней по производственному календарю. И наш сценарий выдаст неправильную ошибку, в которой нужно будет разбираться и тратить на это время.

Документ Начисление зарплаты и взносов

Документ Начисление зарплаты и взносов

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

Решение:

Начнем с приема на работу нового сотрудника. Для этого необходимо создать новое физическое лицо и штатную единицу, т.к. для расчета зарплаты по окладу в Приеме на работу должно быть указан Вид занятости — Основное место работы. Чтобы быть уверенными, что он отработал все рабочие дни за месяц его необходимо принять на работу 1 числом месяца. Не важно будет ли этот день рабочим или выходным.

Документ Прием на работу

Документ Прием на работу

Также будет лучше, если сотрудник принимается в новое тестовое подразделение — чтобы заранее знать, что в табличной части документа Начисление зарплаты и взносов должен быть всего 1 сотрудник.

Далее создаем новый документ Начисление зарплаты и взносов по нашему подразделению. Нажимаем кнопку Заполнить — и в табличной части документа должна быть 1 запись по нашему сотруднику.

Для раскрытия в табличной части всех колонок — используется следующее условие

Раскрытие табличной части

Раскрытие табличной части

Далее в переменные мы сохраняем данные по расчету из табличной части.

Табличная часть документа Начисление зарплаты и взносов.

Табличная часть документа Начисление зарплаты и взносов.

Далее проверки расчета используется следующая команда — само вычисление происходит на сервере.

Проверка расчета данных из документа Начи

Проверка расчета данных из документа Начи

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

Функция Окр () — нужно для округления расчетов, т.к. зарплата рассчитывается до копеек — поэтому нужно оставить 2 знака после запятой. А НДФЛ рассчитывается до рубля, поэтому нужно оставить 0 знаков после запятой.

И дальше, в условии проверяем, что если разница равно 0 по в переменную Разница расчета сохраняем строку Верно. Иначе сохраняем значение Разницы.

Дальше в самом сценарии выполняется следующее условие которое выполняется, если переменная КорректностьРасчета неравна значению «Верно». И если это так вызывается исключение с нужным нам сообщением.

Условие по корректности расчета

Условие по корректности расчета

Далее, в сценарий можно добавить проверки на значения рассчитанного НДФЛ в документе Начисление ЗП и Взносов. И еще если от зарплаты отнять НДФЛ — то получим сумму к выплате, которая должна быть в Ведомости на выплату.

Вывод

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

На этом все — спасибо за внимание!

© Habrahabr.ru