В типовой конфигурации 1С:Бухгалтерия предприятия 3.0 процесс списания расходов будущих периодов (РБП) автоматизирован с помощью регламентной операции в составе закрытия месяца. Однако по умолчанию программа настроена на работу с ограниченным перечнем счетов, таких как 97.01, 97.21, 76.01.2 и 76.01.9. Если на предприятии используется измененный план счетов (например, страховки учитываются на счете 76.10), стандартная обработка перестает видеть эти остатки, и бухгалтеру приходится выполнять списания вручную. В этой статье мы разберем, как программно расширить список счетов для автоматического списания и какие нюансы системы необходимо учитывать.
Прежде чем приступать к правке кода, давайте проанализируем, как работает документ РегламентнаяОперация с видом "Списание расходов будущих периодов". Программа не просто списывает остатки по счету. Она выполняет сложный запрос, который объединяет данные бухгалтерского учета (остатки на начало периода) и данные специализированного регистра сведений Параметры расчета расходов будущих периодов. Если вы просто добавите счет в код, но не настроите правильно карточку в справочнике Расходы будущих периодов, автоматического списания не произойдет.
Рассмотрим основные точки конфигурации, которые отвечают за этот процесс:
РасходыБудущихПериодов или РасходыБудущихПериодовПереопределяемый.РегламентнаяОперация формируется текст запроса, который собирает данные по субконто.97.21 или 76.01.9. Как минимум, это должны быть справочники Расходы будущих периодов, Контрагенты и Договоры.Разберем ситуацию, когда нам нужно добавить счет 76.10 в массив обрабатываемых счетов. Нам необходимо найти функцию, которая возвращает список счетов для запроса. Проанализируем общий модуль РасходыБудущихПериодов. Ищите функцию с названием типа ПолучитьСписокСчетовСписанияРБП или СписокСчетовСписанияРБП.
Типовой код формирования массива выглядит примерно так:
Функция СписокСчетовСписанияРБП() Экспорт
СписокСчетов = Новый Массив;
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасходыБудущихПериодов); // 97
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПлатежиВзносыПоПрочимВидамСтрахования); // 76.01.9
// Здесь мы можем добавить свой счет
СписокСчетов.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.10"));
Возврат СписокСчетов;
КонецФункции
Важный момент: если вы используете НайтиПоКоду("76.10"), убедитесь, что этот счет реально существует в пользовательском плане счетов. Более правильным подходом будет добавление предопределенного счета, если он был создан в конфигураторе.
Чтобы не вносить изменения непосредственно в типовую конфигурацию (что затруднит дальнейшие обновления), мы рекомендуем использовать механизм Расширений. Рассмотрим, как это сделать по шагам:
РасходыБудущихПериодов.&После для модификации возвращаемого значения.Пример кода в расширении:
&После("ПолучитьСписокСчетовСписанияРБП")
Функция Расш1_ПолучитьСписокСчетовСписанияРБП(Результат)
// Добавляем наш кастомный счет в уже сформированный типовой массив
Счет76_10 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.10");
Если НЕ Счет76_10.Пустая() Тогда
Результат.Добавить(Счет76_10);
КонецЕсли;
Возврат Результат;
КонецФункции
Такой подход гарантирует, что при обновлении типовой конфигурации ваш код не "затрется", и логика списания продолжит работать корректно.
Проанализируем ситуацию глубже: почему простого добавления счета в массив может быть недостаточно? Регламентная операция выполняет запрос к виртуальной таблице Остатки. В этом запросе происходит обращение к субконто. Если на вашем счете 76.10 первым субконто стоит не РасходыБудущихПериодов, а, например, Контрагенты, запрос вернет некорректные данные или вообще пустой результат.
Требования к счету 76.10:
РасходыБудущихПериодов (тип значения — справочник Расходы будущих периодов).Контрагенты.Договоры.Если порядок субконто другой, вам придется переписывать не только массив счетов, но и логику формирования текста запроса в модуле менеджера регламентной операции, что крайне нежелательно.
Часто пользователи жалуются, что после закрытия года или в январе суммы списания "задваиваются". Рассмотрим причины этого явления:
1. Наличие ручных операций. Если бухгалтер делал корректировки по счету 97 или 76 документом Операция, введенная вручную, это может сбить алгоритм. Регламентная операция ориентируется на остаток, деленный на количество оставшихся месяцев. Если остаток по БУ не совпадает с логикой параметров, записанных в справочнике, программа может попытаться "досписать" разницу в первом же месяце года.
2. Дублирование в справочнике РБП. Проанализируем карточки РБП. Бывает так, что на один страховой полис заведено две карточки. По одной остаток закрылся, а по второй висит "хвост". Нужно внимательно проверить отчет Оборотно-сальдовая ведомость по счету в разрезе всех субконто.
3. Неверная дата окончания списания. Если дата окончания в карточке РБП установлена, к примеру, на 31.12.2023, а на счете осталась сумма, то в январе 2024 года система попытается списать все сразу, что бухгалтер воспринимает как "задвоение".
Подведем итог. Чтобы успешно внедрить списание с нестандартного счета, выполните следующие действия:
76.10 имеет правильные настройки в плане счетов и нужный порядок субконто.Поступление услуг или Списание с расчетного счета) правильно заполнены все три субконто.Использование типовых механизмов (таких как счет 76.01.9) всегда предпочтительнее, так как они поддерживаются методологами 1С "из коробки". Однако, если специфика учета требует кастомизации, предложенный выше метод через расширение модуля РасходыБудущихПериодов является наиболее безопасным и технически грамотным решением.