При обновлении конфигурации «1С:Бухгалтерия предприятия 3.0» с релиза 3.0.106.40 на 3.0.106.60 многие пользователи сталкиваются с критической ошибкой в режиме «1С:Предприятие». Процесс обновления останавливается на выполнении дополнительных процедур обработки данных, выдавая сообщение о невозможности записи объекта из-за нарушения уникальности кода в справочнике Виды доходов НДФЛ. Рассмотрим подробнее, почему это происходит и как решить проблему самостоятельно, не дожидаясь выхода исправляющих патчей.
Проанализируем ситуацию: в релизе 3.0.106.60 фирма «1С» внесла изменения в состав предопределенных элементов справочника ВидыДоходовНДФЛ. В частности, были добавлены новые системные коды (например, 1011, 2720, 2000) или изменены существующие. Если в вашей информационной базе ранее уже были созданы элементы с такими кодами вручную (как пользовательские элементы), то при обновлении система пытается создать новый системный (предопределенный) элемент с тем же кодом. Возникает конфликт: платформа не может записать новый объект, так как код 1011 уже занят другим элементом. Это блокирует дальнейшее выполнение процедур обновления, и работа в базе становится невозможной.
Разберем первый и самый очевидный способ — очистку справочника от дублирующих записей. Этот метод помогает в случае, если в базе накопились лишние элементы, которые не задействованы в учете.
Виды доходов НДФЛ.Код (сравнение по совпадению).Только после полной очистки справочника можно повторно запускать обновление конфигурации в «Конфигураторе», а затем в режиме «Предприятие».
Часто бухгалтер сталкивается с проблемой: код элемента в справочнике заблокирован для редактирования, и просто так изменить 1011 на другой номер не получается. Разберем, как обойти это ограничение без привлечения программиста.
Рассмотрим использование обработки Групповое изменение реквизитов:
Виды доходов НДФЛ.Ссылка Равно [Тот самый элемент с кодом 1011].Код и в колонке «Новое значение» введем временный код, например, 1011_старый.Теперь код 1011 свободен. При запуске обновления система создаст новый предопределенный элемент с кодом 1011, и конфликт уникальности не возникнет. После успешного обновления вы сможете перенести данные со старого элемента на новый через поиск и удаление дублей.
Посмотрим на еще один вариант, который может помочь, если справочник сильно поврежден или содержит множество некорректных данных. В некоторых формах списков справочников доступна команда восстановления системных значений.
Для этого откроем справочник Виды доходов НДФЛ, нажмем кнопку Ещё и поищем пункт «Восстановить начальные значения» (доступно не во всех версиях интерфейса). Однако более надежным методом остается использование программных обработок по установке предопределенных элементов, которые позволяют «связать» ваш существующий элемент с внутренним идентификатором конфигурации.
Если вы обладаете навыками работы с консолью запросов или имеете доступ к внешним обработкам, можно выполнить программную «склейку» элементов. Выясним причину: системе важно не просто наличие кода, а наличие элемента, у которого заполнено внутреннее свойство ИмяПредопределенныхДанных.
Пример логики, которую используют специалисты для исправления таких ошибок через внешнюю обработку:
ОбъектВидаДохода = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("1011").ПолучитьОбъект();
Если ОбъектВидаДохода <> Неопределено Тогда
ОбъектВидаДохода.ИмяПредопределенныхДанных = "Код1011"; // Имя из метаданных нового релиза
ОбъектВидаДохода.Записать();
КонецЕсли;
Важный момент: такие манипуляции стоит проводить только в том случае, если вы точно знаете имя предопределенного элемента в новой конфигурации. Для обычного пользователя безопаснее использовать Способ 2 с переименованием кода.
Проанализируем еще несколько факторов, которые могут влиять на успех обновления:
/ClearCache.Подведем итог: если ваше обновление 3.0.106.60 «зависло» на ошибке кода 1011 (или аналогичного), наиболее эффективным путем будет откат к копии, ручное изменение кода конфликтующего элемента через Групповое изменение реквизитов (с включенными служебными полями) и повторный запуск обновления. Это позволит вам оперативно сдать отчетность, не дожидаясь официальных исправлений от вендора.