При работе в программе 1С:Зарплата и управление персоналом 3.1 (КОРП) пользователи часто сталкиваются с ситуацией, когда при проведении документа Больничный лист система выдает критическую ошибку. Текст ошибки обычно ссылается на ОбщийМодуль.ЗарплатаКадрыРасширенный и сообщает, что для работы с уже утвержденным документом (например, Отсутствие (болезнь, прогул, неявка)) недостаточно прав. Рассмотрим подробно, почему это происходит, как настроить права доступа и как правильно оформлять отсутствие сотрудников, работающих по внутреннему совместительству.
Проанализируем механику работы программы. В 1С:ЗУП реализован механизм защиты данных, которые уже были проверены и «закрыты» расчетчиком. Когда в документе Отсутствие (болезнь, прогул, неявка) устанавливается флаг «Расчет утвердил», документ становится недоступным для автоматического изменения другими документами. Однако, согласно методологии учета, Больничный лист при проведении должен «вытеснить» (сторнировать) данные ранее введенного отсутствия, если их периоды пересекаются.
Выясним причину блокировки: система пытается программно изменить состояние утвержденного документа Отсутствие, но у текущего пользователя нет на это полномочий. Даже если у расчетчика есть права на создание больничных листов, ему может быть запрещено «трогать» те записи, которые уже имеют статус утвержденных.
Для того чтобы расчетчик мог беспрепятственно проводить документы, затрагивающие утвержденные периоды, нам необходимо расширить его профиль полномочий. Разберем по шагам, как это сделать:
Изменение утвержденных документов зарплаты (в некоторых релизах она может называться Добавление и изменение утвержденных документов).Важный нюанс для версии КОРП: Если в системе включены бизнес-процессы согласования, документ может быть заблокирован не просто галочкой, а статусом «Согласовано». В этом случае выполнение задачи согласования блокирует редактирование на уровне платформенных механизмов, и может потребоваться временный возврат документа на доработку.
Рассмотрим ситуацию, когда мы не хотим давать пользователю постоянные права на изменение утвержденных данных. В таком случае алгоритм действий будет следующим:
Проанализируем цепочку документов. Если кадровик ввел Отсутствие, а расчетчик его утвердил, то перед вводом больничного расчетчик должен самостоятельно зайти в исходное Отсутствие и временно снять флаг «Расчет утвердил». Если этот флаг недоступен для редактирования даже пользователю с полными правами, проверим, не установлена ли в системе Дата запрета изменения данных. Если период закрыт датой запрета, никакие манипуляции с правами внутри программы не помогут, пока дата запрета не будет временно сдвинута или отключена администратором.
В процессе решения проблемы с правами часто возникает следующая ошибка: «В документе не может быть выбран сотрудник по внутреннему совместительству». Разберемся, почему программа ведет себя именно так и как правильно вводить данные.
Согласно законодательству и логике 1С:ЗУП, расчет пособия для сотрудника, работающего в одной организации и по основному месту, и по совместительству, производится в одном едином документе. Выясним основные правила:
Больничный лист необходимо выбирать только основное место работы сотрудника.Попытка выбрать в поле «Сотрудник» карточку, помеченную как (внутр. совм.), является методологической ошибкой, которую система блокирует программно. Информируйте расчетчиков, что создание отдельных больничных листов на каждое внутреннее совмещение не требуется и ведет к задвоению данных.
Посмотрим, как 1С обрабатывает пересечение периодов на уровне кода. В модуле ЗарплатаКадрыРасширенный при проведении происходит проверка записей в регистрах расчета (например, Начисления). Если система находит запись Отсутствие за тот же период, она инициирует процедуру сторнирования.
Пример логики проверки прав (упрощенно):
Если ДокументОснование.РасчетУтвержден Тогда
Если Не ПравоДоступа("ИзменениеУтвержденныхДокументов", Метаданные.РегистрыРасчета.Начисления) Тогда
ВызватьИсключение "Недостаточно прав для работы с утвержденным документом";
КонецЕсли;
КонецЕсли;
Проанализировав данную ситуацию, мы видим, что комплексное решение задачи требует как технической настройки прав доступа, так и соблюдения методологических правил работы с кадровыми данными сотрудников. Сочетание роли Изменение утвержденных документов зарплаты и выбора основного сотрудника в больничном листе позволит избежать ошибок и корректно рассчитать пособия.