6 ошибок закрытия месяца в 1С:Бухгалтерия 3.0

Почему закрытие месяца в 1С:Бухгалтерия 3.0 вызывает столько проблем
Закрытие месяца — одна из самых ответственных операций в учёте. Именно здесь формируется финансовый результат, рассчитывается себестоимость продукции и услуг, закрываются затратные счета. Казалось бы, 1С:Бухгалтерия 3.0 автоматизирует этот процесс до предела — нажал кнопку и жди. Но на практике бухгалтеры регулярно сталкиваются с ситуацией, когда себестоимость рассчитана неверно, прибыль «уехала» в неожиданную сторону, а налоговая база искажена.
В этой статье мы разберём шесть наиболее распространённых ошибок, которые приводят к некорректному расчёту себестоимости при закрытии месяца. Для каждой ошибки — диагностика, причина и способ исправления, в том числе с примерами кода на встроенном языке 1С. Материал будет полезен как бухгалтерам, так и программистам, которые сопровождают 1С:Бухгалтерия на Кодерион.
Ошибка 1: Неправильно настроены счета учёта номенклатуры
Симптомы
После закрытия месяца обнаруживается, что часть товаров или материалов попала не на тот счёт учёта — например, сырьё оказалось на счёте 41 вместо 10, или готовая продукция числится на счёте 10.01. В результате при расчёте себестоимости продукции программа не «видит» нужные остатки, и себестоимость занижается или вовсе не рассчитывается.
Причина
В 1С:Бухгалтерия 3.0 счета учёта номенклатуры задаются в регистре сведений «Счета учёта номенклатуры». Если для конкретной позиции или группы номенклатуры счёт не задан, система берёт счёт по умолчанию из настроек. При массовом заведении номенклатуры через загрузку из Excel или обмен с другой системой этот регистр часто остаётся незаполненным.
Диагностика и исправление
Откройте отчёт «Оборотно-сальдовая ведомость» по счетам 10, 41, 43 и сравните аналитику. Если видите «чужие» позиции — проверьте регистр счетов учёта. Ниже приведён пример программной проверки корректности заполнения регистра:
// Проверка заполнения счетов учёта номенклатуры
// Выводим номенклатуру без явно заданного счёта учёта
Процедура ПроверитьСчетаУчётаНоменклатуры()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Номенклатура.НаименованиеПолное КАК Наименование,
| Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.Ссылка В
| (ВЫБРАТЬ
| СчетаУчёта.Номенклатура
| ИЗ
| РегистрСведений.СчетаУчётаНоменклатуры КАК СчетаУчёта
| ГДЕ
| СчетаУчёта.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))
|УПОРЯДОЧИТЬ ПО
| Номенклатура.НаименованиеПолное";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// Выводим проблемные позиции в консоль или таблицу значений
Сообщить("Нет счёта учёта: " + Выборка.Наименование
+ " (" + Выборка.ВидНоменклатуры + ")");
КонецЦикла;
КонецПроцедуры
После выявления проблемных позиций заполните регистр вручную через «Номенклатура → Счета учёта» или воспользуйтесь групповой обработкой.
Ошибка 2: Незакрытые авансы и «висящие» остатки на счёте 60.02
Симптомы
При закрытии месяца регламентная операция «Закрытие счетов затрат» выполняется, но в оборотно-сальдовой ведомости остаётся дебетовое сальдо по счёту 60.02 (авансы выданные), которое не зачтено. Это приводит к тому, что затраты на приобретение ТМЦ или услуг не попадают в себестоимость вовремя.
Причина
Типичная ситуация: бухгалтер оформил платёжное поручение на аванс поставщику, но поступление товара или акт услуг не провёл в том же месяце (или провёл задним числом после закрытия). В итоге зачёт аванса не произошёл, и сумма «висит» на 60.02, не формируя затраты.
Диагностика
Сформируйте ОСВ по счёту 60.02 с детализацией по контрагентам и договорам. Все позиции с дебетовым остатком на конец месяца — потенциальные проблемы. Проверьте, есть ли соответствующие документы поступления:
// Поиск авансов без соответствующего поступления
// за указанный период
Функция НайтиНезачтённыеАвансы(НачалоПериода, КонецПериода)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Субконто1 КАК Контрагент,
| Остатки.Субконто2 КАК Договор,
| Остатки.СуммаОстатокДт КАК СуммаАванса
|ИЗ
| РегистрБухгалтерии.Хозрасчётный.Остатки(
| &КонецПериода,
| Счёт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчётный.РасчётыСПоставщикамиАвансыВыданные),
| ,) КАК Остатки
|ГДЕ
| Остатки.СуммаОстатокДт > 0
|УПОРЯДОЧИТЬ ПО
| Остатки.СуммаОстатокДт УБЫВ";
Результат = Запрос.Выполнить();
Возврат Результат.Выгрузить();
КонецФункции
Решение: проведите документы поступления или акты с правильными датами. Если поступление будет в следующем месяце — это нормально, но важно понимать, что затраты попадут в себестоимость следующего периода.
Ошибка 3: Некорректное распределение косвенных затрат
Симптомы
Себестоимость единицы продукции резко меняется от месяца к месяцу без видимых причин. Или косвенные расходы (счёт 26, 25) не распределяются вовсе и остаются на счёте в виде сальдо после закрытия месяца.
Причина
Чаще всего причина кроется в настройках учётной политики. В разделе «Главное → Учётная политика» задаётся метод распределения косвенных затрат. Если база распределения (выручка, прямые затраты, объём выпуска) равна нулю в данном месяце — программа не знает, как распределить расходы, и оставляет их на счёте.
Настройка и проверка
Убедитесь, что в учётной политике корректно указаны:
- Метод распределения общехозяйственных расходов (директ-костинг или включение в себестоимость);
- База распределения общепроизводственных расходов (счёт 25);
- Статьи затрат, участвующие в распределении.
Пример программной проверки базы распределения перед закрытием:
// Проверка наличия базы распределения косвенных затрат
// Если база = 0, распределение не произойдёт
Процедура ПроверитьБазуРаспределения(Период)
НачалоМесяца = НачалоМесяца(Период);
КонецМесяца = КонецМесяца(Период);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоМесяца", НачалоМесяца);
Запрос.УстановитьПараметр("КонецМесяца", КонецМесяца);
Запрос.Текст =
"ВЫБРАТЬ
| Обороты.СуммаОборотДт КАК ПрямыеЗатраты
|ИЗ
| РегистрБухгалтерии.Хозрасчётный.Обороты(
| &НачалоМесяца,
| &КонецМесяца,
| Регистратор,
| Счёт В ИЕРАРХИИ ЗНАЧЕНИЕ(ПланСчетов.Хозрасчётный.ОсновноеПроизводство),
| ,) КАК Обороты";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ПрямыеЗатраты = 0 Тогда
Сообщить("ВНИМАНИЕ: База распределения равна нулю!"
+ " Косвенные затраты не будут распределены.");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Если в месяце не было выпуска продукции, но есть косвенные затраты — рассмотрите переход на метод директ-костинга, при котором расходы счёта 26 списываются напрямую в дебет счёта 90.08, минуя себестоимость продукции.
Ошибка 4: Документы, проведённые задним числом после закрытия
Симптомы
Закрытие месяца выполнено, но затем бухгалтер провёл документ прошлым периодом — например, акт от поставщика за прошлый месяц. Программа сообщает, что «период закрыт», но документ всё равно проводится. В результате проводки добавляются в закрытый период, а регламентные операции не пересчитываются — себестоимость остаётся старой.
Причина
В 1С:Бухгалтерия 3.0 есть механизм «Дата запрета редактирования», но он не всегда настроен. Если дата запрета не установлена, пользователи с соответствующими правами могут проводить документы любым числом. После этого закрытие месяца нужно выполнить повторно — но об этом часто забывают.
Решение
Установите дату запрета редактирования в разделе «Администрирование → Настройки пользователей и прав → Даты запрета изменения данных». А для контроля используйте следующий запрос, выявляющий документы, проведённые после даты закрытия:
// Поиск документов, проведённых после закрытия месяца
// ДатаЗакрытия — последний день закрытого периода
Функция НайтиДокументыЗаднимЧислом(ДатаЗакрытия)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаЗакрытия", ДатаЗакрытия);
Запрос.УстановитьПараметр("ДатаРегламентнойОперации",
КонецМесяца(ДатаЗакрытия));
Запрос.Текст =
"ВЫБРАТЬ
| Документы.Ссылка КАК Документ,
| Документы.Дата КАК ДатаДокумента,
| Документы.МоментВремени КАК МоментПроведения,
| Документы.Проведён КАК Проведён
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК Документы
|ГДЕ
| Документы.Дата <= &ДатаЗакрытия
| И Документы.МоментВремени > &ДатаРегламентнойОперации
| И Документы.Проведён = ИСТИНА
|УПОРЯДОЧИТЬ ПО
| Документы.Дата";
Результат = Запрос.Выполнить();
Возврат Результат.Выгрузить();
КонецФункции
Если такие документы найдены — необходимо отменить закрытие месяца (кнопка «Отменить закрытие» в помощнике закрытия), провести все документы и выполнить закрытие заново. Это трудоёмко, но необходимо для корректного учёта. Если вам нужна помощь в настройке процедуры закрытия, вы можете найти разработчика 1С на нашей платформе.
Ошибка 5: Неверная последовательность регламентных операций
Симптомы
Программа выполнила все операции закрытия месяца, но себестоимость всё равно некорректна. При детальном анализе выясняется, что, например, амортизация ОС была рассчитана после распределения затрат, или переоценка валютных остатков произошла уже после формирования финансового результата.
Причина
Помощник закрытия месяца в 1С:Бухгалтерия 3.0 выполняет операции в строго определённой последовательности. Если пользователь вручную запускает отдельные операции в произвольном порядке (например, через кнопку «Выполнить операцию» для конкретного шага), это нарушает логику расчёта.
Кроме того, если в предыдущих месяцах последовательность документов нарушена (есть «дыры»), программа может некорректно определить, какие операции уже выполнены.
Правильная последовательность
Стандартная последовательность регламентных операций в 1С:Бухгалтерия 3.0:
- Начисление амортизации ОС и НМА;
- Погашение стоимости спецодежды и спецоснастки;
- Переоценка валютных средств и обязательств;
- Расчёт и списание долей списания косвенных расходов;
- Закрытие счетов затрат (20, 23, 25, 26, 44);
- Выпуск продукции и расчёт себестоимости;
- Расчёт налога на прибыль (НДС, налог при УСН);
- Реформация баланса (в декабре).
Никогда не запускайте отдельные операции вручную, минуя помощник закрытия. Если нужно перевыполнить конкретную операцию — используйте кнопку «Пропустить» для ненужных шагов и «Выполнить» для нужного, но только через интерфейс помощника.
// Программная проверка последовательности закрытия месяца
// Получаем список регламентных операций и их статус
Процедура ПроверитьПоследовательностьЗакрытия(МесяцЗакрытия)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоМесяца", НачалоМесяца(МесяцЗакрытия));
Запрос.УстановитьПараметр("КонецМесяца", КонецМесяца(МесяцЗакрытия));
Запрос.Текст =
"ВЫБРАТЬ
| РегОперации.Ссылка КАК Документ,
| РегОперации.Дата КАК Дата,
| РегОперации.ВидОперации КАК ВидОперации,
| РегОперации.Проведён КАК Проведён
|ИЗ
| Документ.РегламентнаяОперация КАК РегОперации
|ГДЕ
| РегОперации.Дата >= &НачалоМесяца
| И РегОперации.Дата <= &КонецМесяца
|УПОРЯДОЧИТЬ ПО
| РегОперации.Дата,
| РегОперации.МоментВремени";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ПредыдущаяДата = Дата(1, 1, 1);
Пока Выборка.Следующий() Цикл
Если НЕ Выборка.Проведён Тогда
Сообщить("Не проведена операция: "
+ Выборка.ВидОперации
+ " от " + Формат(Выборка.Дата, "ДФ=дд.ММ.гггг"));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Ошибка 6: Ошибки в настройке статей затрат и их отнесении
Симптомы
Себестоимость продукции содержит расходы, которые туда не должны попадать (например, административные расходы включены в производственную себестоимость). Или наоборот — производственные затраты списываются напрямую на финансовый результат, минуя себестоимость.
Причина
В справочнике «Статьи затрат» для каждой статьи задаётся вид расхода и счёт затрат. Если вид расхода указан неверно (например, «Прочие расходы» вместо «Материальные расходы»), программа некорректно классифицирует затраты при закрытии месяца. Это особенно критично для налогового учёта.
Диагностика
Сформируйте отчёт «Анализ субконто» по статьям затрат и проверьте, на каких счетах и с каким видом расхода отражены затраты. Особое внимание обратите на статьи, которые используются одновременно на счетах 20 и 26 — это часто признак ошибки.
// Анализ статей затрат: поиск статей с некорректным видом расхода
// Выводим статьи, у которых вид расхода не соответствует счёту
Процедура ПроверитьСтатьиЗатрат()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Статьи.Ссылка КАК СтатьяЗатрат,
| Статьи.Наименование КАК Наименование,
| Статьи.ВидРасходов КАК ВидРасходов,
| Статьи.СчётЗатрат КАК СчётЗатрат
|ИЗ
| Справочник.СтатьиЗатрат КАК Статьи
|ГДЕ
| НЕ Статьи.ПометкаУдаления
| И НЕ Статьи.ЭтоГруппа
|УПОРЯДОЧИТЬ ПО
| Статьи.Наименование";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// Проверяем соответствие вида расхода и счёта
Если Выборка.ВидРасходов = Перечисления.ВидыРасходовОсновнойДеятельности.ПрочиеРасходы
И Выборка.СчётЗатрат = ПланыСчетов.Хозрасчётный.ОсновноеПроизводство Тогда
Сообщить("Возможная ошибка: статья '" + Выборка.Наименование
+ "' имеет вид 'Прочие расходы', но счёт 20 (производство).");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Помимо этого, проверьте настройку «Методов распределения статей затрат организаций» — именно здесь задаётся, как конкретная статья будет распределяться между подразделениями и видами продукции.
Дополнительные проверки перед закрытием месяца
Чек-лист бухгалтера
Найдите специалиста для решения этой задачи на koderion.ru