В практике работы с конфигурацией 1С:Бухгалтерия предприятия 3.0 (БП) часто возникает ситуация, когда требования бухгалтерии или управленческого состава входят в противоречие с жесткой архитектурой программы. Одной из таких задач является попытка вести детальный учет депонированной зарплаты по конкретным сотрудникам на счете 76.04, сохраняя при этом «обезличенный» (сводный) учет на основном счете 70.
В рамках этой статьи мы детально разберем, почему типовой функционал ограничивает такие настройки, к каким последствиям приведет попытка «обмануть» систему и как правильно реализовать задачу, если она является критически важной для бизнеса.
Для начала проанализируем, как в 1С:БП 3.0 реализовано управление аналитикой по персоналу. В программе существует глобальная настройка, расположенная в разделе Зарплата и кадры — Настройки зарплаты — Порядок учета зарплаты. Здесь на закладке «Зарплата» выбирается способ ведения учета расчетов с персоналом:
Важно понимать: переключатель «Сводно» или «Детально» управляет планом счетов программно. Когда мы выбираем «Сводно», система автоматически отключает (удаляет из видимости и использования) субконто Работники организаций на всех счетах, связанных с оплатой труда. Это касается не только счета 70, но и 76.04 (Депоненты), 76.41 (Исполнительные листы) и других.
Выясним причину такой жесткой связи: Программа обеспечивает единство аналитического учета. Если мы депонируем зарплату (проводка Дт 70 - Кт 76.04), система должна корректно перенести данные. Если на счете 70 учет ведется без сотрудников, а на 76.04 — с ними, возникает методологический разрыв: программе «неоткуда» взять конкретного сотрудника для кредитового оборота по депонентам, если в дебете по счету 70 фигурирует общая сумма по всей организации.
Рассмотрим ситуацию, когда программист решает вручную добавить субконто на счет 76.04 через конфигуратор или в режиме «1С:Предприятие» при включенном сводном учете. Разберем по шагам, с какими проблемами вы столкнетесь:
1. Отражение в документах. Даже если субконто появится в плане счетов, типовые формы документов Депонирование зарплаты и Списание с расчетного счета (с видом операции «Выплата депонированной зарплаты») не «увидят» это поле. Логика форм в БП 3.0 построена на проверке констант. Программа скроет колонку с сотрудником, так как считает, что учет ведется сводно.
2. Механизм выплаты без ведомостей. Если вы хотите проводить платежные поручения без документа Ведомость, вы столкнетесь с архитектурным барьером. В 1С:БП 3.0 документ Ведомость на выплату зарплаты является ключевым регистратором. Именно он делает записи в регистры накопления (например, Взаиморасчеты с сотрудниками), по которым потом программа понимает, закрыта задолженность или нет. Списание с расчетного счета без ссылки на ведомость при наличии аналитики по сотрудникам приведет к тому, что по бухгалтерскому счету 76.04 сальдо закроется, а во внутренних регистрах 1С долг перед сотрудником будет «висеть» вечно.
3. Обновление системы. Любое вмешательство в предопределенные счета через конфигуратор усложнит поддержку базы. При очередном обновлении 1С может попытаться вернуть стандартные настройки аналитики, что приведет к потере накопленных данных по субконто.
Если нам нужно видеть сотрудников на депонентах, но категорически нельзя включать детальный учет на 70 счете, проанализируем возможность использования счета 76.09 («Прочие расчеты с разными дебиторами и кредиторами»).
Этот способ является «ручным», но он безопасен для типовой конфигурации:
Контрагенты отдельную группу «Сотрудники (депоненты)».Депонирование используем Операцию, введенную вручную: Дт 70 - Кт 76.09, где в качестве контрагента указываем сотрудника.Списание с расчетного счета с видом операции «Прочее списание», указывая счет 76.09 и нужного сотрудника (контрагента).Плюсы: Нет вмешательства в код, полная прозрачность для отчетов типа «Оборотно-сальдовая ведомость».
Минусы: Полное отсутствие автоматизации. Все суммы придется вводить и контролировать вручную.
Если заказчик настаивает на автоматизации и использовании счета 76.04, нам потребуется создать расширение конфигурации. Посмотрим на примерный алгоритм действий для реализации этой задачи.
Нам необходимо модифицировать поведение системы в трех точках:
Шаг 1. План счетов. В расширении необходимо добавить субконто Работники организаций на счет 76.04. Важно установить признак использования этого субконто независимо от общих настроек зарплаты.
Шаг 2. Формы документов. Нам нужно перехватить процедуру ПриСозданииНаСервере для документов ДепонированиеЗарплаты и СписаниеСРасчетногоСчета. Рассмотрим пример логики:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Принудительно отображаем колонку Сотрудник,
// даже если в настройках стоит сводный учет
Элементы.ДепонентыСотрудник.Видимость = Истина;
Элементы.ДепонентыСотрудник.Доступность = Истина;
КонецПроцедуры
Шаг 3. Логика проведения. Это самый сложный этап. Нам нужно проанализировать ситуацию с регистрами накопления. Чтобы программа позволяла проводить выплату депонента без ведомости, придется вмешаться в модуль проведения Списания с расчетного счета.
Проанализируем примерный код для изменения контроля заполнения:
&Перед("ОбработкаПроверкиЗаполнения")
Процедура Расш1_ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
// Исключаем Ведомость из обязательных полей,
// если вид операции - выплата депонента
Если Объект.ВидОперации = Перечисления.ВидыОперацийСписаниеСРасчетногоСчета.ВыплатаДепонированнойЗарплаты Тогда
ПорядковыйНомер = ПроверяемыеРеквизиты.Найти("Ведомость");
Если ПорядковыйНомер <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(ПорядковыйНомер);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важное предостережение: При реализации такого расширения вы берете на себя ответственность за корректность НДФЛ и страховых взносов. Если учет зарплаты ведется во внешней программе (ЗУП), то в БП данные по НДФЛ прилетают сводно. Однако при выплате депонента программа может попытаться сделать записи в регистры по НДФЛ. При отсутствии ведомости эти записи могут сформироваться некорректно.
Подведем итог наших изысканий. Желание пользователя иметь «детализацию здесь и тишину там» понятно с точки зрения человеческого восприятия, но деструктивно для архитектуры 1С.
Рекомендация:
Таким образом, мы проанализировали проблему отсутствия субконто Работники организаций на счете 76.04 при сводном учете. Мы выяснили, что это не ошибка, а системное ограничение, направленное на поддержание целостности данных. Выбирая между программированием «костылей» и изменением бизнес-процесса, всегда отдавайте предпочтение типовым механизмам платформы 1С:Предприятие 8.3.