При сдаче регламентированной отчетности бухгалтеры нередко сталкиваются с ситуацией, когда программа 1С автоматически подставляет некорректные данные в титульный лист декларации. Особенно остро эта проблема проявляется в конфигурациях, находящихся на ограниченной поддержке, таких как «Бухгалтерия предприятия» редакции 2.0 (БП 2.0). В данной статье мы детально разберем ошибку, из-за которой в регламентированной финансовой отчетности по акцизам указывается неверный «налоговый период (код)» (например, вместо требуемого кода "ВВ" подставляется стандартный код месяца "12").
Для начала давайте разберемся в методологии налогового учета. Согласно инструкциям ФНС по заполнению деклараций по акцизам, коды налоговых периодов отражают не просто календарный месяц, но и особые условия предоставления отчетности. В стандартных ситуациях, когда отчет сдается в обычные сроки (не позднее 25-го числа месяца, следующего за отчетным), используются числовые коды от "01" (январь) до "12" (декабрь).
Однако Налоговый кодекс РФ (в частности, пункт 3 статьи 204 НК РФ) устанавливает альтернативные сроки представления отчетности для отдельных операций и условий. Например, при представлении декларации по акцизам в срок не позднее 25-го числа третьего месяца, следующего за отчетным, применяются специальные буквенные коды:
Существуют также серии кодов от "С1" до "СВ" для отчетности, представляемой не позднее 25-го числа шестого месяца. Если организация находится в процессе ликвидации или реорганизации, указание правильного кода критически важно для корректного приема декларации налоговым органом. Ошибка в коде периода приведет к отказу в приеме отчета со стороны ФНС.
Перейдем к технической стороне вопроса. Пользователи замечают, что даже при ручном выборе даты и условий, соответствующих коду "ВВ", программа все равно упорно выводит на печать и в файл выгрузки стандартный код "12" (декабрь). Почему так происходит? Выясним причину, заглянув в конфигуратор.
Проблема кроется в коде регламентированного отчета РегламентированныйОтчетАкцизыГСМ. Если мы откроем основную форму отчета (Форма.ОсновнаяФорма) и проанализируем процедуру ОсновныеДействияФормыОК(Кнопка), то обнаружим там следующий фрагмент кода:
Если Найти("1234", СрокПредставления) Тогда
ВыбФормаОтчета.ВариантСрокаПредставления = Число(СрокПредставления);
Иначе
ВыбФормаОтчета.ВариантСрокаПредставления = 1;
КонецЕсли;
Давайте подробно разберем, как именно этот фрагмент нарушает логику программы и приводит к ошибке:
Найти(СтрокаПоиска, ПодстрокаПоиска) ищет вхождение подстроки в строке. В данном случае разработчики попытались проверить, относится ли выбранный срок представления к стандартным числовым вариантам (1, 2, 3 или 4). Однако параметры функции перепутаны местами или использованы некорректно. Когда переменная СрокПредставления принимает текстовое значение "ВВ", выражение Найти("1234", "ВВ") пытается найти строку "ВВ" внутри строки "1234". Естественно, совпадений нет, и функция возвращает 0.Если Число Тогда интерпретирует 0 как Ложь (False), а любое другое число — как Истина (True). Поскольку функция вернула 0, управление передается в ветку Иначе. В результате переменной ВариантСрокаПредставления жестко присваивается значение 1 (что соответствует стандартному ежемесячному сроку сдачи). Программа игнорирует буквенный код и подставляет код периода "12".Найти(СрокПредставления, "1234"), при передаче буквенного кода "ВВ" функция вернула бы ложное значение, но в случае успешного прохождения проверки строка Число(СрокПредставления) вызвала бы аварийное завершение работы программы с ошибкой «Преобразование значения к типу Число не может быть выполнено». Программа изначально не была спроектирована под корректную обработку нечисловых кодов в этой переменной.Многие пользователи надеются, что регулярное обновление конфигурации решит эту проблему. Однако практика показывает, что даже после обновления «Бухгалтерии предприятия 2.0» до актуальных релизов (например, 2.0.101 и выше), ошибка сохраняется.
Дело в том, что редакция 2.0 конфигурации «Бухгалтерия предприятия» уже много лет находится на стадии ограниченной поддержки. Фирма «1С» выпускает для нее обновления, содержащие только самые критически важные изменения законодательства: новые формы отчетности, изменения ставок налогов и форматов выгрузки. Логические ошибки в узкоспециализированных и редко используемых механизмах (таких как отчетность по акцизам при реорганизации или ликвидации) зачастую остаются без внимания разработчиков. Поэтому исправлять ситуацию приходится самостоятельно.
Рассмотрим по шагам несколько вариантов решения данной проблемы в зависимости от того, имеет ли ваша организация возможность вносить изменения в конфигурацию 1С.
Этот способ является наиболее безопасным и предпочтительным, так как он позволяет решить проблему без снятия информационной базы с поддержки и без изменения типовой конфигурации. Мы сохраним регламентированный отчет как внешний файл, внесем в него исправления и подключим к базе.
Выполним следующие действия по шагам:
Отчеты -> РегламентированныйОтчетАкцизыГСМ (или другой аналогичный отчет по акцизам, в котором наблюдается данная ошибка).РегламентированныйОтчетАкцизыГСМ_Исправленный.erf.Файл -> Открыть в Конфигураторе.Формы и откройте форму с именем ОсновнаяФорма.ОсновныеДействияФормыОК(Кнопка).Дополнительные отчеты и обработки и зарегистрируйте ваш внешний отчет. Теперь бухгалтеры смогут использовать его для корректного формирования декларации с кодом «ВВ».Если ваша конфигурация уже снята с поддержки (находится на редактировании с сохранением поддержки), вы можете исправить ошибку непосредственно в основной конфигурации. Проанализируем правильный вариант написания кода, который предотвратит сбои.
Вместо ошибочного условия в процедуре ОсновныеДействияФормыОК следует написать следующий код:
// Проверяем, является ли СрокПредставления стандартным числовым значением
Если СрокПредставления = "1" Или СрокПредставления = "2" Или СрокПредставления = "3" Или СрокПредставления = "4" Тогда
ВыбФормаОтчета.ВариантСрокаПредставления = Число(СрокПредставления);
Иначе
// Для буквенных кодов (ВВ, С1 и др.) передаем строковое значение напрямую
ВыбФормаОтчета.ВариантСрокаПредставления = СрокПредставления;
КонецЕсли;
Такой подход полностью исключает неявное приведение типов и корректно обрабатывает любые буквенные коды сроков сдачи, передавая их напрямую в форму отчета без попытки преобразовать строку в число. После внесения изменений выполните обновление конфигурации базы данных (клавиша F7).
Если вы регулярно сталкиваетесь с подобными техническими недоработками в редакции 2.0, настоятельно рекомендуем рассмотреть вопрос перехода на актуальную версию «1С:Бухгалтерия предприятия» редакции 3.0. В новой редакции полностью переработан механизм регламентированной отчетности, улучшено юзабилити, а все актуальные изменения форматов выгрузки и заполнения кодов (включая реорганизацию и ликвидацию) отслеживаются и оперативно исправляются разработчиками в рамках плановых обновлений.
Используя предложенные инструкции, вы сможете оперативно устранить ошибку заполнения титульного листа декларации по акцизам и успешно сдать отчетность в налоговые органы без ручной корректировки файлов выгрузки XML.