При подготовке отчетности 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С был выпущен патч под номером EF_60001087.
Пошаговая инструкция по установке патча:
.cfe.EF_60001087 и убедимся, что у него снята галочка «Безопасный режим». Если эта галочка установлена, расширение может не сработать, так как оно вносит изменения в защищенные модули системы.Важное замечание: Как показывает практика, иногда установка одного патча не решает проблему, если релиз программы сильно устарел или, наоборот, слишком новый. В некоторых случаях пользователям помогала установка всего пакета актуальных патчей (до 13-15 штук одновременно), так как исправления могут быть взаимосвязаны.
Если у вас нет возможности установить официальный патч или вам требуется немедленное исправление в конфигурации, которую нельзя обновлять, рассмотрим вариант ручной корректировки кода. Для этого создадим расширение конфигурации и внесем изменения в запрос модуля, отвечающего за расчет НДФЛ.
Выясним локализацию ошибки. Она находится в блоке, где формируется временная таблица ВТДоходыСоСтрокамиРаздела2. Посмотрим на пример кода, который необходимо исправить. В исходном (ошибочном) варианте поле Период отсутствует в итоговой выборке ВТПодробныеДоходы.
Рассмотрим фрагмент запроса, который нужно скорректировать в расширении:
// В расширении находим место формирования ВТДоходыСоСтрокамиРаздела2
// Добавляем поле Период в выборку из ВТПодробныеДоходы
Запрос.Текст = "ВЫБРАТЬ
| ПодробныеДоходы.Период КАК Период, // <-- ВОТ ЭТО ПОЛЕ НУЖНО ДОБАВИТЬ
| ПодробныеДоходы.СтавкаНалога КАК СтавкаНалога,
| ПодробныеДоходы.Ставка КАК Ставка,
| ПодробныеДоходы.ЭтоВКС КАК ЭтоВКС,
| ПодробныеДоходы.Регистратор КАК Регистратор,
| ПодробныеДоходы.ФизическоеЛицо КАК ФизическоеЛицо,
| ПодробныеДоходы.Начисление КАК Начисление,
| ПодробныеДоходы.КатегорияДохода КАК КатегорияДохода,
| ПодробныеДоходы.КБК КАК КБК,
| ПодробныеДоходы.КодДохода КАК КодДохода,
| ПодробныеДоходы.СуммаДохода КАК СуммаДохода,
| ПодробныеДоходы.СтрокаРаздела2 КАК СтрокаРаздела2
|ПОМЕСТИТЬ ВТДоходыСоСтрокамиРаздела2
|ИЗ
| ВТПодробныеДоходы КАК ПодробныеДоходы";
Проанализируем, что мы сделали: мы принудительно пробросили поле Период из таблицы ВТПодробныеДоходы в результирующую таблицу ВТДоходыСоСтрокамиРаздела2. Теперь при дальнейшем обращении к этой таблице ошибка «поле не найдено» возникать не будет.
Иногда даже после установки патча или исправления кода отчет продолжает выдавать ошибку. В такой ситуации рассмотрим выполнение следующих действий:
/ClearCache.3.1.21.36, убедитесь, что патч соответствует именно этому релизу. Разработчики иногда выпускают разные сборки патчей для веток 3.1.18 и 3.1.21.Подводя итог, можно сказать, что данная проблема является классическим примером «человеческого фактора» при разработке сложных обновлений. Однако, благодаря механизму патчей и возможности использования расширений, мы можем оперативно восстановить работоспособность программы и успешно сдать отчетность 6-НДФЛ в установленные сроки.