При работе в системе 1С:ERP Управление предприятием (версий 2.4 и 2.5) пользователи часто сталкиваются с ситуацией, когда штатный отчет «Продажи» или «Выручка и себестоимость продаж» выводит пустые значения в колонке Серия. При этом в складских отчетах те же самые серии отображаются корректно. Давайте подробно разберем, почему так происходит, как устроена архитектура хранения данных в системе и какие шаги необходимо предпринять для решения этой проблемы.
Для начала нам необходимо понять, откуда отчеты по продажам черпают информацию. В отличие от складских отчетов, которые работают с регистром Товары на складах, отчеты финансового блока (продажи, себестоимость) строятся на базе регистра накопления ВыручкаИСебестоимостьПродаж.
Проанализируем структуру этого регистра. В нем нет прямого измерения Серия. Вместо этого используется измерение АналитикаНоменклатуры, которое ссылается на справочник КлючиАналитикиНоменклатуры. Именно в этом справочнике система объединяет комбинации номенклатуры, характеристик и — в определенных случаях — серий.
Важный момент: если поле Серия в справочнике КлючиАналитикиНоменклатуры не заполнено, то в любых финансовых отчетах (продажи, валовая прибыль) вы увидите пустое значение, даже если физически товар отгружался с указанием серии в документе.
Разберем, почему система может «игнорировать» серию при формировании ключей аналитики. Все дело в настройках Политики учета серий, которая задается для конкретного Вида номенклатуры. Рассмотрим основные варианты настроек:
Таким образом, если у вас выбрана политика «Управление остатками серий», серии в стандартных отчетах по продажам отображаться не будут. Это поведение заложено в логику типового решения для минимизации количества записей в ключевых таблицах аналитики.
Рассмотрим порядок действий для исправления ситуации. Чтобы серии начали попадать в отчеты по продажам, нам необходимо изменить настройки в карточке Вид номенклатуры.
Последовательность действий:
Обратите внимание: Изменение политики в «живой» базе, где уже есть движения товаров, — процедура сложная. Система может заблокировать изменение, если по данной номенклатуре есть остатки или документы. В таком случае потребуется либо ввод новых карточек номенклатуры, либо полная очистка движений для редактирования настройки.
Просто изменить настройку недостаточно для того, чтобы «старые» продажи отобразились с сериями. Ключи аналитики формируются в момент проведения документа реализации. Проанализируем, что нужно сделать после смены политики:
КлючиАналитикиНоменклатуры начали появляться записи с заполненным полем Серия.РеализацияТоваровУслуг за отчетный период.Если по каким-то причинам вы не можете или не хотите включать «Учет себестоимости по сериям» (например, это избыточно для вашего учета и сильно раздувает базу), разберем альтернативный способ получения данных. При критическом росте объёма данных на сервере для уменьшения размера базы используется многопоточная свёртка 1С:ERP, которая параллельно очищает регистры и помечает старые документы на удаление.
Посмотрим на отчет «Движения серий товаров». Хотя он считается складским, в нем можно настроить фильтрацию:
В данном отчете серии будут видны всегда, так как он берет данные из складского контура (регистр ДвиженияСерийТоваров), где серии фиксируются независимо от политики финансового учета.
Если бизнес-требования диктуют необходимость видеть и выручку, и серии в одном окне, а политика учета серий настроена как «Управление остатками», нам придется прибегнуть к разработке внешнего отчета. Проанализируем логику запроса для такого отчета.
Нам потребуется соединить данные двух регистров. Основным источником сумм будет РегистрНакопления.ВыручкаИСебестоимостьПродаж, а источником серий — складские регистры. Связку эффективнее всего делать по регистратору (документу продажи).
Пример логики запроса на языке 1С:
ВЫБРАТЬ
Продажи.Организация,
Продажи.Номенклатура,
Продажи.Количество,
Продажи.ВыручкаРегл,
ДвиженияСерий.Серия
ИЗ
РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК Продажи
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ДвиженияСерийТоваров КАК ДвиженияСерий
ПО
Продажи.Регистратор = ДвиженияСерий.Регистратор
И Продажи.Номенклатура = ДвиженияСерий.Номенклатура
И Продажи.Характеристика = ДвиженияСерий.Характеристика
Используя такое соединение, мы сможем «подтянуть» серийные номера в отчет по продажам, не перегружая финансовую аналитику системы лишними разрезами учета. Однако помните, что при частичных отгрузках одной позиции разными сериями в рамках одного документа, соединение может потребовать дополнительной детализации по номерам строк или использования промежуточных временных таблиц.
Мы выяснили, что отсутствие серий в отчетах по продажам 1С:ERP 2.4 — это не ошибка программы, а следствие настроенной Политики учета серий.
Если вам нужен штатный отчет — используйте политику «Учет себестоимости по сериям».
Если вам достаточно оперативной информации — используйте отчет «Движения серий товаров» с фильтром по операциям реализации.
Для сложных случаев, когда менять политику нельзя, а отчет необходим — оптимальным решением станет создание внешнего отчета через Систему Компоновки Данных (СКД), объединяющего финансовый и складской контуры.