При обновлении конфигурации 1С:Бухгалтерия, например, на релиз 3.0.143.42, пользователи могут столкнуться с критической ошибкой, которая прерывает процесс. Система выдает предупреждение вида: «Критичная: Конфликт внутренних идентификаторов у объекта ОбщийМодуль.ТребованияФНСВызовСервера», часто со ссылкой на конкретное исправление, например, EF_60010767_v2.
Эта проблема не уникальна и может проявляться для разных объектов конфигурации, например, для ЭлементСтиля.ЦветОшибкиВПротоколеБРО. Попытки просто удалить проблемное расширение (патч) часто не приводят к успеху, так как оно появляется снова после перезапуска или через некоторое время.
Проанализируем ситуацию и разберем по шагам, как гарантированно решить эту проблему и успешно обновить вашу базу данных.
В основе проблемы лежит механизм исправлений (патчей) в 1С. Патчи — это, по сути, небольшие расширения конфигурации, которые фирма «1С» выпускает для оперативного исправления ошибок без необходимости ждать выхода полного релиза. Они загружаются и устанавливаются автоматически.
Ошибка «Конфликт внутренних идентификаторов» возникает, когда в системе одновременно оказываются активны два или более объекта с одинаковыми внутренними именами. Типичный сценарий:
EF_60010767).EF_60010767_v2).ОбщийМодуль.ТребованияФНСВызовСервера). Это и вызывает конфликт, который блокирует обновление основной конфигурации.Система автоматической загрузки патчей, работающая по расписанию (через РегламентныеЗадания), усугубляет проблему. Даже если вы вручную удалите конфликтующий патч, система через некоторое время обнаружит его отсутствие и загрузит снова, возвращая ошибку.
Чтобы успешно обновиться, необходимо подготовить базу данных, устранив все возможные конфликты. Самый надежный способ — это полностью очистить систему от установленных патчей, провести обновление и затем установить актуальные исправления уже для новой версии программы. Рассмотрим этот процесс по шагам.
Это ключевой шаг, который не даст системе вмешиваться в наши действия. Нам нужно временно остановить регламентное задание, отвечающее за загрузку исправлений.
Теперь система не будет пытаться загружать удаленные нами патчи до тех пор, пока мы не включим это задание обратно.
На этом этапе мы убираем сам источник конфликта. Не стоит бояться удалять все патчи — это безопасная процедура. После обновления мы загрузим их заново, и это будут уже версии, совместимые с новым релизом.
После завершения процедуры список установленных исправлений должен стать пустым.
Кэш — это служебные файлы, в которых 1С хранит информацию о структуре конфигурации для ускорения работы. Иногда в кэше могут оставаться «устаревшие» данные о конфликтующих объектах. Чтобы избежать повторения ошибки, кэш рекомендуется очистить.
Самый простой способ для пользователя:
Для продвинутых пользователей: можно вручную удалить папки с кэшем. Они находятся по путям %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Внутри вы найдете папки с длинными буквенно-цифровыми именами — это и есть кэш баз. Их можно удалить (при следующем запуске платформа создаст их заново).
Теперь, когда база подготовлена и ничего не мешает, можно запускать стандартную процедуру обновления.
В отсутствие конфликтующих патчей процесс обновления должен пройти успешно.
После того как основная конфигурация успешно обновлена, необходимо вернуть механизм исправлений в рабочее состояние.
Система загрузит и установит актуальный набор исправлений, предназначенный именно для вашего нового релиза, что исключит возникновение конфликтов в будущем.
Если проблема вызвана явным конфликтом двух версий одного патча (например, EF_60010767 и EF_60010767_v2), можно попробовать более простое решение, предложенное одним из участников форума.
_v2, найдите в списке такой же патч, но без этого суффикса.Этот метод может сработать, если конфликт единичный. Однако если проблемных патчей несколько, комплексный подход с полным удалением всех исправлений является более надежным.