Процесс обновления конфигурации 1С:Бухгалтерия с устаревшей редакции 2.0 на актуальную 3.0 — это серьезная процедура миграции данных. Часто в процессе перехода пользователи сталкиваются с критической ошибкой при выполнении обработчиков обновления в режиме 1С:Предприятие. Наиболее частая формулировка ошибки выглядит так: Ошибка при вызове метода контекста (Записать) Регистратор.Движения.НачисленияУдержанияПоСотрудникам.Записать; по причине: Запись не верна! Значение поля \"Сотрудник\" не может быть пустым!. Давайте разберем, почему это происходит и как вернуть работоспособность базы.
Суть проблемы заключается в том, что при переходе на редакцию 3.0 платформа требует строгой целостности данных, которая в старой редакции 2.0 могла быть нарушена. Часто накопленные за долгие годы эксплуатации (иногда начиная с 2008–2012 годов) документы содержат «битые» ссылки, незаполненные поля или некорректные даты увольнения, которые не проходили проверку на уровне платформы в старой версии, но блокируют обновление в новой.
Прежде чем приступать к глубоким изменениям, необходимо выполнить стандартные процедуры обслуживания базы данных. Рассмотрим их по порядку:
Тестирование и исправление информационной базы в Конфигураторе. Выберите пункты Реструктуризация таблиц, Проверка логической целостности и Пересчет итогов.chdbfl.exe и запустите проверку файла базы данных (.1CD). Это поможет выявить физические повреждения структуры таблиц.Начисление зарплаты и Отражение зарплаты в учете. Проверьте, нет ли в базе «зависших» непроведенных документов за прошлые годы, в которых не указан сотрудник. Удаление таких документов часто решает проблему.Если поиск «вручную» не дает результата, необходимо точно определить, какой именно документ или запись регистра вызывает сбой. Для этого:
Конфигуратор и установите точку остановки в модуле, указанном в ошибке (например, ОбщийМодуль.ЗарплатаКадрыОбновлениеСПредыдущейРедакции).Отладка. Дождавшись остановки кода, посмотрите значения переменных — программа укажет конкретный документ-регистратор, который пытается записать пустой Сотрудник.Консоль запросов, чтобы найти в регистре НачисленияУдержанияПоСотрудникам записи с пустым полем Сотрудник.В исключительных случаях, когда найти «битую» запись невозможно, а обновление необходимо завершить, применяется метод временного отключения проверки в метаданных. Разберем этот процесс детально:
Конфигуратор.Регистр накопления с названием НачисленияУдержанияПоСотрудникам.Измерения, выберите поле Сотрудник.Запрет незаполненного.1С:Предприятие. Теперь платформа не будет прерывать запись при отсутствии сотрудника.Запрет незаполненного обратно, так как это критически важно для дальнейшей корректной работы программы.Частой причиной ошибок являются дубли в справочнике Сотрудники. При обновлении программа может пытаться сопоставить записи, но из-за дублирования или некорректных дат приема/увольнения возникают конфликты. Рекомендуем выполнить следующие действия:
Поиск и удаление дублей в старой базе до начала обновления.Помните, что любые манипуляции с Конфигуратором и массовые удаления данных необходимо выполнять только на копии базы. После того как обновление успешно завершено, обязательно сверьте отчеты (например, оборотно-сальдовую ведомость по счету 70) в новой редакции 3.0 с данными из редакции 2.0, чтобы убедиться в отсутствии искажений в финансовых показателях прошлых лет.