Как исправить ошибку нарушения уникальности кода в справочнике «Виды доходов НДФЛ» при обновлении 1С:Бухгалтерия 3.0 до релиза 3.0.106.60?

Бухгалтер 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет
← На главную

При обновлении конфигурации «1С:Бухгалтерия предприятия 3.0» с релиза 3.0.106.40 на 3.0.106.60 многие пользователи сталкиваются с критической ошибкой в режиме «1С:Предприятие». Процесс обновления останавливается на выполнении дополнительных процедур обработки данных, выдавая сообщение о невозможности записи объекта из-за нарушения уникальности кода в справочнике Виды доходов НДФЛ. Рассмотрим подробнее, почему это происходит и как решить проблему самостоятельно, не дожидаясь выхода исправляющих патчей.

Выясним причину возникновения ошибки

Проанализируем ситуацию: в релизе 3.0.106.60 фирма «1С» внесла изменения в состав предопределенных элементов справочника ВидыДоходовНДФЛ. В частности, были добавлены новые системные коды (например, 1011, 2720, 2000) или изменены существующие. Если в вашей информационной базе ранее уже были созданы элементы с такими кодами вручную (как пользовательские элементы), то при обновлении система пытается создать новый системный (предопределенный) элемент с тем же кодом. Возникает конфликт: платформа не может записать новый объект, так как код 1011 уже занят другим элементом. Это блокирует дальнейшее выполнение процедур обновления, и работа в базе становится невозможной.

Способ 1. Использование стандартной обработки «Поиск и удаление дублей»

Разберем первый и самый очевидный способ — очистку справочника от дублирующих записей. Этот метод помогает в случае, если в базе накопились лишние элементы, которые не задействованы в учете.

  1. Если вы уже начали обновление и получили ошибку, необходимо восстановить базу из резервной копии, сделанной до начала обновления. Это критически важно, так как работать с «недообновленной» базой нельзя.
  2. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных.
  3. Выберем пункт Поиск и удаление дублей.
  4. В поле «Искать в:» выберем справочник Виды доходов НДФЛ.
  5. В правилах поиска установим отбор по полю Код (сравнение по совпадению).
  6. Нажмем Найти дубли. Проанализируем список: система покажет элементы с одинаковыми кодами.
  7. Выберем правильный (оригинальный) элемент как «Оригинал», а остальные пометим как дубли. Нажмем Удалить дубли.
  8. После завершения обработки обязательно зайдем в Администрирование — Обслуживание — Удаление помеченных объектов и полностью удалим эти записи.

Только после полной очистки справочника можно повторно запускать обновление конфигурации в «Конфигураторе», а затем в режиме «Предприятие».

Способ 2. Ручное изменение кодов через «Групповое изменение реквизитов»

Часто бухгалтер сталкивается с проблемой: код элемента в справочнике заблокирован для редактирования, и просто так изменить 1011 на другой номер не получается. Разберем, как обойти это ограничение без привлечения программиста.

Рассмотрим использование обработки Групповое изменение реквизитов:

  1. Зайдем в раздел Администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов.
  2. В поле «Выбирать элементы типа:» укажем Виды доходов НДФЛ.
  3. Нажмем кнопку Дополнительные параметры и установим флажки «Показывать служебные реквизиты» и «Режим разработчика». Это позволит нам редактировать заблокированные поля.
  4. Добавим условие отбора: Ссылка Равно [Тот самый элемент с кодом 1011].
  5. В списке реквизитов найдем поле Код и в колонке «Новое значение» введем временный код, например, 1011_старый.
  6. Нажмем Изменить реквизиты.

Теперь код 1011 свободен. При запуске обновления система создаст новый предопределенный элемент с кодом 1011, и конфликт уникальности не возникнет. После успешного обновления вы сможете перенести данные со старого элемента на новый через поиск и удаление дублей.

Способ 3. Восстановление начальных значений справочника

Посмотрим на еще один вариант, который может помочь, если справочник сильно поврежден или содержит множество некорректных данных. В некоторых формах списков справочников доступна команда восстановления системных значений.

Для этого откроем справочник Виды доходов НДФЛ, нажмем кнопку Ещё и поищем пункт «Восстановить начальные значения» (доступно не во всех версиях интерфейса). Однако более надежным методом остается использование программных обработок по установке предопределенных элементов, которые позволяют «связать» ваш существующий элемент с внутренним идентификатором конфигурации.

Способ 4. Программный обход проблемы (для продвинутых пользователей)

Если вы обладаете навыками работы с консолью запросов или имеете доступ к внешним обработкам, можно выполнить программную «склейку» элементов. Выясним причину: системе важно не просто наличие кода, а наличие элемента, у которого заполнено внутреннее свойство ИмяПредопределенныхДанных.

Пример логики, которую используют специалисты для исправления таких ошибок через внешнюю обработку:


ОбъектВидаДохода = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("1011").ПолучитьОбъект();
Если ОбъектВидаДохода <> Неопределено Тогда
    ОбъектВидаДохода.ИмяПредопределенныхДанных = "Код1011"; // Имя из метаданных нового релиза
    ОбъектВидаДохода.Записать();
КонецЕсли;

Важный момент: такие манипуляции стоит проводить только в том случае, если вы точно знаете имя предопределенного элемента в новой конфигурации. Для обычного пользователя безопаснее использовать Способ 2 с переименованием кода.

Дополнительные рекомендации

Проанализируем еще несколько факторов, которые могут влиять на успех обновления:

Подведем итог: если ваше обновление 3.0.106.60 «зависло» на ошибке кода 1011 (или аналогичного), наиболее эффективным путем будет откат к копии, ручное изменение кода конфликтующего элемента через Групповое изменение реквизитов (с включенными служебными полями) и повторный запуск обновления. Это позволит вам оперативно сдать отчетность, не дожидаясь официальных исправлений от вендора.

← На главную