Почему перестали закрываться счета 20 и 23 в 1С:Бухгалтерия 3.0 после обновления платформы и конфигурации?

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

Ситуация, когда после планового обновления платформы 1С (например, до версии 8.3.12) или релиза конфигурации (в частности, ветки 3.0.64) перестают закрываться счета 20 «Основное производство» и 23 «Вспомогательное производство», является классической для кастомизированных баз. Рассмотрим подробно, почему это происходит и как пошагово восстановить работоспособность закрытия месяца.

Проанализируем влияние обновления платформы 8.3.12 и релиза 3.0.64

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

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

Шаг 1. Проверяем настройки учетной политики

Часто при обновлении или случайном изменении настроек слетают ключевые параметры распределения затрат. Разберем, на что обратить внимание в первую очередь:

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

Шаг 2. Диагностика счета 23 (Вспомогательное производство)

Счет 23 является «фундаментом» для 20-го. Если вспомогательное производство не распределилось, основное производство также может не закрыться корректно. Проанализируем ситуацию:

Вспомогательные производства должны иметь базу для распределения. Выясним, заданы ли Методы распределения косвенных расходов. Рассмотрим пример: если на 23 счете висят затраты автогаража, система должна понимать, куда их отнести (на 20, 25 или 26 счет).

Попробуем выполнить следующую проверку в тестовой базе:

  1. Создадим документ ОтчетПроизводстваЗаСмену по 23 счету.
  2. Отразим оказание услуги на символическую сумму (например, 1 рубль) в адрес счета 26 или 20.
  3. Перезапустим процедуру закрытия месяца. Если после этого счет 23 закрылся, значит, проблема в отсутствии базы распределения или в том, что автоматический алгоритм распределения, заложенный вашими программистами ранее, перестал видеть аналитику.

Шаг 3. Анализ аналитики и номенклатурных групп

Современная «Бухгалтерия предприятия 3.0» крайне чувствительна к чистоте аналитики. Проанализируем оборотно-сальдовую ведомость (ОСВ) по счетам 20 и 23 с максимальной детализацией (Подразделение, Номенклатурная группа, Статьи затрат):

Шаг 4. Работа с измененным программным кодом

Поскольку автор темы указал на наличие доработок, выясним, как локализовать ошибку в коде. В релизе 3.0.64.54 процедура закрытия счетов часто выносится в фоновые задания. Рассмотрим порядок действий для программиста:

  1. Сравнение с типовой конфигурацией: На копии базы необходимо временно вернуть типовую конфигурацию (поставить на полную поддержку). Если на типовой конфигурации месяц закрывается корректно — проблема 100% в кастомном коде модуля РегламентнаяОперация.
  2. Отладка фоновых заданий: Запустите 1С в режиме отладки с разрешением отладки фоновых заданий. Точка останова должна стоять в процедурах распределения затрат.
  3. Проверка структуры временных таблиц: В новых релизах структура временных таблиц ВТ_Затраты или ВТ_БазаРаспределения могла измениться. Если ваш код обращается к полям, которые были переименованы или удалены, расчет себестоимости «тихо» прерывается.

Пример обращения к механизму распределения в коде (типовая логика, которую могли затронуть изменения):


// В новых версиях БП 3.0 расчет ведется через менеджеры расчета
МенеджерРасчета = УчетЗатрат.СформироватьМенеджерРасчета(Период, Организация);
МенеджерРасчета.ВыполнитьРасчет();
// Если ваш код внедрен внутрь этих процедур, проверьте
// актуальность обращения к объектам метаданных.

Шаг 5. Проверка специфических регистров

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

Если в последнем регистре нарушена иерархия (например, цех 1 оказывает услуги цеху 2, а в порядке закрытия они стоят наоборот), система может не закрыть счета из-за циклической зависимости.

Резюме и рекомендации

Для исправления ситуации выполните следующие действия: проанализируйте учетную политику на предмет настройки списания затрат, проверьте наличие выпуска продукции или услуг по тем же номенклатурным группам, где собраны затраты, и протестируйте закрытие на копии с типовой конфигурацией. Если проблема в коде, обратите внимание на изменения в общих модулях УчетЗатрат и РасчетСебестоимости, так как именно они претерпели наибольшие изменения в релизе 3.0.64.

← На главную