Почему после обновления 1С:ЗУП 3.1 перестали заполняться ведомости на аванс и как это исправить?

Бухгалтер 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

После установки обновлений конфигурации 1С:Зарплата и управление персоналом 3.1 пользователи нередко сталкиваются с ситуацией, когда при попытке автозаполнения ведомости на выплату аванса (в банк, на счета или через кассу) табличная часть документа остается пустой либо в нее попадает лишь незначительная часть сотрудников. Разберем подробно, какие изменения в алгоритмах программы вызывают такое поведение, как исправить ошибки учета и какие технические нюансы релизов ветки 3.1.5 следует учитывать.

Причина 1. Нарушение хронологии и ошибочный месяц в ведомостях выплаты зарплаты

Проанализируем ключевое изменение механизма контроля выплат. Начиная с релиза 3.1.5, в программе был ужесточен контроль полной выплаты заработной платы. Если в информационной базе уже проведен документ выплаты с характером «Зарплата за месяц» за текущий расчетный период, алгоритм считает, что окончательный расчет с сотрудниками за данный месяц уже полностью закрыт. Соответственно, выплата аванса за этот же период блокируется, и сотрудники исключаются из ведомости.

Чаще всего эта ошибка возникает из-за человеческого фактора при выплате зарплаты за прошлый месяц. Разберем типичный сценарий:

  1. В начале февраля бухгалтер выплачивает окончательный расчет (зарплату) за Январь.
  2. В созданной ведомости в реквизите Месяц выплаты ошибочно выбирается Февраль (по дате фактического создания документа), хотя выплата производится с характером «Зарплата за месяц».
  3. При наступлении срока выплаты аванса за февраль создается ведомость с характером «Аванс» и месяцем выплаты Февраль.
  4. Программа видит, что за Февраль зарплата уже выплачена, и очищает список сотрудников. В ведомость попадают только те, кто был принят на работу позже даты февральской выплаты зарплаты.

Способ исправления:

  1. Проверим все проведенные ведомости на выплату зарплаты за предыдущий месяц.
  2. Убедимся, что в поле Месяц выплаты указан именно тот расчетный месяц, за который выплачивались деньги (например, Январь, а не месяц фактической выплаты Февраль).
  3. При необходимости отменим проведение январской ведомости с зарплатой, перезаполним и проведем ведомость на аванс за февраль, после чего вернем проведение ведомости по зарплате.

Причина 2. Способ расчета аванса и учет отсутствий сотрудников

Рассмотрим правила заполнения ведомости в зависимости от того, какой способ расчета аванса назначен сотрудникам в кадровых документах (приеме на работу или изменении оплаты труда):

  1. Расчетом за первую половину месяца: суммы в ведомости заполняются строго на основании результатов документа Начисление за первую половину месяца. Если данный документ в текущем месяце не был создан и рассчитан, сотрудники с таким способом расчета в ведомость на выплату аванса не попадут вовсе.
  2. Фиксированной суммой или Процентом от тарифа: суммы проставляются автоматически согласно плановым показателям. Однако следует помнить, что алгоритм 1С анализирует фактические неявки. Если сотрудник с 1 по 15 число расчетного месяца находился в неоплачиваемом отпуске (отпуск за свой счет, прогул, простой), программа исключает его из ведомости на плановый аванс. Сотрудники на больничном или в ежегодном оплачиваемом отпуске при этом в ведомость попадают.

Если на предприятии требуется детальный расчет фактически отработанного времени за первые полмесяца с учетом всех невыходов, переведем сотрудников на способ выплаты «Расчетом за первую половину месяца» и обязательно перед формированием ведомостей будем вводить документ Начисление за первую половину месяца.

Причина 3. Ошибки ограничения прав доступа на уровне записей (RLS)

В релизах 3.1.5.99 и 3.1.5.126 была зафиксирована ошибка механизма RLS: у пользователей с кадровыми профилями новые документы (Увольнение, Кадровый перевод, документы неявок) открывались только в режиме «Только просмотр». Это приводило к невозможности корректно зафиксировать кадровые события и плановые начисления, что косвенно влияло на автозаполнение документов расчета и выплат.

Проанализируем техническую причину: ошибка крылась в шаблоне ограничений роли ДобавлениеИзменениеДанныхСотрудников по отношению к регистру сведений ТекущиеКадровыеДанныеСотрудников.

Варианты решения проблемы RLS:

  1. Обновление конфигурации: обновим информационную базу до релиза 3.1.5.129 или выше, где ошибка шаблонов прав исправлена разработчиками платформенно.
  2. Временное отключение RLS: если срочное обновление невозможно, в разделе Администрирование → Настройки пользователей и прав временно снимем флаг «Ограничивать доступ на уровне записей».
  3. Исправление в конфигураторе / расширении: скорректируем права роли ДобавлениеИзменениеДанныхСотрудников, открыв доступ к чтению и изменению данных регистра сведений ТекущиеКадровыеДанныеСотрудников.

Причина 4. Изменение структуры кадровых регистров и отказ внешних обработок

В рамках рефакторинга архитектуры 1С:ЗУП ресурс ВидЗанятости в регистре сведений КадроваяИсторияСотрудников был объявлен устаревшим и переименован в УдалитьВидЗанятости. Сами данные о виде занятости (основное место работы, совместительство) были вынесены в отдельные периодические интервальные регистры сведений (ВидыЗанятостиСотрудников, ВидыЗанятостиСотрудниковИнтервальный).

Это привело к сбою внешних банковских модулей (например, модулей прямого обмена и зарплатных проектов с банками ВТБ, Сбербанк и др.), внешних печатных форм и обработок выгрузки ведомостей, использующих прямые запросы к кадровым таблицам.

Посмотрим на пример правильного программного обращения к кадровым данным. В конфигурациях линейки 3.1 запрещено обращаться к ресурсам регистров напрямую через запросы. Необходимо использовать экспортные интерфейсные функции общих модулей:


// Пример получения кадровых данных сотрудников на дату через программный интерфейс
МассивСотрудников = Новый Массив;
МассивСотрудников.Добавить(ВыбранныйСотрудник);

КадровыеДанные = "ВидЗанятости,Подразделение,Должность,Организация";
ТаблицаДанных = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудников, КадровыеДанные, ТекущаяДата());

Для Каждого СтрокаДанных Из ТаблицаДанных Цикл
    ТекущийВидЗанятости = СтрокаДанных.ВидЗанятости;
КонецЦикла;

Причина 5. Ошибка шаблонов ввода исходных данных («Сдельный заработок»)

При создании нового элемента в справочнике Шаблоны документов ввода исходных данных для расчета зарплаты на проблемных сборках могла возникать блокирующая ошибка: «Показатель Сдельный заработок не найден».

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

Решение: перейдем в раздел Настройка → Расчет зарплаты → Настройка состава начислений и удержаний → на вкладке «Почасовая оплата» временно включим опцию «Применение сдельной оплаты труда». После этого шаблон запишется без ошибок.

Резюме и рекомендации по обновлению

  1. При проблемах с автозаполнением аванса в первую очередь проверим соответствие реквизита Месяц выплаты во всех зарплатных ведомостях предыдущих периодов.
  2. Если используется расчетный аванс, проконтролируем проведение документа Начисление за первую половину месяца до создания ведомости.
  3. При выявлении системных программных ошибок релиза (недоступность сотрудников в договорах ГПХ, сбои RLS, ошибки показателей) установим стабильный релиз не ниже 3.1.5.129 с применением актуальных официальных патчей (исправлений) от фирмы «1С».
← На главную