При обновлении типовых конфигураций на платформе 1С:Предприятие 8.3, таких как Зарплата и управление персоналом 3.1 или Бухгалтерия предприятия 3.0, специалисты часто сталкиваются с критической ошибкой. В процессе выполнения дополнительных процедур обработки данных (обычно на этапе 26% или около того) система выдает сообщение: «Уже существует вид дохода НДФЛ с таким значением поля Код (3020)». Эта ситуация блокирует дальнейшую работу и не позволяет завершить обновление легальными методами через пользовательский интерфейс без предварительной подготовки.
В данной статье мы подробно проанализируем причины возникновения этой коллизии и разберем пошаговые алгоритмы её устранения, используя как стандартные инструменты программы, так и административные методы исправления данных.
Для начала разберем, почему возникает этот конфликт. Справочник ВидыДоходовНДФЛ содержит перечень кодов доходов, утвержденных налоговым законодательством. Код 3020 соответствует доходам в виде выигрышей и призов, получаемых в проводимых конкурсах, играх и других мероприятиях в целях рекламы товаров, работ и услуг.
Проблема возникает по одной из следующих причин:
3020 вручную, так как его не было в старой версии конфигурации.1С 7.7 или ЗУП 2.5) коды могли перенестись как обычные элементы, а не как предопределенные системные данные.3020 в список предопределенных элементов. При обновлении программа пытается создать этот системный элемент, но обнаруживает, что обычный элемент с таким кодом уже существует. Поскольку в справочнике установлена проверка на уникальность поля Код, процедура прерывается ошибкой.Рассмотрим подробнее способы решения этой задачи.
Самый простой и логичный путь — временно переименовать конфликтующий код, чтобы дать системе возможность создать новый системный элемент. Выполним следующие действия:
ВидыДоходовНДФЛ. В разных конфигурациях путь может отличаться, например: Налоги и взносы — Виды доходов НДФЛ.Код указано значение 3020.30201 или УДАЛИТЬ_3020.Важный момент: если поле Код недоступно для редактирования (серое), значит, в конфигурации установлена защита на изменение ключевых реквизитов. В этом случае перейдем ко второму способу.
Если прямой доступ к редактированию кода закрыт, воспользуемся мощным административным инструментом. Проанализируем последовательность шагов:
Виды доходов НДФЛ.Код Равно 3020.Код.Код и в колонке «Новое значение» введем 03020 или любое другое уникальное значение.После этого запустим процедуру обновления заново. Система увидит, что код 3020 свободен, и успешно создаст новый предопределенный элемент.
Иногда визуально в справочнике кода 3020 нет, но ошибка всё равно возникает. Это происходит потому, что дубль может быть помечен на удаление. Проанализируем ситуацию:
Виды доходов НДФЛ нажмем Еще — Настроить список.После того как мы изменили код и обновление успешно завершилось (прошло 100% выполнения обработок), в системе окажется два элемента, относящихся к одному и тому же налогу. Один — наш переименованный старый элемент, второй — новый системный (предопределенный).
Чтобы исключить путаницу в расчетах и отчетности, выполним слияние этих элементов:
Виды доходов НДФЛ.3020.Проанализируем программную сторону вопроса. При написании собственных обработок для исправления подобных ошибок программисты могут использовать следующий код для прямого изменения реквизитов объекта:
ОбъектСправочника = Справочники.ВидыДоходовНДФЛ.НайтиПоКоду("3020").ПолучитьОбъект();
Если ОбъектСправочника <> Неопределено Тогда
ОбъектСправочника.Код = "3020_СТАРЫЙ";
ОбъектСправочника.ОбменДанными.Загрузка = Истина; // Отключаем проверки
ОбъектСправочника.Записать();
Сообщить("Код успешно изменен для элемента: " + ОбъектСправочника.Наименование);
КонецЕсли;
Использование свойства ОбменДанными.Загрузка = Истина позволяет обойти прикладные проверки конфигурации, которые могут блокировать изменение кода в обычном режиме.
Если после всех манипуляций ошибка сохраняется, вероятно, виноват кэш конфигурации, который «запомнил» состояние справочника до изменений. Выполним следующие действия:
/ClearCache.Также рекомендуется выполнить Тестирование и исправление базы через Конфигуратор. Выберем пункты:
Это гарантирует, что внутренние индексы таблиц будут приведены в соответствие с фактическими данными в справочниках.
Важное напоминание: Перед выполнением любых действий, связанных с групповым изменением реквизитов или прямым редактированием кодов, обязательно создайте резервную копию базы данных. В случае ошибки в процессе слияния дублей или удаления объектов восстановить корректный налоговый учет без бэкапа будет крайне сложно.
Таким образом, мы разобрали комплексный подход к решению проблемы с кодом НДФЛ 3020. Своевременное выявление и устранение дублирующихся кодов до завершения фазы обновления позволяет избежать ошибок в расчете налога по ставке 35% и гарантирует корректное формирование регламентированной отчетности 6-НДФЛ и справок о доходах.