Почему в 1С:Бухгалтерия 3.0 при проведении отпуска возникает ошибка «Код дохода не может быть пустым»?

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

При работе в программе 1С:Бухгалтерия 8.3 (редакция 3.0) пользователи часто сталкиваются с неприятной ситуацией: при попытке провести документ Отпуск система выдает критическую ошибку: «Запись не верна! Значение поля "Код дохода" не может быть пустым! (Регистр накопления: Учет доходов для исчисления НДФЛ)». Эта проблема блокирует начисление заработной платы и расчет налогов, поэтому требует немедленного вмешательства. Давайте вместе разберем причины возникновения этой ошибки и пошагово пройдем путь к ее исправлению.

Суть проблемы: почему программа «ругается» на пустой код?

Ошибка возникает из-за того, что при проведении документа программа пытается сформировать записи в регистр накопления Учет доходов для исчисления НДФЛ. Этот регистр является ключевым для формирования отчетности (например, 6-НДФЛ). Одно из обязательных полей в нем — Код дохода. Если в документе начисления (в нашем случае — отпуска) не подтянулся вид расчета или в самом виде расчета не указан код по справочнику ФНС, система не может завершить транзакцию.

Проанализируем ситуацию: чаще всего корень проблемы кроется в том, что на вкладке Начисления документа Отпуск пуста табличная часть или не заполнена колонка с видом начисления. Разберем основные способы решения этой задачи.

Решение 1: Проверка настроек вида начисления и категории дохода

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

  1. Перейдем в раздел Администрирование — Параметры учета — Настройки зарплаты.
  2. Раскроем подраздел Расчет зарплаты и перейдем по ссылке Начисления.
  3. В открывшемся списке найдем начисление Отпуск основной. Обратите внимание: у него должна быть иконка с желтым кружком (это признак предопределенного элемента).
  4. Откроем карточку начисления. Проверим раздел НДФЛ. В поле Код дохода должен стоять код 2011 (для отпускных выплат). Если поле пустое — выберем его из справочника.
  5. Важный момент: Проверьте реквизит Категория начисления или неоплаченного времени. Для корректной работы документа «Отпуск» в 1С:Бухгалтерия 3.0 здесь должно быть строго установлено значение Оплата отпуска.

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

Решение 2: Программный анализ через конфигуратор (для специалистов)

Если визуально в пользовательском интерфейсе все настройки кажутся верными, но ошибка сохраняется, проанализируем программный код, который отвечает за подбор начисления. В модуле формы документа Отпуск используется процедура РассчитатьНачисления. Посмотрим на пример кода, который система использует для поиска подходящего вида расчета:


Функция НачисленияПоКатегории(КатегорияНачисления, Отбор = Неопределено) Экспорт
    ТекстЗапроса = "ВЫБРАТЬ
    | Начисления.Ссылка
    |ИЗ
    | ПланВидовРасчета.Начисления КАК Начисления
    |ГДЕ
    | Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &КатегорияНачисления";
    
    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("КатегорияНачисления", КатегорияНачисления);
    
    Выборка = Запрос.Выполнить.Выбрать();
    // Если выборка пуста, документ не найдет начисление "Отпуск"
КонецФункции

Рассмотрим подробнее этот механизм: если при выполнении этого запроса в переменной КатегорияНачисления передается значение Перечисления.КатегорияНачисленияИлиНеоплаченногоВремени.ОплатаОтпуска, а в вашем плане видов расчета ни у одного элемента такая категория не выбрана — функция вернет пустое значение. В результате в документе в поле СтрокаНачислений.Начисление запишется Неопределено, что и приведет к ошибке пустого кода дохода при проведении.

Решение 3: Проверка дублей и предопределенных элементов

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

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

Решение 4: Обновление классификаторов и исправление базы

Если поле Код дохода в начислении заполнено, но ошибка все равно указывает на его отсутствие, возможно, повреждены внутренние ссылки справочника или устарели классификаторы. Выполним следующие действия:

  1. Зайдем в Администрирование — Интернет-поддержка и сервисы — Обновление классификаторов. Обновим справочники НДФЛ.
  2. Если это не помогло, проведем Тестирование и исправление информационной базы (через Конфигуратор). Обязательно выберем пункты «Проверка ссылочной целостности» и «Реиндексация таблиц». Это поможет восстановить связь, если код дохода «отвалился» на уровне базы данных.

Резюме

Подводя итог, можно сказать, что ошибка «Код дохода не может быть пустым» — это всегда следствие того, что в документе Отпуск на вкладке Начисления не заполнена строка с видом расчета. Проверьте, чтобы в плане видов расчета Начисления для элемента «Отпуск основной» была установлена категория Оплата отпуска и код дохода 2011. После исправления настроек обязательно перевыберите сотрудника в документе или нажмите кнопку пересчета, чтобы табличная часть заполнилась автоматически.

← На главную