Почему не распределяются прочие расходы в 1С:ERP и как убрать зависшие остатки в конце месяца

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

При закрытии месяца в 1С:ERP и 1С:Комплексная автоматизация одной из самых труднодиагностируемых проблем является наличие остатков по регистру накопления ПрочиеРасходы. Ситуация часто выглядит следующим образом: в помощнике закрытия месяца операция «Распределение расходов по направлениям деятельности» требует выполнения, но при создании или проведении соответствующего документа РаспределениеПрочихЗатрат движения не формируются, а статус строки остается «Готов к распределению». Рассмотрим подробно, как проанализировать эту ситуацию и решить проблему зависших копеек.

Анализ настроек статьи расходов

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

  1. Тип расходов: Прочие операционные и внереализационные расходы.
  2. Тип аналитики: Прочие расходы.
  3. Вариант распределения: Списать на финансовый результат (или Распределить по правилу).
  4. Счета учета: Счет 44.01 (издержки обращения) со списанием на счет 90.07.1.

Выясним важный нюанс: если статья была настроена как транспортно-заготовительные расходы (ТЗР), то алгоритм ее распределения в 1С:ERP подчиняется особым правилам (ст. 320 НК РФ). В этом случае сумма не списывается полностью в текущем месяце, а распределяется пропорционально остатку товаров на складе. Если в какой-то момент база распределения становится ничтожно малой, могут возникнуть проблемы с математическим округлением в запросах системы.

Техническая причина: ошибка округления в запросах распределения

Проанализируем ситуацию с точки зрения программного кода. При проведении документа РаспределениеПрочихЗатрат система формирует временную таблицу РасходыКРаспределению. В этой таблице рассчитывается сумма к списанию в разрезе управленческого (УПР) и регламентированного (РЕГЛ) учета.

Рассмотрим пример расчета, который приводит к ошибке. Допустим, на остатке в регистре числится сумма 12.15 руб. Доля списания, рассчитанная системой на основании базы (например, выручки или себестоимости продаж), составляет 0.00036979. При выполнении запроса система использует функцию ВЫРАЗИТЬ для приведения результата к двум знакам после запятой:


| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ВЫРАЗИТЬ(ОстаткиРасходов.СуммаРегл * ДолиСписания.ДоляСписания КАК ЧИСЛО(15, 2))

В результате математического умножения мы получаем: 12.15 * 0.00036979 = 0.0044929485. Так как третья цифра после запятой (4) меньше 5, функция ВЫРАЗИТЬ округляет результат до 0.00. В итоге документ распределения видит, что к распределению полагается нулевая сумма, и не создает никаких движений по регистрам, хотя остаток в ПрочиеРасходы продолжает висеть.

Варианты решения проблемы

Разберем по шагам, как можно устранить данное зависание в зависимости от ваших возможностей доступа к системе.

Способ 1. Принудительное изменение суммы через корректировку

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

Способ 2. Проверка соответствия видов учета

Иногда остатки зависают из-за разрыва между УПР, РЕГЛ и НУ (налоговым учетом). Проверим состояние регистров через консоль запросов или отчет «Движения прочих расходов и доходов». Если в одном виде учета (например, УПР) сумма уже списана, а в другом (РЕГЛ) — нет, это может блокировать автоматическое закрытие. В этом случае выполним следующие действия:

  1. Удалим все документы РаспределениеПрочихЗатрат за проблемный месяц.
  2. Проверим документы поступления (Приобретение услуг и прочих активов). Убедимся, что во всех строках корректно заполнены признаки отражения в УПР, БУ и НУ.
  3. Запустим процедуру закрытия месяца повторно.

Способ 3. Очистка или добавление заданий к распределению

Система 1С:ERP работает на механизме заданий. Если в регистре сведений Задания к распределению расходов отсутствует запись по данной статье, документ может игнорировать остаток. Попробуем выполнить следующие действия:

  1. Найдем регистр сведений Задания к распределению расходов.
  2. Если записи нет — добавим ее вручную, указав организацию, период и статью расходов.
  3. Если запись есть, но имеет статус «Ошибка» или зависла в старом периоде — очистим ее и переформируем через помощник закрытия.

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

Если проблема носит массовый характер и связана именно с округлением ТЗР, проанализируем общий модуль, отвечающий за расчет долей распределения. В запросе формирования ВТ РасходыКРаспределению можно заменить жесткое округление на проверку минимального порога. Если расчетная сумма больше нуля, но меньше 0.01, можно принудительно устанавливать 0.01, чтобы «вытолкнуть» остаток из регистра.

Аналитика и «битые» ссылки

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

Для диагностики этого случая воспользуемся отчетом «Остатки прочих расходов» с максимальной детализацией по всем измерениям. Если мы увидим пустые поля в измерениях или несоответствие подразделений, нам поможет документ Корректировка регистров, которым мы перенесем остаток на корректные измерения текущего периода.

Резюме: Чтобы успешно закрыть месяц при наличии зависших остатков в регистре прочих расходов, необходимо последовательно проверить математическую возможность распределения (проблема копеек), идентичность измерений в регистре и корректность отражения по всем видам учета (УПР/РЕГЛ/НУ).

← На главную