При подготовке отчетности и выгрузке данных в бухгалтерскую программу пользователи 1С:ЗУП 3.1 часто сталкиваются с неприятной ошибкой. В документе «Отражение зарплаты в бухучете» при наличии начисленной компенсации за задержку выплаты заработной платы происходит дублирование строк. Одна строка заполняется с указанием способа отражения в учете (подразделения, счета затрат), а вторая — с пустым значением способа отражения, но со своими суммами налогов и взносов.
В этой статье мы подробно разберем природу данной ошибки, устраним программную опечатку в общем модуле конфигурации с помощью расширения или изменения кода, а также выясним, почему «пустой» способ отражения для компенсации после исправления ошибки — это не баг, а корректное поведение системы.
Причиной задвоения строк является досадная опечатка, допущенная разработчиками фирмы 1С в процедурах подготовки временных таблиц. Программа дважды пытается обработать одни и те же данные, поскольку ошибочно очищает не ту таблицу.
Для исправления этой проблемы нам потребуется обратиться к конфигуратору или создать расширение конфигурации. Нам нужен общий модуль ОтражениеЗарплатыВБухучетеРасширенный.
Давайте проанализируем процедуру СоздатьВТБухучетНачисленийБезДоговоровГПХ. Найдем в ней фрагмент кода, отвечающий за обработку временных таблиц единовременных пособий и компенсаций за задержку выплаты зарплаты:
// ВТБухучетЕдиновременныеПособия
СоздатьВТБухучетЕдиновременныеПособия(Запрос, ИмяВТНачисленияИсходная);
УдалитьВТ.Добавить("ВТБухучетЕдиновременныеПособия");
ДополнитьВТСтрокиКУдалению(Запрос, "ВТБухучетЕдиновременныеПособия");
// ВТБухучетКомпенсацийЗаЗадержкуЗарплаты
СоздатьВТБухучетКомпенсацийЗаЗадержкуЗарплаты(Запрос, ИмяВТНачисленияИсходная);
УдалитьВТ.Добавить("ВТБухучетКомпенсацийЗаЗадержкуЗарплаты");
ДополнитьВТСтрокиКУдалению(Запрос, "ВТБухучетЕдиновременныеПособия"); // Ошибка здесь!
Обратим внимание на последнюю строку приведенного фрагмента. Из-за копирования кода разработчики повторно вызывают функцию ДополнитьВТСтрокиКУдалению с параметром "ВТБухучетЕдиновременныеПособия" вместо таблицы компенсаций. В результате строки временной таблицы компенсаций за задержку зарплаты не помечаются к удалению из исходного набора данных и дублируются при итоговом формировании документа.
Давайте заменим ошибочную строку на корректный вариант. Исправленный код должен выглядеть следующим образом:
// ВТБухучетЕдиновременныеПособия
СоздатьВТБухучетЕдиновременныеПособия(Запрос, ИмяВТНачисленияИсходная);
УдалитьВТ.Добавить("ВТБухучетЕдиновременныеПособия");
ДополнитьВТСтрокиКУдалению(Запрос, "ВТБухучетЕдиновременныеПособия");
// ВТБухучетКомпенсацийЗаЗадержкуЗарплаты
СоздатьВТБухучетКомпенсацийЗаЗадержкуЗарплаты(Запрос, ИмяВТНачисленияИсходная);
УдалитьВТ.Добавить("ВТБухучетКомпенсацийЗаЗадержкуЗарплаты");
ДополнитьВТСтрокиКУдалению(Запрос, "ВТБухучетКомпенсацийЗаЗадержкуЗарплаты"); // Корректная строка
После внесения этого изменения и перезаполнения документа «Отражение зарплаты в бухучете» дублирование строк прекратится. Все суммы налогов, взносов и самого начисления будут собраны в одной строке.
После применения исправления многие бухгалтеры и программисты замечают, что в оставшейся строке компенсации поле «Способ отражения» остается незаполненным. Возникает закономерный вопрос: нужно ли программно заполнять это поле и настраивать для него способы отражения (например, привязывать к подразделению)?
Ответ: нет, способ отражения для этой строки должен оставаться пустым. Это заложено в архитектуру интеграции программ ЗУП и Бухгалтерия предприятия (БП) по следующим причинам:
91.02 «Прочие расходы».91.02 и соответствующая статья прочих доходов и расходов) подставляются в проводку автоматически. Нам не требуется вручную создавать и выбирать в ЗУП способ отражения, указывающий на счет 91.02.Попытки принудительно заполнить это поле через расширение или замену данных могут привести к некорректному формированию проводок в бухгалтерской программе.
Хотя дебет счета 91.02 предопределен самой сутью операции, организация может самостоятельно выбрать, на каком счете учитывать обязательства по выплате этой компенсации: на счете 70 (расчеты по оплате труда) или на счете 73.03 (расчеты по прочим операциям).
Эта настройка выполняется не в документе отражения, а непосредственно в документе начисления компенсации в 1С:ЗУП:
Дт 91.02 - Кт 70Дт 91.02 - Кт 73.03Таким образом, для успешного отражения компенсации в учете достаточно выполнить два простых действия: исправить опечатку в коде (чтобы убрать дубли) и убедиться, что в исходном документе начисления правильно выставлен способ расчетов с персоналом. Пустое поле способа отражения в документе отражения зарплаты при этом является абсолютно нормальным и правильным результатом.