Где в 1С:Бухгалтерии 3.0 хранятся данные для расчета среднего заработка?

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

При работе в конфигурации 1С:Бухгалтерия предприятия 3.0 (БП 3.0) пользователи и разработчики часто сталкиваются с вопросом: откуда программа берет цифры для заполнения среднего заработка в документах «Отпуск», «Больничный лист» или «Командировка»? — для быстрого создания и учета таких периодов есть расширение для создания документов Командировка. В отличие от специализированной программы «1С:Зарплата и управление персоналом» (ЗУП), где архитектура учета зарплаты выстроена вокруг выделенных регистров для среднего заработка, в БП 3.0 реализован более экономный, но скрытый механизм. Разберем детально, где физически лежат эти данные и как работает алгоритм их сбора.

Два режима получения данных: текущий учет и исторические данные

Проанализируем архитектуру системы. В БП 3.0 логика получения данных разделена на два сценария. Выбор сценария зависит от того, за какой период собираются данные: за тот, когда учет уже велся в текущей базе, или за предшествующий (архивный) период.

1. Текущие периоды (оперативные данные). Если организация ведет учет зарплаты непосредственно в этой базе БП 3.0 и ежемесячно создает документы «Начисление зарплаты», система не дублирует данные в специальные регистры среднего заработка — расширить базовые возможности учета поможет расширение для расчета выплат по отработанному времени. Программа обращается напрямую к основному «двигателю» зарплатного учета — регистру накопления НачисленияУдержанияПоСотрудникам. Именно в нем хранятся итоговые суммы начислений в разрезе сотрудников, организаций и периодов.

2. Прошлые периоды (перенос данных). Рассмотрим ситуацию, когда компания перешла на БП 3.0 в середине года. Для расчета отпускных нужны данные за предыдущие 12 месяцев — для этой задачи отлично подойдет модуль автоматизации работы с отпусками в 1С:Бухгалтерия. Поскольку документов начисления за те периоды в базе нет, данные вносятся либо вручную через помощник ввода остатков, либо переносятся из других программ. В этом случае они попадают в специализированный регистр накопления Данные о начислениях для расчета среднего заработка (общий). Если вы открываете расчет среднего и видите пустоту, в первую очередь проверьте заполнение этого регистра.

Где искать информацию об отработанном времени?

Выясним причину, по которой суммы могут подтягиваться, а количество дней — нет. Расчет среднего заработка невозможен без данных о фактически отработанном времени. В БП 3.0 нет полноценного документа «Табель», поэтому система собирает время из двух источников:

  1. Регистр накопления Данные о времени для расчета среднего заработка (общий). Сюда попадают сведения при переносе данных из других систем или при ручном вводе начальных данных.
  2. Документы «Начисление зарплаты». Программа анализирует табличную часть «Начисления» в самих документах. В этой таблице зафиксированы отработанные дни и часы по каждому виду расчета.

Если в расчете среднего заработка отображаются нулевые дни, необходимо проверить, заполнена ли колонка «Отработано дней/часов» в документах начисления за прошлые месяцы.

Программный механизм сбора данных

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

Алгоритм работы этой процедуры можно представить следующим образом:


// Псевдокод алгоритма сбора данных
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    Начисления.Сумма,
               |    Начисления.ВидРасчета,
               |    Начисления.ПериодРегистрации
               |ИЗ
               |    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК Начисления
               |ГДЕ
               |    Начисления.Сотрудник = &Сотрудник
               |    И Начисления.ВидРасчета.ВключатьВРасчетСреднего = ИСТИНА";

Программа динамически формирует запрос к регистрам, фильтруя записи по конкретному сотруднику и периоду. Важно понимать, что система не хранит «готовый» средний заработок — она вычисляет его в момент открытия формы расчета или при проведении документа.

Настройка видов начислений: почему данные не попадают в расчет?

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

Если вы создали новое начисление (например, «Надбавка за сложность»), обязательно убедитесь, что оно корректно классифицировано. Проверить это можно через меню «Все функции» (или «Функции для технического специалиста»), найдя справочник Виды начислений и проанализировав категорию дохода и настройки вхождения в базу.

Механизм «Ручной правки» и его особенности

Иногда бухгалтер нажимает на значок «карандаша» в форме расчета среднего заработка и вносит изменения вручную. Рассмотрим, где сохраняются эти правки. Внимание: ручные изменения НЕ записываются в общие регистры накопления. Они сохраняются в скрытой табличной части самого документа (например, документа Отпуск).

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

Случай «Внешнего учета»

Проанализируем еще один важный нюанс. Если в настройках параметров учета 1С:Бухгалтерии установлено, что расчет зарплаты ведется «Во внешней программе», то все вышеописанные регистры будут пустыми. В этом режиме БП 3.0 ожидает получения только итоговых проводок и сумм к выплате. Расчет среднего заработка в этом случае должен производиться на стороне внешней программы (например, ЗУП 3.1), а в бухгалтерию передаваться только результат для отражения в учете.

Резюме для поиска данных

Подведем итог. Если вам необходимо программно извлечь данные (в этом поможет обработка формирования справок о доходах сотрудников) или понять, почему расчет неверен, следуйте по этой цепочке:

  1. Проверьте регистр НачисленияУдержанияПоСотрудникам — это основной источник сумм.
  2. Загляните в регистр Данные о времени для расчета среднего заработка (общий) — это источник дней для архивных периодов.
  3. Убедитесь, что в справочнике Виды начислений у конкретной выплаты верно настроено отношение к среднему заработку.
  4. Посмотрите общие модули, начинающиеся на РасчетЗарплаты..., чтобы увидеть техническую реализацию запросов в вашей версии конфигурации.

Такой подход позволит вам всегда точно знать, откуда берутся цифры, и оперативно исправлять любые расхождения в расчетах.

← На главную