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