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