Ситуация, когда после планового обновления платформы 1С (например, до версии 8.3.12) или релиза конфигурации (в частности, ветки 3.0.64) перестают закрываться счета 20 «Основное производство» и 23 «Вспомогательное производство», является классической для кастомизированных баз. Рассмотрим подробно, почему это происходит и как пошагово восстановить работоспособность закрытия месяца.
Прежде всего, важно понять, что в релизах серии 3.0.64 разработчики 1С существенно изменили внутренний «движок» закрытия месяца. Теперь расчет себестоимости — это не просто последовательный перебор документов, а сложный процесс, использующий пакетные запросы и временные таблицы. Если в вашей конфигурации был изменен модуль документа РегламентнаяОперация или связанные с ним общие модули (например, УчетЗатрат), стандартное обновление могло войти в конфликт с вашим кодом.
Переход на платформу 8.3.12 также накладывает свои особенности: в этой версии изменились механизмы работы оптимизатора запросов. Если кастомный программный код опирался на неявный порядок записей в таблицах или использовал специфические конструкции запросов, на новой платформе такие запросы могут возвращать пустой результат, что приводит к отсутствию проводок при закрытии счетов без вывода явных ошибок.
Часто при обновлении или случайном изменении настроек слетают ключевые параметры распределения затрат. Разберем, на что обратить внимание в первую очередь:
ИнвентаризацияНЗП (Инвентаризация незавершенного производства). Если в нем указаны суммы по конкретным подразделениям, система оставит эти остатки на счетах и не закроет их.Счет 23 является «фундаментом» для 20-го. Если вспомогательное производство не распределилось, основное производство также может не закрыться корректно. Проанализируем ситуацию:
Вспомогательные производства должны иметь базу для распределения. Выясним, заданы ли Методы распределения косвенных расходов. Рассмотрим пример: если на 23 счете висят затраты автогаража, система должна понимать, куда их отнести (на 20, 25 или 26 счет).
Попробуем выполнить следующую проверку в тестовой базе:
ОтчетПроизводстваЗаСмену по 23 счету.Современная «Бухгалтерия предприятия 3.0» крайне чувствительна к чистоте аналитики. Проанализируем оборотно-сальдовую ведомость (ОСВ) по счетам 20 и 23 с максимальной детализацией (Подразделение, Номенклатурная группа, Статьи затрат):
Поскольку автор темы указал на наличие доработок, выясним, как локализовать ошибку в коде. В релизе 3.0.64.54 процедура закрытия счетов часто выносится в фоновые задания. Рассмотрим порядок действий для программиста:
РегламентнаяОперация.ВТ_Затраты или ВТ_БазаРаспределения могла измениться. Если ваш код обращается к полям, которые были переименованы или удалены, расчет себестоимости «тихо» прерывается.Пример обращения к механизму распределения в коде (типовая логика, которую могли затронуть изменения):
// В новых версиях БП 3.0 расчет ведется через менеджеры расчета
МенеджерРасчета = УчетЗатрат.СформироватьМенеджерРасчета(Период, Организация);
МенеджерРасчета.ВыполнитьРасчет();
// Если ваш код внедрен внутрь этих процедур, проверьте
// актуальность обращения к объектам метаданных.
В современных версиях БП 3.0 данные для закрытия берутся не только из бухгалтерских проводок, но и из специализированных регистров сведений и накопления. Проверьте заполнение следующих регистров:
МетодыРаспределенияОбщепроизводственныхИОбщехозяйственныхРасходовПорядокПодразделенийДляЗакрытияСчетовЗатратЕсли в последнем регистре нарушена иерархия (например, цех 1 оказывает услуги цеху 2, а в порядке закрытия они стоят наоборот), система может не закрыть счета из-за циклической зависимости.
Для исправления ситуации выполните следующие действия: проанализируйте учетную политику на предмет настройки списания затрат, проверьте наличие выпуска продукции или услуг по тем же номенклатурным группам, где собраны затраты, и протестируйте закрытие на копии с типовой конфигурацией. Если проблема в коде, обратите внимание на изменения в общих модулях УчетЗатрат и РасчетСебестоимости, так как именно они претерпели наибольшие изменения в релизе 3.0.64.