Ошибка «Уже существует основание увольнения» при обновлении 1С:Бухгалтерии 3.0: как исправить
Разбираем причину сбоя «Уже существует основание увольнения» при обновлении 1С:Бухгалтерии 3.0 и даём безопасный порядок исправления: бэкап, ТИИ, поиск дубля через консоль запросов, замена элемента без потери ссылочной целостности и повторный запуск обновления. Пошагово, с проверкой журнала регистрации и документов кадрового учёта.
Ошибка «Уже существует основание увольнения с таким значением поля Наименование» останавливает обновление 1С:Бухгалтерии 3.0 на этапе, когда обработчик обновления записывает в справочник «Основания увольнения» элементы из макета «ОснованияУвольненияПоТКРФ». Программа остаётся на прежнем релизе: обновление не завершено, новая конфигурация не принята.
Корень сбоя - расхождение внутренних идентификаторов. В базе уже лежит запись с тем же кодом или наименованием, но с другой ссылкой. Обработчик ищет элемент по ссылке, не находит её и пытается создать новую запись, а СУБД отклоняет вставку по индексу уникальности. Исправление начинается с переноса ссылок на корректный элемент и очистки дубля, удаление строки в списке даёт только косметический эффект.
Порядок работ такой: резервная копия, полная проверка и исправление на текущем релизе, поиск конфликтной пары через консоль запросов, замена проблемного элемента специализированной обработкой, повторный запуск обновления и проверка журнала регистрации.
Оговорка по версиям. Описанная ситуация относится к переходу с 3.0.77.56 на 3.0.77.78, а в публичных разборах та же ошибка встречается на релизе 3.0.142.56. Механика конфликта ссылок одинакова, но состав классификатора и набор предопределённых элементов зависят от релиза. Сверяйте шаги с документацией к своей версии.
Почему возникает ошибка «Уже существует основание увольнения» при обновлении
Начиная с версии 3.0.142 фирма «1С» поставляет обновлённый классификатор оснований увольнения, который нужен для корректного заполнения подразделов формы ЕФС-1. При обновлении конфигурации обработчик проходит по макету «ОснованияУвольненияПоТКРФ» и переносит элементы в справочник. Каждый элемент макета несёт пару «код - наименование» и собственную ссылку, зашитую в макете.
Запись проходит успешно, пока в справочнике нет элемента с тем же кодом или наименованием. Как только совпадение найдено, обновление останавливается с сообщением об уже существующем основании увольнения.
Конфликт кода и наименования: как это работает
Алгоритм ищет существующую запись по ссылке. Ссылка в базе и ссылка в макете - разные GUID, даже когда код и текст совпадают. Поиск не даёт результата, обработчик формирует новый элемент, и на записи срабатывает уникальность индекса по коду или по наименованию. СУБД возвращает ошибку, обработчик прерывается.
Пример из публичных обсуждений проблемы: в отчёте по справочнику видны две строки с кодом «#иное» и разные ссылки, AAAAAAEQVZ0= и AAAAAAEQVZs=. То же по коду «#п1.1ч1с37фз79»: ссылки AAAAAAEQGUw= и AAAAAAEQU78=. Пользователь получает отказ по коду или по наименованию, и оба сообщения описывают один конфликт.
Попытка обойти проблему переименованием кодов (например, добавить префикс) даёт обратный эффект: обработчик не находит элемент с кодом из макета и создаёт его заново. Справочник растёт, на одну статью ТК РФ приходится два-три одинаковых элемента.
Почему дубликат не виден в списке справочника
Форма списка по умолчанию скрывает помеченные на удаление записи, а часть дублей приходит именно с этим признаком. Второй вариант - элемент создан в другой базе и попал через РИБ (распределённая информационная база) со своей ссылкой. В списке он выглядит обычной строкой, конфликт обнаруживается только при сравнении ссылок.
Третий сценарий - ручное добавление. Пользователь когда-то завёл основание увольнения вручную, чтобы закрыть документ, и этот элемент перекрыл загрузку классификатора.
Подготовка к исправлению: резервная копия и проверка ТИИ
Работа со справочником на этапе незавершённого обновления связана с риском. Сначала копия, затем диагностика.
Как сделать резервную копию базы 1С
В конфигураторе: «Администрирование» - «Выгрузить информационную базу», файл .dt сохраните в отдельный каталог, не на тот же диск, где лежит база. Для серверных баз копию снимают средствами СУБД (полный бэкап или снимок), а выгрузку .dt делают дополнительно, если позволяет объём.
Проверьте копию до начала работ: восстановите её в тестовую базу и убедитесь, что она открывается. Копия, которая не восстанавливается, страховкой не считается.
Запуск проверки и исправления (ТИИ)
Путь: «Администрирование» - «Обслуживание» - «Проверка и исправление». Отметьте «Проверка логической целостности», «Проверка ссылочной целостности», «Пересчёт итогов» и «Реиндексация таблиц». Запускайте в монопольном режиме: на время проверки пользователи должны выйти из программы.
ТИИ на текущем релизе (в описанной ситуации это 3.0.77.56) покажет сопутствующие проблемы в данных и подтвердит, что справочник «Основания увольнения» не содержит других аномалий. Полная проверка большой базы идёт часами, планируйте окно обслуживания.
Поиск проблемной записи в справочнике «Основания увольнения»
Визуальный просмотр списка полной картины не даёт. Нужен запрос, который покажет все строки, включая помеченные на удаление.
Запрос к справочнику через консоль запросов
ВЫБРАТЬ
ОснованияУвольнения.Ссылка КАК Ссылка,
ОснованияУвольнения.Код КАК Код,
ОснованияУвольнения.Наименование КАК Наименование,
ОснованияУвольнения.ПометкаУдаления КАК ПометкаУдаления,
ОснованияУвольнения.Предопределенный КАК Предопределенный,
ОснованияУвольнения.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
Справочник.ОснованияУвольнения КАК ОснованияУвольнения
УПОРЯДОЧИТЬ ПО
Код,
Наименование
Консоль запросов открывают как внешнюю обработку в режиме «Предприятие» либо через встроенную в конфигуратор. Второй вариант удобнее: не требует запускать лишние объекты в рабочей базе. Ограничение - работать нужно под пользователем с правами администратора.
Анализ результатов: как выявить дубль по ссылке
Сгруппируйте вывод по коду и наименованию. Пара строк с одинаковым кодом и разными ссылками и есть конфликт. Понять, какая из них эталонная, помогает колонка «Предопределенный»: эталонный элемент обычно предопределён и связан с именем предопределённых данных.
Если обе строки не предопределены, ориентируйтесь на связанные документы. Эталонной считайте ту, на которую ссылаются документы «Увольнение» и которая корректно печатается в ЕФС-1. Вторую строку будете присоединять к ней.
Корректная замена проблемного элемента через специализированную обработку
Удалять дубль напрямую нельзя: на него могут ссылаться документы кадрового учёта, и в них останется битая ссылка. Сначала все ссылки переносят на корректный элемент, затем дубль помечают на удаление.
Использование обработки «Замена элементов справочника»
Варианты: «Администрирование» - «Обслуживание» - «Замена элементов справочника» (в зависимости от релиза пункт может называться иначе или отсутствовать), внешняя обработка «Поиск и замена дублей» либо «Групповая обработка справочников и документов». Смысл один: выбрать справочник «ОснованияУвольнения», указать заменяемый элемент (дубль) и новый (эталонный), выполнить замену.
Перед заменой снимите свежую резервную копию: операция массовая и необратимая через интерфейс. Работайте в монопольном режиме, чтобы никто не создал новый документ со ссылкой на дубль в момент замены. После завершения проверьте, что у проблемной записи не осталось ссылок: отчётом по ссылкам или повторным запросом по таблицам документов.
Пометка дубля на удаление и удаление
Пометьте проблемный элемент на удаление. Затем «Администрирование» - «Обслуживание» - «Удаление помеченных объектов». В списке к удалению просмотрите найденные объекты и убедитесь, что среди них нет нужных данных.
Повторите запрос из предыдущего раздела: дублей по коду и наименованию остаться не должно. Если конфликтная пара сохранилась, замена не затронула часть ссылок либо в базе есть ещё один элемент с тем же кодом.
Повторный запуск обновления и проверка результата
После очистки справочника вернитесь к обновлению: «Администрирование» - «Обновление конфигурации» либо запуск из конфигуратора в режиме поддержки. Обработчик повторит загрузку макета «ОснованияУвольненияПоТКРФ».
Как проверить журнал регистрации после обновления
«Администрирование» - «Обслуживание» - «Журнал регистрации». Отфильтруйте события по дате и уровню «Ошибка». Ищите упоминания справочника «ОснованияУвольнения» и макета «ОснованияУвольненияПоТКРФ»: их быть не должно.
Проверьте, что обновление дошло до конца: в окне «О программе» указан релиз 3.0.77.78, а не прежний 3.0.77.56. Если номер остался старым, обновление снова прервалось.
Проверка кадровых документов и справочника
Откройте два-три документа «Увольнение» из разных периодов. В поле «Основание увольнения» должен стоять корректный элемент, без пустых значений и без пометки удаления. Перепроведите документы, если в них изменились реквизиты.
Повторно выполните запрос по справочнику: коды и наименования соответствуют классификатору, дублей нет. Число элементов должно совпасть с ожидаемым для вашего релиза.
Профилактика: как избежать повторения ошибки
Рекомендации по работе со справочниками классификаторов
Не заводите вручную элементы, которые должны приходить из классификатора. Если нужного основания нет, сначала обновите конфигурацию: возможно, элемент появится в новом релизе. Временную запись помечайте комментарием, чтобы удалить её до следующего обновления.
Раз в квартал прогоняйте запрос на дубли по ключевым справочникам кадрового учёта. Проверка занимает минуты, а конфликт ловится до того, как заблокирует обновление.
Особенности обновления при использовании РИБ
При РИБ сначала обновляют главный узел, затем подчинённые. Элементы с отличающимися ссылками попадают в базу из филиалов, и как раз они дают конфликт. Перед обновлением проведите сверку справочников между узлами.
Если дубли уже пришли из филиала, замена через обработку сработает, но при следующем обмене элемент может вернуться. В таком случае настройте фильтр обмена или удалите дубль в узле-источнике.
Схема «сначала бэкап, потом обновление, затем проверка журнала» работает и в других конфигурациях. Примеры разборов: обновление 3.0.21.3 для 1С:Документооборот государственного учреждения, релиз 3.0.21.3 для 1С:Документооборот КОРП, переход «Бюджета муниципального образования» на 1.3.59.55 и обновление «Гаражи» до 3.0.204.2.
Влияние ошибки на кадровый учёт и отчётность
Уже сохранённые документы не страдают: обновление не дошло до записи справочника. Риск в другом.
Что будет, если проигнорировать ошибку
Конфигурация остаётся на старом релизе. Классификатор оснований увольнения не обновляется, а значит, подразделы ЕФС-1 могут заполняться по устаревшим кодам. Для отчётности с признаком «увольнение» расхождение кодов даёт риск непринятия формы.
Второй эффект: следующее обновление упрётся в ту же ошибку. Дубль никуда не денется, и с каждым пропущенным релизом разрыв между версией базы и требуемой растёт.
Проверка корректности заполнения ЕФС-1 после исправления
После успешного обновления сформируйте ЕФС-1 в тестовом режиме и проверьте подразделы, связанные с увольнением. Основание должно подставляться из обновлённого справочника, код соответствовать классификатору релиза.
Сверьте одно-два увольнения с кадровыми приказами: дата, основание, статья. Если расхождений нет, обновление можно считать завершённым.