После обновления конфигурации 1С:ERP Управление предприятием (особенно при переходе с прошлых веток, например, с 2.4.8 на релизы 2.4.10.х и выше) многие пользователи и программисты сталкиваются с неприятным сюрпризом. При попытке выполнить регламентную операцию закрытия месяца система отказывается корректно распределять расходы. Более того, при открытии привычного документа Распределение доходов и расходов по направлениям деятельности пользователи обнаруживают, что кнопка «Заполнить по остаткам» больше не заполняет табличную часть расходов, а в старых документах отображаются некорректные («бредовые») данные.
В этой статье мы подробно разберем, с чем связаны такие изменения, почему попытка вернуть старый программный код в обход типовых механизмов является критической ошибкой, и как правильно настроить систему для успешного закрытия месяца в новых реалиях архитектуры 1С:ERP.
Для того чтобы понять суть проблемы, нам необходимо проанализировать изменения, которые разработчики фирмы «1С» внесли в систему начиная с версии 2.4.9. Ранее в системе существовал единый документ, который объединял в себе функции распределения как доходов, так и расходов. Это было привычно, но создавало серьезные ограничения при повышении детализации учета и оптимизации производительности закрытия месяца.
В новых релизах архитектура распределения была кардинально переработана:
Распределение доходов по направлениям деятельности. Из его названия и структуры полностью исчезло упоминание расходов. Табличная часть для распределения расходов была удалена на уровне метаданных.Распределение расходов (ранее выполнявшее распределение только на себестоимость продукции). Теперь все постатейные расходы, списываемые на финансовый результат, распределяются именно там.Попытка программиста вернуть старый запрос в модуле объекта документа в процедуре ЗаполнитьРасходыПоОстаткам() является классическим «костылем». Это временно маскирует проблему, заставляя старый код работать с измененными структурами метаданных, но полностью ломает логику закрытия месяца в последующих периодах и делает невозможным дальнейшие обновления на версию 2.4.11 и выше.
Рассмотрим подробнее, как должна выглядеть правильная последовательность действий для настройки распределения расходов по направлениям деятельности в новых версиях 1С:ERP.
Шаг 1. Настройка статьи расходов. Перейдем в справочник Статьи расходов. Теперь правила распределения расходов, которые относятся на финансовый результат, настраиваются непосредственно внутри карточки статьи расходов. В карточке появилась специализированная вкладка Расходы между направлениями деятельности. Здесь необходимо указать конкретное правило и показатели для распределения.
Шаг 2. Использование рабочего места «Распределение расходов». Перейдем в раздел финансового результата и откроем рабочее место Распределение расходов. Система автоматически анализирует остатки по регистру накопления ПрочиеРасходы и выводит список статей, требующих распределения. Если правила в статьях настроены корректно, ручное создание документов распределения вообще не потребуется.
Шаг 3. Автоматическое создание документов при закрытии месяца. В процессе регламентной операции закрытия месяца система автоматически генерирует скрытые документы распределения расходов на основе заданных в статьях правил. Это существенно снижает влияние человеческого фактора.
Для понимания того, как система анализирует остатки расходов, программисты могут использовать следующий программный запрос к новому регистру для выявления зависших сумм:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПрочиеРасходыОстатки.Организация КАК Организация,
| ПрочиеРасходыОстатки.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ПрочиеРасходыОстатки.СтатьяРасходов КАК СтатьяРасходов,
| ПрочиеРасходыОстатки.СуммаОстаток КАК СуммаОстаток,
| ПрочиеРасходыОстатки.СуммаРегОстаток КАК СуммаРегОстаток
|ИЗ
| РегистрНакопления.ПрочиеРасходы.Остатки(&ПериодГраница, ) КАК ПрочиеРасходыОстатки
|ГДЕ
| ПрочиеРасходыОстатки.СуммаОстаток > 0";
Запрос.УстановитьПараметр("ПериодГраница", Новый Граница(КонецДня(ТекущаяДата()), ВидГраницы.Включая));
РезультатЗапроса = Запрос.Выполнить();
Этот запрос позволяет оперативно увидеть, по каким статьям расходов и организациям остались нераспределенные остатки, которые мешают закрытию месяца.
При обновлении на версию 2.4.10.89 пользователи также часто сталкиваются с сопутствующими ошибками расчета себестоимости и распределения расходов, которые обсуждались на форуме:
1. Ошибка 00-00258040 (Реклассификация расходов). Данная ошибка проявляется, когда первичные дополнительные расходы отражаются документом Отражение прочих доходов и расходов с операцией «Реклассификация расходов». При закрытии месяца программа некорректно обрабатывала переброску затрат между статьями, из-за чего суммы «зависали» на регистрах и не распределялись на себестоимость товаров. В релизе 2.4.10.89 эта ошибка была официально исправлена разработчиками, однако для корректного расчета требуется полное перепроведение цепочки документов начиная с месяца реклассификации.
2. Проблема с проводками РБП (Расходы будущих периодов) в версии 2.4.10.62. В более ранних промежуточных релизах ветки 2.4.10 наблюдалась критическая проблема: документы распределения РБП проводились в управленческом учете, но переставали создавать проводки в регламентированном учете (по дебету затратных счетов и кредиту счета 97). Проблема была связана с изменением алгоритмов сопоставления аналитик затрат. Для ее решения требуется обновить конфигурацию до актуального релиза (не ниже 2.4.10.89) и перезакрыть месяц.
Для того чтобы избежать «поседения» при регулярных обновлениях и обеспечить стабильное закрытие отчетных периодов, рекомендуем придерживаться следующих правил:
Таким образом, для решения проблемы пустых таблиц расходов в документе распределения доходов вам не нужно править код. Достаточно перенастроить правила непосредственно в карточках статей расходов и воспользоваться обновленным рабочим местом по распределению расходов. Это вернет систему к штатной работе и позволит безболезненно обновлять конфигурацию в будущем.