После установки обновлений конфигурации 1С:Зарплата и управление персоналом 3.1 пользователи нередко сталкиваются с ситуацией, когда при попытке автозаполнения ведомости на выплату аванса (в банк, на счета или через кассу) табличная часть документа остается пустой либо в нее попадает лишь незначительная часть сотрудников. Разберем подробно, какие изменения в алгоритмах программы вызывают такое поведение, как исправить ошибки учета и какие технические нюансы релизов ветки 3.1.5 следует учитывать.
Проанализируем ключевое изменение механизма контроля выплат. Начиная с релиза 3.1.5, в программе был ужесточен контроль полной выплаты заработной платы. Если в информационной базе уже проведен документ выплаты с характером «Зарплата за месяц» за текущий расчетный период, алгоритм считает, что окончательный расчет с сотрудниками за данный месяц уже полностью закрыт. Соответственно, выплата аванса за этот же период блокируется, и сотрудники исключаются из ведомости.
Чаще всего эта ошибка возникает из-за человеческого фактора при выплате зарплаты за прошлый месяц. Разберем типичный сценарий:
Месяц выплаты ошибочно выбирается Февраль (по дате фактического создания документа), хотя выплата производится с характером «Зарплата за месяц».Способ исправления:
Месяц выплаты указан именно тот расчетный месяц, за который выплачивались деньги (например, Январь, а не месяц фактической выплаты Февраль).Рассмотрим правила заполнения ведомости в зависимости от того, какой способ расчета аванса назначен сотрудникам в кадровых документах (приеме на работу или изменении оплаты труда):
Начисление за первую половину месяца. Если данный документ в текущем месяце не был создан и рассчитан, сотрудники с таким способом расчета в ведомость на выплату аванса не попадут вовсе.Если на предприятии требуется детальный расчет фактически отработанного времени за первые полмесяца с учетом всех невыходов, переведем сотрудников на способ выплаты «Расчетом за первую половину месяца» и обязательно перед формированием ведомостей будем вводить документ Начисление за первую половину месяца.
В релизах 3.1.5.99 и 3.1.5.126 была зафиксирована ошибка механизма RLS: у пользователей с кадровыми профилями новые документы (Увольнение, Кадровый перевод, документы неявок) открывались только в режиме «Только просмотр». Это приводило к невозможности корректно зафиксировать кадровые события и плановые начисления, что косвенно влияло на автозаполнение документов расчета и выплат.
Проанализируем техническую причину: ошибка крылась в шаблоне ограничений роли ДобавлениеИзменениеДанныхСотрудников по отношению к регистру сведений ТекущиеКадровыеДанныеСотрудников.
Варианты решения проблемы RLS:
Администрирование → Настройки пользователей и прав временно снимем флаг «Ограничивать доступ на уровне записей».ДобавлениеИзменениеДанныхСотрудников, открыв доступ к чтению и изменению данных регистра сведений ТекущиеКадровыеДанныеСотрудников.В рамках рефакторинга архитектуры 1С:ЗУП ресурс ВидЗанятости в регистре сведений КадроваяИсторияСотрудников был объявлен устаревшим и переименован в УдалитьВидЗанятости. Сами данные о виде занятости (основное место работы, совместительство) были вынесены в отдельные периодические интервальные регистры сведений (ВидыЗанятостиСотрудников, ВидыЗанятостиСотрудниковИнтервальный).
Это привело к сбою внешних банковских модулей (например, модулей прямого обмена и зарплатных проектов с банками ВТБ, Сбербанк и др.), внешних печатных форм и обработок выгрузки ведомостей, использующих прямые запросы к кадровым таблицам.
Посмотрим на пример правильного программного обращения к кадровым данным. В конфигурациях линейки 3.1 запрещено обращаться к ресурсам регистров напрямую через запросы. Необходимо использовать экспортные интерфейсные функции общих модулей:
// Пример получения кадровых данных сотрудников на дату через программный интерфейс
МассивСотрудников = Новый Массив;
МассивСотрудников.Добавить(ВыбранныйСотрудник);
КадровыеДанные = "ВидЗанятости,Подразделение,Должность,Организация";
ТаблицаДанных = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудников, КадровыеДанные, ТекущаяДата());
Для Каждого СтрокаДанных Из ТаблицаДанных Цикл
ТекущийВидЗанятости = СтрокаДанных.ВидЗанятости;
КонецЦикла;
При создании нового элемента в справочнике Шаблоны документов ввода исходных данных для расчета зарплаты на проблемных сборках могла возникать блокирующая ошибка: «Показатель Сдельный заработок не найден».
Выясним причину: в модуле объекта при записи выполнялся жесткий запрос с проверкой предопределенного показателя сдельной оплаты труда. Если на предприятии сдельная оплата не велась, данный предопределенный элемент отсутствовал в базе.
Решение: перейдем в раздел Настройка → Расчет зарплаты → Настройка состава начислений и удержаний → на вкладке «Почасовая оплата» временно включим опцию «Применение сдельной оплаты труда». После этого шаблон запишется без ошибок.
Месяц выплаты во всех зарплатных ведомостях предыдущих периодов.Начисление за первую половину месяца до создания ведомости.