В процессе управления складскими запасами в крупных торговых и производственных компаниях часто возникает задача: оценить не просто количество доступного товара на складах, а его стоимостное (денежное) выражение. Руководству, менеджерам по закупкам и финансовым аналитикам важно понимать, сколько именно денежных средств заморожено в резервах, какой объем капитала свободен для продажи и какова общая стоимость ТМЦ в наличии с учетом зарезервированных позиций.
При попытке решить эту задачу стандартными средствами в программах 1С:ERP Управление предприятием 2, 1С:Комплексная автоматизация 2 или 1С:Управление торговлей 11 пользователи сталкиваются с серьезным препятствием. Популярный и удобный отчет Остатки и доступность товаров показывает исключительно количественные показатели (штуки, коробки, килограммы), но в нем напрочь отсутствуют колонки с суммами. Попытки добавить их через стандартные настройки компоновки данных не приносят успеха.
В этой статье мы подробно проанализируем, почему типовая архитектура систем 1С накладывает такие ограничения, рассмотрим стандартные обходные пути и разберем по шагам, как реализовать полноценный отчет по доступности в деньгах с помощью доработки программного кода или использования механизмов СКД.
---
Прежде чем переходить к поиску решений, давайте выясним причину такого поведения системы. Разработчики фирмы «1С» заложили в архитектуру своих современных ERP-решений жесткое разделение на два независимых контура учета:
ТоварыНаСкладах, СвободныеОстатки, ОбеспечениеЗаказов и другие. В этих регистрах принципиально отсутствует стоимостная оценка. Здесь ведется учет исключительно в штуках, литрах, метрах и разрезах складов, серий, ячеек или назначений.СебестоимостьТоваров. Финансовые данные привязаны к организациям предприятия, а расчет себестоимости (по средней цене или по FIFO) окончательно формируется только после запуска регламентной процедуры «Закрытие месяца». При этом финансовый контур ничего «не знает» об оперативных резервах — для расчета себестоимости не важно, зарезервирован товар под конкретного клиента или свободно лежит на полке.Из-за этого разделения стандартный количественный отчет по резервам не может «на лету» показать себестоимость свободных остатков. Соединить эти данные в одном простом запросе без предварительной подготовки или доработки системы невозможно.
---
Пользователи часто пытаются применить стандартные отчеты для решения этой задачи, но каждый из них имеет свои критические ограничения:
1. Отчет «Ведомость по товарам в ценах номенклатуры»
Этот отчет позволяет оценить остатки товаров на складах по определенному типу цен (например, по оптовой цене, цене закупки или плановой себестоимости). Он умножает физическое количество товара на складе на актуальную цену из регистра сведений ЦеныНоменклатуры.
Минус: Данный отчет абсолютно не учитывает резервы и доступность. Он оценивает только показатель «В наличии». Если на складе лежит 100 единиц товара на сумму 100 000 рублей, но 90 из них жестко зарезервированы под заказы клиентов, отчет все равно покажет общую сумму 100 000 рублей. Узнать, на какую сумму у вас осталось именно доступного (свободного) товара, из этого отчета нельзя.
2. Отчет «Себестоимость товаров организаций»
Этот отчет показывает реальную финансовую стоимость складских запасов предприятия с учетом всех затрат на приобретение и доставку.
Минус: Во-первых, он строится в разрезе юридических лиц (организаций), а складская аналитика в нем вторична. Во-вторых, он не содержит оперативных данных по резервам и доступности. В-третьих, корректные данные в нем появляются только после проведения закрытия месяца.
---
Рассмотрим подробнее три основных способа решения этой проблемы, начиная от самых простых и заканчивая профессиональной разработкой.
Если руководству или отделу закупок требуется получить эти данные разово (например, для подготовки ежемесячного отчета или проведения стратегического планирования), нет необходимости сразу привлекать программистов. Можно воспользоваться выгрузкой данных в электронные таблицы.
Выполним следующие шаги:
Остатки и доступность товаров. Настроим его так, чтобы в строках выводилась детальная номенклатура, а в колонках присутствовали показатели В наличии, В резерве и Доступно. Сохраним этот отчет в формате Excel.Ведомость по товарам в ценах номенклатуры на ту же дату с выбором интересующего нас вида цены (например, «Закупочная»). Сохраним полученную таблицу в отдельный файл Excel.ВПР (или VLOOKUP) сопоставим номенклатуру по коду или артикулу и подтянем цену из второго файла.Сумма В наличии = В наличии * ЦенаСумма В резерве = В резерве * ЦенаСумма Доступно = Доступно * ЦенаЭтот метод прост, но требует ручной работы и не подходит для ежедневного оперативного анализа в режиме реального времени.
---
Для того чтобы пользователи могли формировать отчет в один клик непосредственно в интерфейсе 1С, необходимо разработать внешний отчет на базе Системы компоновки данных (СКД). Нам потребуется соединить оперативные остатки из регистров накопления с ценами номенклатуры.
Проанализируем структуру запроса, который должен лечь в основу такого отчета. Нам нужно объединить таблицу свободных остатков с ценами по выбранному пользователем виду цен.
Рассмотрим пример построения такого запроса на языке запросов 1С:
ВЫБРАТЬ
СвободныеОстатки.Склад КАК Склад,
СвободныеОстатки.Номенклатура КАК Номенклатура,
СвободныеОстатки.Характеристика КАК Характеристика,
СвободныеОстатки.ВНаличииОстаток КАК ВНаличии,
СвободныеОстатки.ВРезервеСо СкладаОстаток КАК ВРезерве,
СвободныеОстатки.ВРезервеПод ЗаказОстаток КАК ВРезервеПодЗаказ,
СвободныеОстатки.ВНаличииОстаток - СвободныеОстатки.ВРезервеСо СкладаОстаток КАК Доступно,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, &ВалютаРегламентированногоУчета) КАК Валюта
ПОМЕСТИТЬ ВТ_ОстаткиИЦены
ИЗ
РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
ПО СвободныеОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И СвободныеОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ОстаткиИЦены.Склад КАК Склад,
ВТ_ОстаткиИЦены.Номенклатура КАК Номенклатура,
ВТ_ОстаткиИЦены.Характеристика КАК Характеристика,
ВТ_ОстаткиИЦены.ВНаличии КАК ВНаличииКоличество,
ВТ_ОстаткиИЦены.ВНаличии * ВТ_ОстаткиИЦены.Цена КАК ВНаличииСумма,
ВТ_ОстаткиИЦены.ВРезерве КАК ВРезервеКоличество,
ВТ_ОстаткиИЦены.ВРезерве * ВТ_ОстаткиИЦены.Цена КАК ВРезервеСумма,
ВТ_ОстаткиИЦены.Доступно КАК ДоступноКоличество,
ВТ_ОстаткиИЦены.Доступно * ВТ_ОстаткиИЦены.Цена КАК ДоступноСумма,
ВТ_ОстаткиИЦены.Цена КАК Цена,
ВТ_ОстаткиИЦены.Валюта КАК Валюта
ИЗ
ВТ_ОстаткиИЦены КАК ВТ_ОстаткиИЦены
Разберем по шагам логику этого запроса:
СвободныеОстатки.Остатки. Этот регистр хранит данные по физическому наличию и плановым резервам на складах предприятия.ЛЕВОГО СОЕДИНЕНИЯ мы подключаем таблицу среза последних цен из регистра сведений ЦеныНоменклатуры. Связь устанавливается по полям Номенклатура и Характеристика.ВидуЦены (например, «Управленческая себестоимость» или «Закупочная цена»), который пользователь сможет выбирать в настройках отчета на форме.Этот запрос легко интегрируется в схему компоновки данных. Нам останется лишь настроить вычисляемые поля, ресурсы для подведения итогов по складам и группам номенклатуры, а также вывести удобные отборы для пользователей.
---
Если в штате компании нет программиста 1С, способного написать такой отчет с нуля, оптимальным решением станет использование готовых внешних отчетов или расширений конфигурации. Многие сертифицированные специалисты и франчайзи 1С предлагают готовые файлы в формате .erf или расширения .cfe.
Преимущества такого подхода:
---
При внедрении отчета доступности в деньгах важно учитывать несколько методологических аспектов, чтобы финансовые показатели не вводили руководство в заблуждение:
1. Выбор вида цены для оценки
Оценивать остатки можно по разным видам цен, и каждая оценка решает свою бизнес-задачу:
Поэтому в качественном отчете обязательно должна быть возможность выбора вида цен перед формированием.
2. Проблема актуальности цен
Регистр сведений ЦеныНоменклатуры хранит цены, которые были установлены документами Установка цен номенклатуры. Если для каких-то позиций цена не была вовремя установлена или обновлена, в отчете эти позиции отобразятся с нулевой стоимостью. Рекомендуется настроить в отчете условное оформление, которое будет выделять товары с нулевой ценой красным цветом для привлечения внимания оператора.
3. Специфика ордерных складов
Если на вашем предприятии используется ордерная схема документооборота, физический остаток на складе (по данным оперативного учета) может временно расходиться с данными финансового учета (когда расходный ордер уже выписан и товар отгружен со склада, но финансовый документ реализации еще не оформлен менеджером). При построении отчета важно четко определить, какой именно регистр берется за основу — ТоварыНаСкладах (физическое наличие на складе) или СвободныеОстатки (с учетом ожидаемых поступлений и резервов по заказам).
---
Мы проанализировали проблему отсутствия суммовых показателей в стандартных отчетах доступности 1С:ERP и выяснили, что это связано с фундаментальным разделением складского и стоимостного контуров учета в системе.
Для решения этой задачи мы рекомендуем использовать один из следующих путей:
Такой подход позволит руководству всегда иметь под рукой актуальные финансовые данные по складским запасам, оптимизировать закупки и не допускать избыточного затоваривания складов.