Как исправить ошибку «Заполните поле "Средний заработок для исчисления пособия"» в 1С:ЗУП при расчете больничного из МРОТ?

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

При работе в программе 1С:Зарплата и управление персоналом (редакция 3.1) пользователи часто сталкиваются с ситуацией, когда при отправке реестра электронных листков нетрудоспособности (ЭЛН) в ФСС (ныне СФР) возникает ошибка форматно-логического контроля: «Заполните поле "Средний заработок для исчисления пособия"». Особенно часто это происходит в случаях, когда сотрудник только устроился на работу и его средний заработок за предыдущие два года равен нулю, в связи с чем пособие рассчитывается исходя из МРОТ.

Рассмотрим детально, почему возникает эта проблема, проанализируем механизмы программы и разберем несколько способов её решения — от простых пользовательских манипуляций до внесения правок в программный код.

Почему возникает ошибка и почему поле недоступно для редактирования?

Выясним причину такого поведения системы. Когда мы рассчитываем больничный лист для сотрудника, не имеющего заработка в расчетном периоде (например, в первый месяц работы при отсутствии справок с предыдущих мест), программа 1С:ЗУП автоматически применяет расчет по МРОТ. В самом документе Больничный лист сумма начисления отображается корректно, однако при формировании XML-файла для обмена с фондом возникают сложности.

Согласно требованиям XSD-схемы ФСС, тег, отвечающий за средний заработок (BASE_AVG_SAL), является обязательным. В старых релизах (таких как 3.1.7) механизм выгрузки был реализован таким образом, что если значение среднего заработка равно 0, программа могла просто не включать этот тег в файл. Приемный шлюз фонда, не найдя обязательного поля, возвращает ошибку.

Ситуация осложняется тем, что в интерфейсе программы поле Средний заработок в документе часто закрыто для прямого редактирования. Даже при попытке открыть форму изменения данных (нажатием на кнопку «карандаш»), ячейки могут оставаться заблокированными, если в таблице нет данных за прошлые периоды.

Способ 1. Обновление конфигурации и использование патчей

Прежде всего, проанализируем текущую версию вашей базы. Данная ошибка была официально признана разработчиками 1С (ошибка №000043047) и исправлена в последующих релизах. Если ваша конфигурация позволяет выполнить обновление, это будет самым правильным и безопасным решением.

Если обновление невозможно, рекомендуем проверить наличие официальных исправлений (патчей) в разделе Администрирование — Обслуживание — Обновление программы — Установленные исправления. Для релизов ветки 3.1.7 и 3.1.8 выпускались специальные расширения, устраняющие проблему выгрузки нулевого заработка.

Способ 2. Ручное заполнение данных в реестре

Если ошибка блокирует работу прямо сейчас, а обновить программу нет возможности, рассмотрим обходной путь через редактирование Реестра прямых выплат (или Реестра ЭЛН).

Разберем по шагам:

  1. Перейдем в документ Реестр прямых выплат ФСС.
  2. Найдем строку с проблемным сотрудником и откроем данные о расчете пособия (двойным кликом по строке или через кнопку «Изменить»).
  3. На вкладке Расчет пособия найдем поле Сумма заработка за расчетный период.
  4. Несмотря на то, что в больничном листе там стоит ноль, попробуем внести значение вручную прямо в реестре. Иногда реестр «подхватывает» пустое значение вместо числового нуля.
  5. Если поле заблокировано, попробуем установить в документе Больничный лист флаг Расчитывать пособие из МРОТ (если он не установился автоматически) и перевыбрать сотрудника в реестре.

Способ 3. «Хитрость» с одной копейкой

Проанализируем ситуацию: программе нужно, чтобы средний заработок не был пустым. Чтобы «оживить» заблокированные поля в форме ввода среднего заработка, можно применить следующий алгоритм:

  1. В документе Больничный лист нажмем кнопку редактирования среднего заработка.
  2. Если таблица пуста, попробуем изменить расчетный период на произвольный, где есть данные, а затем вернуть его обратно.
  3. Если это не помогло, введем в любой месяц расчетного периода 1 копейку.
  4. Это заставит программу считать, что заработок есть, тег в XML-файле будет сформирован, а итоговая сумма пособия, рассчитанная из МРОТ, не изменится, так как фактический средний заработок все равно останется ниже минимального.

Способ 4. Программное исправление (для программистов)

Если вы имеете навыки программирования или доступ к конфигуратору, можно внести исправление непосредственно в логику формирования XML-файла. Это позволит избежать ошибок при массовой отправке больничных.

Нам необходимо найти общий модуль или модуль менеджера, отвечающий за обмен с ФСС. В старых версиях ЗУП это часто объект XDTO-пакеты или специализированный модуль ОбменЛисткамиНетрудоспособностиФСС.

Рассмотрим пример кода, который решает проблему. Нам нужно найти функцию ВыгрузитьЗапросДляОтправкиРеестраЭЛН и подкорректировать обработку значения BASE_AVG_SAL.

Найдем строку:


УстановитьЗначениеЕслиЗаполнено(ROW.BASE_AVG_SAL, ДанныеЛН.БазаДляРасчетаСреднегоЗаработка);

И заменим её на условие, которое принудительно устанавливает 0, даже если значение не заполнено:


Если ДанныеЛН.БазаДляРасчетаСреднегоЗаработка = 0 Тогда
    ROW.BASE_AVG_SAL = 0;
Иначе        
    УстановитьЗначениеЕслиЗаполнено(ROW.BASE_AVG_SAL, ДанныеЛН.БазаДляРасчетаСреднегоЗаработка);
КонецЕсли;

Посмотрим, что мы сделали: метод УстановитьЗначениеЕслиЗаполнено пропускает запись в структуру XML, если значение равно Неопределено или пусто. Наша проверка гарантирует, что если база равна нулю, в XML-файл попадет именно числовой ноль, что удовлетворит требованиям форматно-логической проверки фонда.

Важные нюансы при работе с новыми сотрудниками

Проанализируем дополнительные настройки, которые могут влиять на этот процесс:

В современных версиях 1С (3.1.23 и выше) работа с больничными переведена на систему СЭДО (Социальный Электронный Документооборот). Там механизм обмена значительно отличается: данные о заработке приходят напрямую из фонда. Если вы работаете в устаревшем релизе 3.1.7, крайне рекомендуется рассмотреть вопрос перехода на актуальную версию, так как требования законодательства и форматы обмена с СФР меняются очень часто.

Используя предложенные методы, вы сможете успешно отправить данные в фонд и обеспечить своевременную выплату пособия сотруднику.

← На главную