Как исправить ошибку «поле не найдено сведенияодоходах.период» при заполнении 6-НДФЛ в 1С

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

При подготовке отчетности 6-НДФЛ пользователи программ «1С:Зарплата и управление персоналом» (ЗУП), «1С:ERP» и «1С:Комплексная автоматизация» нередко сталкиваются с критической ошибкой, которая прерывает процесс заполнения отчета. Ошибка выглядит как сообщение: «поле не найдено сведенияодоходах.период». Давайте подробно проанализируем ситуацию, выясним технические причины этого сбоя и рассмотрим все доступные способы решения проблемы — от автоматических исправлений до ручной корректировки кода.

Причины возникновения ошибки: технический анализ ситуации

Проанализируем программный код, который отвечает за формирование данных для второго раздела отчета 6-НДФЛ. Выясним причину: в последних релизах (начиная с 3.1.18.337 и 3.1.21.15) разработчики 1С обновили механизм разделения доходов по строкам раздела 2. Теперь система должна автоматически определять, к какой строке относится доход — 110 (трудовые договоры) или 113 (договоры ГПХ).

Рассмотрим подробнее алгоритм работы программы в этот момент. Когда в информационной базе присутствуют специфические коды доходов, такие как 2710 (материальная помощь), 2720 (подарки), 2760 или 4800, программа запускает дополнительный блок запроса. Этот блок пытается сопоставить дату получения дохода с периодами действия договоров ГПХ и трудовых договоров физического лица.

Ошибка кроется в том, что при переформировании временной таблицы ВТДоходыСоСтрокамиРаздела2 в одном из вложенных запросов разработчики забыли включить поле Период в список выборки. На следующем шаге алгоритма, когда система пытается выполнить соединение с этой таблицей по полю Период, возникает исключение, так как поле было «потеряно» на предыдущем этапе. Ситуация усугубляется в базах, где сотрудники работают одновременно по разным типам договоров.

Решение №1: Установка официального исправления (патча)

Самый простой и правильный способ для большинства пользователей — это установка официального патча от фирмы 1С. Рассмотрим, как это сделать правильно. Фирмой 1С был выпущен патч под номером EF_60001087.

Пошаговая инструкция по установке патча:

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Выберем пункт Обновление программы, а затем — Установленные исправления (патчи).
  3. Нажмем кнопку Установить исправление. Если база подключена к интернету и есть действующий договор ИТС, программа сама найдет и загрузит нужный патч. Если интернета нет, патч нужно предварительно скачать с портала техподдержки 1С в виде файла расширения .cfe.
  4. Проанализируем список установленных патчей. Найдем EF_60001087 и убедимся, что у него снята галочка «Безопасный режим». Если эта галочка установлена, расширение может не сработать, так как оно вносит изменения в защищенные модули системы.
  5. После установки патча необходимо перезагрузить сеанс 1С.

Важное замечание: Как показывает практика, иногда установка одного патча не решает проблему, если релиз программы сильно устарел или, наоборот, слишком новый. В некоторых случаях пользователям помогала установка всего пакета актуальных патчей (до 13-15 штук одновременно), так как исправления могут быть взаимосвязаны.

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

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

Выясним локализацию ошибки. Она находится в блоке, где формируется временная таблица ВТДоходыСоСтрокамиРаздела2. Посмотрим на пример кода, который необходимо исправить. В исходном (ошибочном) варианте поле Период отсутствует в итоговой выборке ВТПодробныеДоходы.

Рассмотрим фрагмент запроса, который нужно скорректировать в расширении:


// В расширении находим место формирования ВТДоходыСоСтрокамиРаздела2
// Добавляем поле Период в выборку из ВТПодробныеДоходы

Запрос.Текст = "ВЫБРАТЬ
| ПодробныеДоходы.Период КАК Период, // <-- ВОТ ЭТО ПОЛЕ НУЖНО ДОБАВИТЬ
| ПодробныеДоходы.СтавкаНалога КАК СтавкаНалога,
| ПодробныеДоходы.Ставка КАК Ставка,
| ПодробныеДоходы.ЭтоВКС КАК ЭтоВКС,
| ПодробныеДоходы.Регистратор КАК Регистратор,
| ПодробныеДоходы.ФизическоеЛицо КАК ФизическоеЛицо,
| ПодробныеДоходы.Начисление КАК Начисление,
| ПодробныеДоходы.КатегорияДохода КАК КатегорияДохода,
| ПодробныеДоходы.КБК КАК КБК,
| ПодробныеДоходы.КодДохода КАК КодДохода,
| ПодробныеДоходы.СуммаДохода КАК СуммаДохода,
| ПодробныеДоходы.СтрокаРаздела2 КАК СтрокаРаздела2
|ПОМЕСТИТЬ ВТДоходыСоСтрокамиРаздела2
|ИЗ
| ВТПодробныеДоходы КАК ПодробныеДоходы";

Проанализируем, что мы сделали: мы принудительно пробросили поле Период из таблицы ВТПодробныеДоходы в результирующую таблицу ВТДоходыСоСтрокамиРаздела2. Теперь при дальнейшем обращении к этой таблице ошибка «поле не найдено» возникать не будет.

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

Иногда даже после установки патча или исправления кода отчет продолжает выдавать ошибку. В такой ситуации рассмотрим выполнение следующих действий:

  1. Очистка кеша: Проанализируем состояние локального кеша 1С. Часто старые определения метаданных «застревают» в кеше пользователя. Рекомендуется удалить базу из списка и добавить её заново или запустить 1С с параметром /ClearCache.
  2. Пересоздание отчета: Не используйте кнопку «Обновить» в уже созданном черновике 6-НДФЛ. Попробуйте полностью удалить ошибочный экземпляр отчета, создать новый «с нуля» и нажать кнопку «Заполнить».
  3. Проверка релизов: Если вы используете версию 3.1.21.36, убедитесь, что патч соответствует именно этому релизу. Разработчики иногда выпускают разные сборки патчей для веток 3.1.18 и 3.1.21.

Подводя итог, можно сказать, что данная проблема является классическим примером «человеческого фактора» при разработке сложных обновлений. Однако, благодаря механизму патчей и возможности использования расширений, мы можем оперативно восстановить работоспособность программы и успешно сдать отчетность 6-НДФЛ в установленные сроки.

← На главную