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