Как формируются проводки по счету 41.02 в 1С:Комплексная автоматизация и почему списание идет по закупочной стоимости

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

При сопровождении и доработке конфигураций на базе платформы 1С:Предприятие 8 (в частности, 1С:Комплексная автоматизация 1.1 и 1С:Управление производственным предприятием 1.3) разработчики часто сталкиваются с ситуацией, когда в модуле документа Отчет о розничных продажах отсутствуют привычные строки добавления бухгалтерских записей вида Движения.Хозрасчетный.Добавить(). Кроме того, нередко возникает путаница с суммами списания товаров: почему документ списывает сумму по себестоимости (закупочной цене), а не по розничной цене продажи.

Разберем детально обе проблемы: как устроен механизм генерации проводок в партионном учете и какова методология учета розничной выручки и списания себестоимости на плане счетов.

Бухгалтерская методология: почему счет 41.02 списывается по покупной стоимости

Выясним причину, по которой проводка по кредиту счета 41.02 формируется на сумму себестоимости, а не розничной цены:

  1. Назначение субсчета 41.02: Согласно типовому плану счетов бухгалтерского учета, счет 41.02 называется «Товары в розничной торговле (по покупной стоимости)». Это означает, что учет остатков и списание товаров ведутся исключительно по фактической себестоимости приобретения (по средней стоимости или методом ФИФО в зависимости от учетной политики). При продаже товара со склада с данным типом учета сумма списания в дебет счета 90.02.1 («Себестоимость продаж») обязана равняться именно закупочной стоимости (себестоимости партии), а не выручке.
  2. Учет по продажным ценам (счет 41.11 и 42): Если учетной политикой организации предусмотрен учет товаров в рознице по продажным (розничным) ценам с обособленным учетом торговой наценки, то для этого используется субсчет 41.11 («Товары в розничной торговле в АТТ по продажной стоимости») в корреспонденции со счетом 42 («Торговая наценка»). При этом списание также требует дополнительной корректирующей проводки (сторно наценки).

Таким образом, списание со счета 41.02 по закупочной стоимости является корректным поведением типовой конфигурации. Если требуется учет в розничных ценах, необходимо проверить настройки учетной политики по бухгалтерскому учету (способ оценки товаров в рознице) и регистр сведений Счета учета номенклатуры, где для розничных складов должен быть указан счет 41.11, а не 41.02.

Архитектура формирования проводок в 1С:Комплексная автоматизация

Проанализируем, почему в модуле объекта документа Отчет о розничных продажах нельзя найти прямой код добавления бухгалтерских проводок.

В отличие от простых конфигураций (например, 1С:Бухгалтерия предприятия), в конфигурациях КА 1.1 и УПП 1.3 реализован транзакционный и регистровый принцип проведения документов:

  1. При проведении документа сначала формируются движения по оперативным регистрам накопления, в частности по регистру СписанныеТовары.
  2. Затем вызывается механизм партионного учета (если в настройках включено списание партий при проведении). Точкой входа служит процедура:
    
    УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить());
    
  3. Происходит расчет себестоимости партий по регистру накопления ПартииТоваровНаСкладах (бухгалтерский учет).
  4. Формирование самих бухгалтерских проводок выполняется пакетно в специализированных общих модулях, таких как УправлениеЗапасамиПартионныйУчетФормированиеПроводокРегл и БухгалтерскийУчет. Данные собираются во временную таблицу значений и загружаются в регистр бухгалтерии методом Загрузить(), без построчного обхода через метод Добавить().
  5. Счета учета не прописываются строками вроде "41.02", а извлекаются запросом из регистра сведений СчетаУчетаНоменклатуры либо берутся через обращение к предопределенным элементам: ПланыСчетов.Хозрасчетный.ТоварыВРозницеПоПокупнойСтоимости

Способы локализации места формирования проводки в Конфигураторе

Рассмотрим по шагам практические методы поиска нужного участка кода, если глобальный поиск по строке счета не дает результатов.

  1. Точка останова в модуле набора записей регистра бухгалтерии:

    Это самый надежный способ перехватить формирование любых проводок. Откроем дерево метаданных, перейдем в ветку Регистры бухгалтерии -> Хозрасчетный -> Модуль набора записей. В процедуре ПередЗаписью или ПриЗаписи установим точку останова с условием:

    ЭтотОбъект.Отбор.Регистратор.Значение = ДокументСсылка

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

  2. Поиск ссылок на предопределенный счет:

    В дереве метаданных найдем Планы счетов -> Хозрасчетный -> Предопределенные. Найдем счет ТоварыВРозницеПоПокупнойСтоимости (код 41.02), нажмем правой кнопкой мыши и выберем пункт «Найти ссылки в объекте» (или «Поиск ссылок на объект»). Конфигуратор выведет список всех общих модулей, запросов и макетов, где используется данный счет метаданных.

  3. Замер производительности при проведении:

    В режиме отладки запустим Замер производительности в меню Отладка, проведем документ Отчет о розничных продажах и остановим замер. В полученной таблице отсортируем строки по модулям, относящимся к учету партий и формированию проводок (УправлениеЗапасамиПартионныйУчет*), чтобы увидеть, какие процедуры фактически исполнялись.

  4. Проверка регистра «Счета учета номенклатуры»:

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

← На главную