В процессе оптовых продаж, особенно в пищевой промышленности или на крупных производствах, систематически возникает проблема возврата или отбраковки части продукции. На практике это выливается в десятки и сотни документов корректировки реализации. Бухгалтеры сталкиваются с колоссальным объемом рутинной работы: на каждую отгрузку приходится создавать отдельный документ корректировки, выставлять корректировочные счета-фактуры и отправлять их контрагентам.
В этой статье мы подробно разберем, как решить проблему множественного документооборота при возвратах и расхождениях. Мы проанализируем законодательную базу, рассмотрим пошаговый алгоритм объединения документов в типовой конфигурации «1С:Бухгалтерия предприятия 3.0» без доработок, а также предложим варианты автоматизации этого процесса для крупных предприятий с большими объемами отгрузок.
Прежде чем переходить к технической реализации в программе, выясним правовую сторону вопроса. Законодательство РФ официально разрешает упростить процесс выставления корректировочных документов.
В соответствии с п. 5.2 ст. 169 НК РФ и Постановлением Правительства РФ № 1137, продавцы имеют право составлять один единый корректировочный счет-фактуру (ЕКСФ) к двум и более исходным счетам-фактурам, которые были выставлены ранее. Это ключевое положение полностью снимает проблему учета НДС, о которой часто спорят специалисты: вам не нужно отправлять клиенту множество отдельных бумажных или электронных корректировок. Достаточно сформировать один сводный документ за неделю или месяц.
Сводный документ ЕКСФ будет содержать:
Рассмотрим, как этот механизм реализован в типовом функционале программы 1С.
В самой программе 1С:Бухгалтерия 8 невозможно создать один физический документ КорректировкаРеализации, который бы ссылался сразу на несколько разных документов отгрузки. Каждый такой документ в системе жестко привязан к одной исходной накладной. Это обусловлено структурой метаданных и необходимостью корректного сторнирования партий и себестоимости.
Тем не менее, программа позволяет объединить эти документы на уровне Корректировочного счета-фактуры. Разберем этот процесс по шагам для обеих сторон сделки.
Если мы являемся поставщиком и нам необходимо скорректировать несколько отгрузок в адрес одного покупателя по одному договору за неделю или месяц, выполним следующие действия:
Корректировка реализации для всех остальных накладных, по которым были расхождения за выбранный период.Корректировочный счет-фактура выданный. Кликнем по ссылке и зайдем внутрь этого документа.Корректировочный счет-фактура выданный.В результате программа сформирует один Единый корректировочный счет-фактуру (ЕКСФ). При выводе на печать или при отправке по ЭДО в строке 1б через запятую будут указаны все исходные документы, а в табличной части программа корректно сгруппирует все изменившиеся позиции, рассчитает суммарный НДС и разницу к уменьшению или увеличению.
Если наш поставщик прислал нам один сводный ЕКСФ на несколько ранее осуществленных поставок, мы должны отразить это в своем учете следующим образом:
Корректировка поступления (в меню Покупки — Корректировки поступлений).При проведении документов программа 1С автоматически сопоставит эти записи по номеру и дате в книге покупок или продаж, и НДС закроется корректно без расхождений в налоговых органах.
Если на вашем предприятии количество корректировок исчисляется сотнями в день, ручной ввод отдельных документов под каждую накладную становится невозможным. В этом случае требуется автоматизация процесса с помощью создания специального рабочего места (АРМ) или внешней обработки.
Рассмотрим пример программной логики, которую может реализовать программист 1С. Мы напишем алгоритм, который автоматически находит все реализации по выбранному контрагенту за период, анализирует расхождения по качеству (на основе переданного складом внешнего файла или акта ТОРГ-2) и программно создает цепочку корректировок с привязкой к одному ЕКСФ.
Проанализируем пример кода для программного создания корректировок и объединения их в один счет-фактуру:
Процедура ОбъединитьКорректировкиВЕдиныйСФ(Контрагент, Договор, ПериодНачала, ПериодОкончания, ТаблицаРасхождений) Экспорт
// Шаг 1. Создаем массив для хранения ссылок на созданные корректировки
МассивКорректировок = Новый Массив;
// Шаг 2. Обходим таблицу расхождений, полученную от склада
Для Каждого СтрокаРасхождения Из ТаблицаРасхождений Цикл
// Находим исходную реализацию по метаданным (например, по заказу или накладной)
СсылкаРеализация = СтрокаРасхождения.ДокументРеализации;
Если НЕ ЗначениеЗаполнено(СсылкаРеализация) Тогда
Продолжить;
КонецЕсли;
// Создаем новый документ Корректировка реализации
НоваяКорректировка = Документы.КорректировкаРеализации.СоздатьДокумент();
НоваяКорректировка.Заполнить(СсылкаРеализация);
НоваяКорректировка.Дата = ТекущаяДата();
НоваяКорректировка.ВидОперации = Перечисления.ВидыОперацийКорректировкиРеализации.КорректировкаПоСогласованиюСторон;
// Корректируем строки в табличной части "Товары"
Для Каждого СтрокаТовары Из НоваяКорректировка.Товары Цикл
Если СтрокаТовары.Номенклатура = СтрокаРасхождения.Номенклатура Тогда
// Устанавливаем новое фактическое количество
СтрокаТовары.Количество = СтрокаРасхождения.НовоеКоличество;
// Пересчитываем суммы по строке
ОбработкаТабличнойЧастиКлиентСервер.ПересчитатьСтрокуТЧ(СтрокаТовары, НоваяКорректировка);
КонецЕсли;
КонецЦикла;
// Записываем и проводим документ корректировки
Попытка
НоваяКорректировка.Записать(РежимЗаписиДокумента.Проведение);
МассивКорректировок.Добавить(НоваяКорректировка.Ссылка);
Исключение
ЗаписьЖурналаРегистрации("Ошибка создания корректировки", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
// Шаг 3. Создаем Единый корректировочный счет-фактуру для всех созданных корректировок
Если МассивКорректировок.Количество() > 0 Тогда
// За основу берем первую корректировку для инициализации СФ
ПерваяКорректировка = МассивКорректировок[0];
НовыйСФ = Документы.КорректировочныйСчетФактураВыданный.СоздатьДокумент();
НовыйСФ.Дата = ТекущаяДата();
НовыйСФ.Организация = ПерваяКорректировка.Организация;
НовыйСФ.Контрагент = Контрагент;
НовыйСФ.ДоговорКонтрагента = Договор;
// Заполняем список документов-оснований
НовыйСФ.ДокументыОснования.Очистить();
Для Каждого КорректировкаСсылка Из МассивКорректировок Цикл
СтрокаОснования = НовыйСФ.ДокументыОснования.Добавить();
СтрокаОснования.ДокументОснование = КорректировкаСсылка;
КонецЦикла;
// Запускаем штатный механизм заполнения реквизитов счета-фактуры по основаниям
НовыйСФ.ЗаполнитьПоДокументамОснованиям();
Попытка
НовыйСФ.Записать(РежимЗаписиДокумента.Проведение);
Сообщить("Успешно создан Единый корректировочный счет-фактура № " + НовыйСФ.Номер);
Исключение
Сообщить("Не удалось создать единый СФ: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Разберем подробнее логику работы этого алгоритма. Программа сначала автоматически генерирует необходимые документы корректировки на основании переданной таблицы расхождений, проводит их, а затем объединяет ссылки в табличной части ДокументыОснования нового объекта КорректировочныйСчетФактураВыданный. Использование метода ЗаполнитьПоДокументамОснованиям() позволяет автоматически собрать все суммовые показатели и распределить НДС по соответствующим ставкам.
Часто на форумах возникает дискуссия: не проще ли оформить обычный документ ВозвратТоваровОтПокупателя вместо цепочки сложных корректировок? Рассмотрим обе альтернативы с точки зрения налоговых рисков и удобства учета.
Вариант 1: Оформление возврата товаров
Вариант 2: Оформление корректировки реализации по согласованию сторон
Таким образом, для минимизации налоговых рисков крупных предприятий однозначно рекомендуется использовать схему с Корректировкой реализации и последующим формированием Единого корректировочного счета-фактуры.
Для минимизации ручного труда на крупных предприятиях мы рекомендуем внедрять электронный документооборот (ЭДО). При интеграции учетной системы с ЭДО процесс обработки расхождений выглядит следующим образом:
Использование связки ЭДО, типового механизма Единых корректировочных счетов-фактур и простых доработок автоматического заполнения позволяет сократить трудозатраты бухгалтерии на обработку возвратов в десятки раз.