При аренде транспортного средства у сотрудника организации возникают гражданско-правовые отношения, которые не относятся к оплате труда. Согласно методологии бухгалтерского учета, расчеты по таким операциям должны отражаться не на 70 счете, а на счете 73.03 «Расчеты с персоналом по прочим операциям» (или на счете 76, если арендодатель не является сотрудником). Соответственно, и удержанный НДФЛ с этих сумм должен уменьшать задолженность по счету 73.03, формируя проводку Дт 73.03 Кт 68.01.
В программе «1С:Зарплата и управление персоналом 8» (ред. 3.1) пользователи часто сталкиваются с тем, что программа по умолчанию относит НДФЛ с аренды на общий вид операции (счет 70). В данной статье мы подробно разберем, как решить эту задачу. Мы рассмотрим как исторические варианты (через расширения и обработки для старых релизов), так и современный типовой механизм, который появился в последних версиях ЗУП 3.1 и позволяет полностью автоматизировать процесс без программирования.
Если вы работаете на современных версиях «1С:ЗУП 3.1» (начиная с релизов 3.1.30.152 / 3.1.32.39), логика работы документа «Отражение зарплаты в бухучете» была кардинально изменена разработчиками фирмы «1С»:
Соответствие статей расходов и счетов учета при синхронизации выглядит следующим образом:
Для того чтобы НДФЛ автоматически отразился по дебету счета 73.03, нам необходимо добиться, чтобы в документе «Отражение зарплаты в бухучете» для строки с НДФЛ по аренде проставилась статья расходов «ПР». Выполним настройку по шагам:
Теперь при расчете и проведении документа «Разовое начисление», а затем при заполнении итогового документа «Отражение зарплаты в бухучете», программа автоматически сделает следующее:
При последующей синхронизации с «1С:Бухгалтерией 8» программа сформирует корректные проводки: начисление аренды отразится по кредиту счета 73.03, а удержание НДФЛ — по дебету счета 73.03 в корреспонденции со счетом 68.01.
Рассмотрим стандартную альтернативу, которую часто рекомендуют методисты. Вместо документов подсистемы расчета зарплаты (таких как «Разовое начисление») можно использовать специализированный документ «Начисление прочих доходов» (находится в разделе Выплаты — Прочие доходы).
Этот способ имеет свои особенности:
Если вы по каким-то причинам работаете на более ранних релизах ЗУП 3.1 (где еще присутствуют старые виды операций НДФЛ, такие как «НДФЛ с доходов по прочим операциям с персоналом»), или если вам требуется автоматизировать подмену статей расходов без ручного вмешательства, лучшим решением будет использование механизма расширений.
Проанализируем ситуацию: документ «Отражение зарплаты в бухучете» заполняется при помощи серверных процедур менеджера документа. Нам необходимо вклиниться в процесс заполнения табличной части «НДФЛ» и подменить вид операции или статью расходов для строк, которые относятся к аренде автомобиля.
Для этого создадим расширение конфигурации и добавим в него процедуру-обработчик. Выясним, где происходит заполнение. Заполнение ТЧ документа выполняется в общем модуле или менеджере документа (в зависимости от версии это может быть метод ЗаполнитьДокумент или специализированный менеджер временных таблиц проведения).
Ниже приведен пример программного кода для расширения, который находит строки НДФЛ, относящиеся к начислению аренды, и переопределяет их параметры для корректной выгрузки в бухгалтерию:
&После("ЗаполнитьТабличныеЧастиДокумента") // Имя процедуры может отличаться в зависимости от релиза
Процедура Расш_ЗаполнитьТабличныеЧастиДокумента(ДокументОбъект)
// Определяем начисление аренды автомобиля
НачислениеАренда = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Аренда автомобиля");
Если НЕ ЗначениеЗаполнено(НачислениеАренда) Тогда
Возврат;
КонецЕсли;
// Перебираем строки начисленного НДФЛ в документе отражения
Для Каждого СтрокаНДФЛ Из ДокументОбъект.НДФЛ Цикл
// Способ для старых релизов: проверяем связь через физическое лицо и суммы
// Способ для новых релизов: проверяем непосредственно по начислению или категории дохода
Если СтрокаНДФЛ.Начисление = НачислениеАренда Тогда
// Для старых релизов меняем вид операции для НДФЛ:
СтрокаНДФЛ.ВидОперации = Перечисления.ВидыОперацийПоЗарплате.НДФЛСДоходовПоПрочимОперациямСПерсоналом;
// Для новых релизов принудительно устанавливаем статью расходов ПР (Прочие расчеты с персоналом):
СтрокаНДФЛ.СтатьяРасходов = Справочники.СтатьиРасходовЗарплата.НайтиПоКоду("ПР");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
При использовании расширения важно убедиться, что у него отключен «Безопасный режим» в свойствах (в режиме «1С:Предприятие» в справочнике «Расширения»), иначе вызовы серверных процедур заполнения и работы со справочниками могут блокироваться операционной системой.
Если вы не хотите использовать расширения конфигурации (например, политика безопасности компании запрещает их установку), можно воспользоваться стандартным и безопасным механизмом — Дополнительные отчеты и обработки.
Мы можем написать внешнюю обработку заполнения табличной части для документа «Отражение зарплаты в бухучете». Нажатием одной кнопки в документе бухгалтер сможет автоматически скорректировать все строки НДФЛ по аренде.
Рассмотрим пример кода программного модуля внешней обработки, реализующей эту логику:
// Функция сведения об обработке для регистрации в системе
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработкеКомплекс();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
ПараметрыРегистрации.Назначение.Добавить("Документ.ОтражениеЗарплатыВБухучете");
ПараметрыРегистрации.Наименование = "Корректировка НДФЛ по аренде (счет 73.03)";
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Заполнить НДФЛ по аренде (73.03)";
НоваяКоманда.Идентификатор = "ВыполнитьКорректировкуНДФЛ";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипЗапускаВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции
// Основная процедура выполнения команды заполнения
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт
Для Каждого СсылкаНаДокумент Из ОбъектыНазначения Цикл
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
Модифицирован = Ложь;
НачислениеАренда = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Аренда автомобиля");
Если НЕ ЗначениеЗаполнено(НачислениеАренда) Тогда
Продолжить;
КонецЕсли;
Для Каждого СтрокаНДФЛ Из ДокументОбъект.НДФЛ Цикл
Если СтрокаНДФЛ.Начисление = НачислениеАренда Тогда
// Устанавливаем статью расходов "ПР" для правильного отнесения на 73.03 в Бухгалтерии
СтатьяПР = Справочники.СтатьиРасходовЗарплата.НайтиПоКоду("ПР");
Если СтрокаНДФЛ.СтатьяРасходов <> СтатьяПР Тогда
СтрокаНДФЛ.СтатьяРасходов = СтатьяПР;
Модифицирован = Истина;
КонецЕсли;
EndIf;
КонецЦикла;
Если Модифицирован Тогда
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Такой подход удобен тем, что база остается полностью типовой, а обновление конфигурации ЗУП не вызовет никаких конфликтов с доработками.
Выяснив все технические нюансы, подведем итог и выберем оптимальный путь решения: