Как правильно вывести себестоимость товаров в 1С:Комплексная автоматизация при использовании серий

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

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

Проанализируем структуру хранения данных

Прежде всего, разберем ситуацию, когда в конфигурации начали использовать серии. В 1С:КА и ERP данные о стоимости хранятся в регистре накопления СебестоимостьТоваров. Особенность этого регистра заключается в том, что измерения Номенклатура, Характеристика и Серия не вынесены в отдельные поля регистра напрямую. Они скрыты внутри составного измерения АналитикаУчетаНоменклатуры.

Это справочник-ключ, который объединяет в себе все разрезы учета товара. Если мы хотим получить данные в разрезе серий, нам необходимо «достучаться» до реквизита Серия внутри этой аналитики. Рассмотрим, как это сделать правильно.

Шаг 1. Оптимизация выбора виртуальной таблицы

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

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


ВЫБРАТЬ
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Серия КАК Серия,
    СУММА(СебестоимостьТоваровОстатки.СтоимостьОстаток) КАК Себестоимость
ПОМЕСТИТЬ ВТ_Себестоимость
ИЗ
    РегистрНакопления.СебестоимостьТоваров.Остатки(&КонецПериода, ) КАК СебестоимостьТоваровОстатки
СГРУППИРОВАТЬ ПО
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Характеристика,
    СебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Серия

Шаг 2. Разбор проблемы пустых серий в запросе

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

В 1С существует несколько типов политики учета серий:

  1. Справочное указание серий: Серии фиксируются только в документах, но не влияют на складские остатки и финансовый учет.
  2. Учет остатков по сериям: Серии разделяют товар на складе, но не разделяют его стоимость.
  3. Учет себестоимости по сериям: Самый глубокий уровень учета, при котором для каждой серии рассчитывается индивидуальная себестоимость.

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

Шаг 3. Учет регламентных операций

Рассмотрим еще один критически важный аспект: в 1С:КА себестоимость не всегда рассчитывается в момент проведения документа. Если мы анализируем поле СтоимостьРегл (регламентированный учет), важно помнить, что финальные цифры появляются только после выполнения обработки «Закрытие месяца».

Выполним проверку по следующим пунктам:

Если месяц не закрыт, запрос к остаткам может вернуть нулевые значения по стоимости, при этом количественные остатки будут верными.

Шаг 4. Итоговое исправление запроса

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


ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Характеристика КАК Характеристика,
    Продажи.Серия КАК Серия,
    Продажи.Количество КАК Количество,
    ЕСТЬNULL(Цены.Себестоимость, 0) КАК СебестоимостьЕдиницы,
    Продажи.Количество * ЕСТЬNULL(Цены.Себестоимость, 0) КАК ОбщаяСебестоимость
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК Продажи
ЛЕВОЕ СОЕДИНЕНИЕ (
    ВЫБРАТЬ
        Себестоимость.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
        Себестоимость.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
        Себестоимость.АналитикаУчетаНоменклатуры.Серия КАК Серия,
        ВЫБОР 
            КОГДА СУММА(Себестоимость.КоличествоОстаток) > 0 
            ТОГДА СУММА(Себестоимость.СтоимостьОстаток) / СУММА(Себестоимость.КоличествоОстаток) 
            ИНАЧЕ 0 
        КОНЕЦ КАК Себестоимость
    ИЗ
        РегистрНакопления.СебестоимостьТоваров.Остатки(&ГраницаРасчета, ) КАК Себестоимость
    СГРУППИРОВАТЬ ПО
        Себестоимость.АналитикаУчетаНоменклатуры.Номенклатура,
        Себестоимость.АналитикаУчетаНоменклатуры.Характеристика,
        Себестоимость.АналитикаУчетаНоменклатуры.Серия
) КАК Цены
ПО Продажи.Номенклатура = Цены.Номенклатура
   И Продажи.Характеристика = Цены.Характеристика
   И Продажи.Серия = Цены.Серия

Подведем итоги

Для корректного вывода себестоимости при использовании серий необходимо:

  1. Проверить Вид номенклатуры и убедиться, что в политике учета серий включен учет себестоимости. Без этой настройки серия не попадет в финансовую аналитику.
  2. В запросах обращаться к реквизиту АналитикаУчетаНоменклатуры.Серия.
  3. Использовать виртуальную таблицу Остатки вместо ОстаткиИОбороты, если требуется срез на дату.
  4. Обязательно выполнять процедуру Закрытия месяца для актуализации стоимостных показателей.

Следуя этим правилам, мы обеспечим точность финансовой отчетности и корректность работы управленческих отчетов в системе.

← На главную