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