При работе в программе 1С:Бухгалтерия 8.3 (редакция 3.0) пользователи часто сталкиваются с неприятной ситуацией: при попытке провести документ Отпуск система выдает критическую ошибку: «Запись не верна! Значение поля "Код дохода" не может быть пустым! (Регистр накопления: Учет доходов для исчисления НДФЛ)». Эта проблема блокирует начисление заработной платы и расчет налогов, поэтому требует немедленного вмешательства. Давайте вместе разберем причины возникновения этой ошибки и пошагово пройдем путь к ее исправлению.
Ошибка возникает из-за того, что при проведении документа программа пытается сформировать записи в регистр накопления Учет доходов для исчисления НДФЛ. Этот регистр является ключевым для формирования отчетности (например, 6-НДФЛ). Одно из обязательных полей в нем — Код дохода. Если в документе начисления (в нашем случае — отпуска) не подтянулся вид расчета или в самом виде расчета не указан код по справочнику ФНС, система не может завершить транзакцию.
Проанализируем ситуацию: чаще всего корень проблемы кроется в том, что на вкладке Начисления документа Отпуск пуста табличная часть или не заполнена колонка с видом начисления. Разберем основные способы решения этой задачи.
Первым делом нам необходимо убедиться, что в программе правильно настроен вид расчета для основного отпуска. Рассмотрим алгоритм проверки:
Категория начисления или неоплаченного времени. Для корректной работы документа «Отпуск» в 1С:Бухгалтерия 3.0 здесь должно быть строго установлено значение Оплата отпуска.Если это значение изменено на «Прочее» или «Повременная оплата труда», программный алгоритм не сможет автоматически найти это начисление при заполнении документа, и табличная часть начислений останется пустой.
Если визуально в пользовательском интерфейсе все настройки кажутся верными, но ошибка сохраняется, проанализируем программный код, который отвечает за подбор начисления. В модуле формы документа Отпуск используется процедура РассчитатьНачисления. Посмотрим на пример кода, который система использует для поиска подходящего вида расчета:
Функция НачисленияПоКатегории(КатегорияНачисления, Отбор = Неопределено) Экспорт
ТекстЗапроса = "ВЫБРАТЬ
| Начисления.Ссылка
|ИЗ
| ПланВидовРасчета.Начисления КАК Начисления
|ГДЕ
| Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = &КатегорияНачисления";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("КатегорияНачисления", КатегорияНачисления);
Выборка = Запрос.Выполнить.Выбрать();
// Если выборка пуста, документ не найдет начисление "Отпуск"
КонецФункции
Рассмотрим подробнее этот механизм: если при выполнении этого запроса в переменной КатегорияНачисления передается значение Перечисления.КатегорияНачисленияИлиНеоплаченногоВремени.ОплатаОтпуска, а в вашем плане видов расчета ни у одного элемента такая категория не выбрана — функция вернет пустое значение. В результате в документе в поле СтрокаНачислений.Начисление запишется Неопределено, что и приведет к ошибке пустого кода дохода при проведении.
Иногда пользователи создают «свой» вид начисления для отпуска, забывая про стандартный. Проанализируем список начислений еще раз. Если вы видите два «Отпуска», один из которых создан вручную, программа может путаться.
Выясним причину: автоматические документы в типовых конфигурациях жестко завязаны на предопределенные элементы или элементы с конкретными внутренними идентификаторами. Если вы используете созданный вручную элемент, убедитесь, что в нем заполнены все реквизиты:
Если поле Код дохода в начислении заполнено, но ошибка все равно указывает на его отсутствие, возможно, повреждены внутренние ссылки справочника или устарели классификаторы. Выполним следующие действия:
Подводя итог, можно сказать, что ошибка «Код дохода не может быть пустым» — это всегда следствие того, что в документе Отпуск на вкладке Начисления не заполнена строка с видом расчета. Проверьте, чтобы в плане видов расчета Начисления для элемента «Отпуск основной» была установлена категория Оплата отпуска и код дохода 2011. После исправления настроек обязательно перевыберите сотрудника в документе или нажмите кнопку пересчета, чтобы табличная часть заполнилась автоматически.