При обновлении конфигурации 1С:Зарплата и Управление Персоналом (ЗУП) до релиза 3.1.20.97 многие пользователи сталкиваются с проблемой на этапе дополнительных обработок данных. Система надолго «зависает», а затем выдает сообщение: «Ошибка заполнения документа основания во вторичном регистре». Процесс обновления останавливается на процедуре СостоянияСотрудников.ЗаполнитьДокументыОснованияСостоянийСотрудников.
Давайте подробно разберем, почему возникает эта ошибка и как ее исправить, чтобы успешно завершить обновление.
Суть проблемы кроется в изменениях, которые вносит релиз 3.1.20.97. В этом обновлении в независимый регистр сведений СостоянияСотрудников добавляется новый ресурс — ДокументОснование. Этот ресурс должен хранить ссылку на документ, который изменил состояние сотрудника (например, приказ о приеме на работу, документ отпуска и т.д.).
Процедура обновления пытается пройти по всем существующим записям регистра СостоянияСотрудников и заполнить этот новый ресурс соответствующими документами-основаниями.
Основная причина сбоя — наличие в базе нетиповых (самописных) документов, которые также влияют на состояние сотрудников. Стандартный обработчик обновления «не знает» о существовании таких документов. Когда он находит запись в регистре, созданную вашим нетиповым документом, он не может определить его тип и записать ссылку в ресурс ДокументОснование. В результате процесс прерывается с ошибкой.
Хотя реже, причинами могут быть и другие факторы:
Самый правильный и надежный способ решить проблему — это «познакомить» систему с вашими нетиповыми документами. Для этого нужно вручную добавить их в составной тип данных ресурса ДокументОснование. Рассмотрим по шагам, как это сделать.
Важно! Перед выполнением любых изменений в конфигурации обязательно создайте резервную копию базы данных.
Запустите 1С в режиме «Конфигуратор».
В дереве конфигурации найдите ветку «Регистры сведений» и раскройте ее. Найдите регистр СостоянияСотрудников.
Раскройте ветку регистра СостоянияСотрудников и перейдите на вкладку «Данные». Найдите в списке ресурсов ДокументОснование.
Дважды щелкните по ресурсу ДокументОснование, чтобы открыть его палитру свойств. Найдите свойство «Тип» и нажмите на кнопку с многоточием (...) справа от поля «Составной тип данных».
Откроется окно «Редактирование типа данных». В этом окне перечислены все типы документов, которые система считает допустимыми в качестве основания. Пролистайте список объектов конфигурации, найдите ваши нетиповые документы, которые используются для кадровых перемещений или других изменений состояний сотрудников, и установите напротив них флажки.
Нажмите «ОК», чтобы сохранить изменения в составе типа.
Теперь необходимо обновить конфигурацию базы данных. Нажмите F7 или выберите в меню «Конфигурация» -> «Обновить конфигурацию базы данных».
После успешного обновления конфигурации закройте конфигуратор и запустите 1С в режиме «1С:Предприятие». Система предложит продолжить выполнение дополнительных обработок. Запустите их. Теперь обработчик обновления будет знать о ваших документах и сможет корректно заполнить ресурс ДокументОснование, не вызывая ошибки.
Этот метод решает проблему в корне, так как адаптирует структуру метаданных под фактическое состояние вашей информационной базы.
Если основной метод по какой-то причине не подходит, или вы хотите провести дополнительную диагностику, можно рассмотреть следующие варианты.
Если проблемных записей немного, и вы не хотите вносить изменения в основную конфигурацию, можно создать временное расширение.
Создайте новое расширение конфигурации.
Заимствуйте в него регистр сведений СостоянияСотрудников.
Создайте для регистра форму списка и форму записи, добавив в них для редактирования поле ДокументОснование.
Запустив программу с этим расширением, вы сможете вручную найти записи с пустым основанием и заполнить их нужными документами. Этот способ более трудоемкий, но не требует снятия конфигурации с поддержки.
Перед повторной попыткой обновления рекомендуется выполнить общие профилактические действия:
Удаление патчей. В режиме «1С:Предприятие» перейдите в «Администрирование» -> «Обслуживание» -> «Установленные исправления (патчи)» и удалите все установленные исправления. Они могут конфликтовать с новой версией.
Тестирование и исправление. Запустите проверку целостности базы данных через конфигуратор («Администрирование» -> «Тестирование и исправление») с установленными основными флагами. Это поможет выявить и исправить логические или ссылочные ошибки.
Поиск дублей. Используйте стандартную обработку «Поиск и удаление дублей», чтобы проверить ключевые справочники на наличие элементов с одинаковыми кодами или наименованиями.
Таким образом, проанализировав ситуацию, мы видим, что ошибка при обновлении ЗУП 3.1.20.97 является предсказуемым следствием наличия нетиповых доработок. Следуя предложенной инструкции, вы сможете успешно адаптировать вашу базу и завершить обновление.