С 1 октября 2024 года вступили в силу изменения в правилах заполнения счетов-фактур, утвержденные Постановлением Правительства РФ от 16.08.2024 № 1096. Основное изменение коснулось строки 5а «Документ об отгрузке». Ранее в этой строке указывались порядковые номера записей и реквизиты первичных документов, теперь же формат строго регламентирован: необходимо указывать наименование, номер и дату документа, при этом порядковый номер («№ п/п») больше не используется. Для быстрого приведения документов в соответствие с законом рекомендуем изучить подробный обзор изменений в правилах заполнения НДС.
В данной статье мы разберем, как реализовать эти изменения в конфигурациях на базе 1С:Предприятие 8, таких как Управление торговлей 11 или Бухгалтерия предприятия 3.0, если ваша программа еще не обновлена или используется доработанная печатная форма, требующая ручного вмешательства в код. Для таких случаев уже существуют готовые решения, такие как УПД и Счет-фактура для УТ 11 или универсальный передаточный документ для БП 3.0.
Прежде чем приступать к правке кода, проанализируем, что именно должно измениться в печатной форме. Согласно новым правилам:
В типовых решениях 1С логика печатных форм зависит от периода документа. За это отвечает специальная функция, которая определяет, какую версию постановления № 1137 применять. Давайте найдем и проверим функцию ВерсияПостановленияНДС1137. Обычно она располагается в общих модулях, связанных с учетом НДС. Чтобы корректно настроить это условие, можно использовать готовые примеры кода для новых версий постановления.
Проанализируем пример реализации версии для нового периода:
Функция ВерсияПостановленияНДС1137(Период) Экспорт
Если Период >= '20241001' Тогда
Возврат 7; // Новая версия от октября 2024 года
ИначеЕсли Период >= '20231001' Тогда
Возврат 6;
Иначе
Возврат 5;
КонецЕсли;
КонецФункции
Убедимся, что для документов с датой позже 01.10.2024 система возвращает значение 7. Это позволит нам разграничить логику формирования строки 5а для новых и старых документов, чтобы не нарушить целостность архивных данных.
Теперь рассмотрим, где именно формируется текст для строки 5а. В конфигурации Управление торговлей 11 за это отвечает функция ПолучитьПредставленияСтроки5а. Если вы не хотите вносить изменения в типовую конфигурацию, рекомендуем подключить готовые внешние печатные формы УПД и счетов-фактур для УТ, КА и ERP, которые сделают все необходимые правки за вас.
Разберем, как модифицировать код вручную, чтобы убрать «№ п/п» и добавить наименование документа. Рассмотрим пример правки:
// Находим место формирования массива представлений документов
ПредставленияДокументов = Новый Массив;
Пока Выборка.Следующий() Цикл
// Проверяем версию постановления
Если ВерсияПостановленияНДС1137(ДатаДокумента) >= 7 Тогда
// Новый формат: Наименование № Номер от Дата
ТекстДокумента = СтрШаблон(
НСтр("ru = '%1 № %2 от %3'"),
Выборка.НаименованиеДокумента,
Выборка.Номер,
Формат(Выборка.Дата, "ДЛФ=D")
);
Иначе
// Старый формат: № п/п НомерПП № Номер от Дата
ТекстДокумента = СтрШаблон(
НСтр("ru = '№ п/п %1 № %2 от %3'"),
Выборка.ПорядковыйНомер,
Выборка.Номер,
Формат(Выборка.Дата, "ДЛФ=D")
);
КонецЕсли;
ПредставленияДокументов.Добавить(ТекстДокумента);
КонецЦикла;
Важный момент: обратите внимание, что просто удалить № п/п недостаточно. В коде должна присутствовать переменная Выборка.НаименованиеДокумента. Если ваша конфигурация старая, этого поля в выборке может не быть, и его придется добавить в запрос к первичным документам.
Выясним, какие именно наименования должны попадать в строку 5а. Правила заполнения зависят от типа хозяйственной операции. Рассмотрим наиболее частые случаи:
Проанализируем ситуацию, когда необходимо программно определить тип документа. Мы можем использовать метаданные или тип ссылки документа-основания:
НаименованиеТипа = "";
Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
Если ДокументОснование.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияУслуг Тогда
НаименованиеТипа = "Акт";
Иначе
НаименованиеТипа = "Товарная накладная";
КонецЕсли;
ИначеЕсли ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.АктВыполненныхРабот") Тогда
НаименованиеТипа = "Акт";
КонецЕсли;
Рассмотрим основные ошибки, которые допускают программисты при выполнении этой задачи. Чтобы их избежать, полезно изучить методику исправления типичных ошибок при доработке НДС:
Мы проанализировали изменения в законодательстве и технические способы их реализации в 1С. Для корректного отображения строки 5а нам потребовалось:
Соблюдение этих шагов позволит вашей организации избежать претензий со стороны налоговых органов и обеспечит корректность ведения налогового учета в части НДС.