Как автоматизировать отражение авансов комитента в 1С:ERP и связать их со счетами-фактурами комиссионера

Программист 1С v8.3 (Управляемые формы) Налоговый учет Торговля и дистрибуция
← На главную

При переходе с конфигурации «1С:Бухгалтерия 3.0» на «1С:ERP Управление предприятием» пользователи часто сталкиваются с изменением привычной логики работы. Одной из наиболее острых проблем является отражение авансов в рамках комиссионной торговли, когда ваша организация выступает в роли комитента (принципала). В этой статье мы подробно разберем, почему в ERP возникает разрыв связи между счетами-фактурами, и как реализовать механизм их автоматического заполнения.

Анализ проблемы: почему в ERP «все не так», как в Бухгалтерии

Давайте проанализируем ситуацию. В «1С:Бухгалтерия 3.0» механизм работы с отчетами комиссионера исторически ориентирован на требования НДС. Там реализована вкладка «Денежные средства», где напрямую указываются номера счетов-фактур, выданных комиссионером покупателю на полученный аванс. Это позволяет системе автоматически генерировать Счет-фактуру полученный (на аванс) с уже заполненными реквизитами.

В 1С:ERP версии 2.4 и 2.5 архитектура документов иная. Здесь первичным является управленческий учет и цепочка товародвижения. НДС формируется как следствие этих процессов. Проблема заключается в том, что когда комиссионер получает аванс от конечного покупателя, он обязан выставить счет-фактуру. Комитент же, получив информацию об этом авансе, должен выставить свой счет-фактуру комиссионеру той же датой. В типовой ERP связь между номером счета-фактуры комиссионера и формируемым документом комитента часто теряется, что вынуждает бухгалтеров вводить номера вручную. Выясним, как это можно исправить.

Типовой процесс отражения аванса в ERP

Прежде чем приступать к доработкам, рассмотрим, как процесс должен выглядеть согласно задумке разработчиков 1С. Последовательность действий в системе следующая:

  1. Комиссионер присылает данные о полученных авансах (обычно в составе периодического отчета).
  2. В ERP создается документ Отчет комиссионера (агента) о продажах.
  3. На закладке «Денежные средства» фиксируется сумма полученного аванса. Крайне важно выбрать вид оплаты «Аванс».
  4. После проведения отчета информация попадает в систему учета НДС.
  5. Для формирования счетов-фактур используется рабочее место «Помощник по учету НДС» (или обработка «Формирование счетов-фактур на аванс»).

Проблема, которую мы решаем: при массовой генерации счетов-фактур через Помощника, система присваивает им внутренние номера ERP, не «подцепляя» номера, которые уже выдал комиссионер конечному покупателю. Это критично для корректного заполнения 10 и 11 разделов декларации по НДС, где должна прослеживаться сквозная связь номеров СФ.

Техническое решение: модификация регистров и документов

Проанализируем ситуацию с точки зрения структуры данных. Для того чтобы номера счетов-фактур сошлись в декларации, необходимо обеспечить корректную запись в регистр сведений ЖурналУчетаСчетовФактур. В частности, поле СчетФактураВыданныйПокупателю должно содержать ссылку на авансовый счет-фактуру.

Рассмотрим по шагам план доработки системы, который позволит автоматизировать этот процесс:

Шаг 1. Расширение типов в регистре сведений

В типовой конфигурации в регистре сведений ЖурналУчетаСчетовФактур у поля СчетФактураВыданныйПокупателю может отсутствовать тип ДокументСсылка.СчетФактураВыданныйАванс. Без этого типа мы не сможем связать два авансовых документа. Необходимо через расширение или в основной конфигурации добавить этот тип в определяемые типы или непосредственно в реквизит регистра.

Шаг 2. Модификация документа «Счет-фактура выданный (аванс)»

Добавим в документ СчетФактураВыданныйАванс новые реквизиты для хранения входящих данных от комиссионера:

Шаг 3. Доработка логики заполнения и проведения

Нам необходимо изменить процедуру проведения документа, чтобы данные о входящем номере попадали в ЖурналУчетаСчетовФактур. Проанализируем примерный код, который необходимо внедрить в модуль проведения или через механизм подписок на события:


Процедура ПередЗаписьюЖурналаУчетаСчетовФактур(Отказ, Источник)
    // Алгоритм поиска связи между СФ комитента и СФ комиссионера
    Если Источник.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
        Для Каждого Запись Из Источник.Движения.ЖурналУчетаСчетовФактур Цикл
            // Подставляем ссылку на первичный авансовый СФ, 
            // если мы ее сохранили в реквизитах документа
            Запись.СчетФактураВыданныйПокупателю = Источник.ДокументОснование; 
            // Или используем наш новый реквизит
            Запись.НомерВходящегоДокумента = Источник.НомерСчетаФактурыКомиссионера;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Интеграция с «Отчетом комиссионера»

Для того чтобы данные попадали в счет-фактуру автоматически, их нужно где-то хранить на этапе ввода первичных данных. Оптимальное место — табличная часть «Денежные средства» документа Отчет комиссионера о продажах.

Выполним следующие действия:

  1. Добавим в табличную часть ДенежныеСредства реквизиты для номера и даты СФ комиссионера.
  2. При формировании Счета-фактуры выданного (аванс) из этого отчета (через обработку формирования), добавим код сопоставления. Программа должна находить строку в отчете по сумме и контрагенту, извлекать номер СФ и подставлять его в создаваемый документ.

Посмотрим на пример логики поиска данных:


// Фрагмент кода для обработки заполнения СФ на аванс
СтруктураПоиска = Новый Структура("Сумма, Контрагент", ДокументСФ.Сумма, ДокументСФ.Контрагент);
СтрокиАванса = ОтчетКомиссионера.ДенежныеСредства.НайтиСтроки(СтруктураПоиска);

Если СтрокиАванса.Количество() > 0 Тогда
    ДокументСФ.НомерСчетаФактурыКомиссионера = СтрокиАванса[0].НомерСФ;
    ДокументСФ.ДатаСчетаФактурыКомиссионера = СтрокиАванса[0].ДатаСФ;
КонецЕсли;

Методы передачи данных от комиссионера

Выясним, как именно комиссионер может «сообщать» эти данные, чтобы их не пришлось вбивать руками в сам отчет. Рассмотрим три сценария:

  1. Электронный документооборот (ЭДО): Это наиболее современный путь. Если комиссионер передает отчет через ЭДО, дополнительные реквизиты могут быть переданы в электронном XML-файле. ERP умеет разбирать входящие файлы и заполнять документы.
  2. Загрузка из Excel: Если ЭДО не используется, можно настроить типовой механизм загрузки из внешних файлов для табличной части документа Отчет комиссионера. Бухгалтеру достаточно будет попросить у комиссионера выгрузку реестра авансов в формате Excel.
  3. Интеграция систем: Если и комитент, и комиссионер работают в базах 1С, можно настроить синхронизацию данных (Enterprise Data), добавив в план обмена информацию об авансовых счетах-фактурах.

Важные замечания по учету НДС

Проанализируем ситуацию с закрытием месяца. В ERP зачет авансов происходит при выполнении регламентных операций. Если вы дорабатываете механизм отражения авансов, убедитесь, что при зачете аванса (когда происходит реализация) система правильно находит ранее выставленный авансовый счет-фактуру. Связь осуществляется через регистр накопления НДС Авансы Полученные.

При кастомизации алгоритмов важно не нарушить целостность этого регистра, иначе при формировании книги покупок (в части зачета аванса) вы получите дублирование записей или отсутствие связи с первичным счетом-фактурой.

Резюме по решению

Подводя итоги, можно сказать, что отсутствие автоматической подстановки номеров СФ комиссионера в ERP 2.4 — это осознанное упрощение типовой модели учета в пользу универсальности. Однако для организаций с большим объемом комиссионной торговли ручной ввод недопустим.

Для решения задачи мы рекомендуем:

Такой подход сэкономит десятки часов работы бухгалтерии и минимизирует риск возникновения ошибок при сопоставлении данных на стороне налоговой службы.

← На главную