Как вывести остатки и движения товаров в количественном и суммовом выражении в 1С:Розница 2.2?

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

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

Способ 1. Использование отчета «Оценка склада по видам цен»

Если ваша основная задача — увидеть стоимость текущих остатков в ценах номенклатуры (например, в розничных или закупочных), нам отлично подойдет стандартный отчет Оценка склада по видам цен. Рассмотрим подробнее, как его настроить.

Этот отчет находится в разделе Склад — Отчеты по складу. Его ключевая особенность в том, что он берет остатки из регистра ТоварыНаСкладах и умножает их на цены из регистра ЦеныНоменклатуры на актуальную дату.

Разберем по шагам, как расширить возможности этого отчета:

  1. Откроем отчет и перейдем в меню Настройки, а затем переключимся в Расширенный режим.
  2. На вкладке Поля и сортировки мы можем добавить сразу несколько колонок. Например, выберем вид цены «Закупочная» и «Розничная». Это позволит нам увидеть стоимость склада в двух оценках одновременно.
  3. Для того чтобы увидеть маржинальность остатков, воспользуемся Пользовательскими полями. Создадим новое поле типа «Выражение» и пропишем формулу: СуммаРозничная - СуммаЗакупочная. Так мы получим потенциальную прибыль, «замороженную» в товаре.

Способ 2. Отчет «Анализ продаж и товародвижения»

Когда требуется увидеть не только конечный остаток, но и приход с расходом в суммах, проанализируем возможности отчета Анализ продаж и товародвижения. Это один из самых мощных инструментов в программе 1С:Розница, который часто недооценивают.

Чтобы вывести суммы в этом отчете, выполним следующие действия:

  1. Зайдем в настройки отчета (расширенный вид).
  2. На вкладке Поля добавим показатели Сумма закупки и Сумма продажи.
  3. Проверим результат. Если колонки с суммами закупки пустые, значит, в системе не выполнен Расчет себестоимости.

Важное замечание: Для корректной работы суммовых показателей в движениях необходимо, чтобы в разделе Администрирование — Закупки была включена опция Учет себестоимости. Если вы ведете учет только в розничных ценах, отчеты по движениям смогут показать только суммы реализации, но не суммы закупки.

Способ 3. Регламентированный отчет ТОРГ-29

Для бухгалтеров и материально ответственных лиц предусмотрен отчет Товарный отчет (ТОРГ-29). Рассмотрим ситуацию, когда нужно получить сводные данные по магазину за период.

Этот отчет выводит:

Он находится в разделе Склад — Отчеты по складу. Его преимущество в том, что он является официальной формой и жестко привязан к денежному выражению всех операций.

Способ 4. Программная реализация (создание внешнего отчета)

Если типовые отчеты не удовлетворяют специфическим требованиям (например, нужно соединить данные о закупках и продажах в одну таблицу с особыми группировками), выясним, как написать запрос для собственного отчета. Основная сложность здесь заключается в том, что данные о количестве хранятся в регистре ТоварыНаСкладах, а данные о суммах продаж — в регистре Продажи.

Проанализируем пример кода запроса, который можно использовать в консоли отчетов или при создании внешнего отчета в Конфигураторе:


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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТДанныеПоОстаткам.Номенклатура,
    ВТДанныеПоОстаткам.Склад,
    ВТДанныеПоОстаткам.НачальныйОстаток,
    ВТДанныеПоОстаткам.Приход,
    ВТПродажи.КоличествоПродано КАК Расход,
    ВТПродажи.СуммаПродаж КАК СуммаРеализации,
    ВТДанныеПоОстаткам.КонечныйОстаток
ИЗ
    ВТДанныеПоОстаткам КАК ВТДанныеПоОстаткам
ЛЕВОЕ СОЕДИНЕНИЕ ВТПродажи КАК ВТПродажи
    ПО ВТДанныеПоОстаткам.Номенклатура = ВТПродажи.Номенклатура
    И ВТДанныеПоОстаткам.Характеристика = ВТПродажи.Характеристика
    И ВТДанныеПоОстаткам.Склад = ВТПродажи.Склад

Разберем логику этого запроса:

  1. Первым пакетом мы собираем данные из виртуальной таблицы ОстаткиИОбороты регистра ТоварыНаСкладах. Это дает нам количественные показатели: что было на начало, сколько пришло и что осталось.
  2. Вторым пакетом мы обращаемся к регистру Продажи.Обороты. Именно здесь хранится информация о том, на какую сумму был реализован товар (СтоимостьОборот).
  3. В финальном запросе мы объединяем эти данные. Обратите внимание, что мы используем ЛЕВОЕ СОЕДИНЕНИЕ (или ПОЛНОЕ СОЕДИНЕНИЕ, если были продажи товаров, которых нет в остатках на начало и конец периода). Это позволяет вывести в одну строку и количество, и сумму.

Советы по доработке отчета

Если вы решите создавать отчет самостоятельно, проанализируем несколько важных нюансов:

Нюанс 1. Себестоимость прихода. Если вам нужна сумма прихода в ценах поставщика, данные лучше брать из регистра Закупки или использовать ЦенуПоследнейЗакупки, умноженную на количество прихода из регистра ТоварыНаСкладах.

Нюанс 2. Универсальный отчет. Не забывайте про инструмент Универсальный отчет (раздел Администрирование). Он позволяет быстро просмотреть содержимое любого регистра накопления. Однако он не умеет делать сложные соединения между остатками и ценами «на лету», поэтому для полноценной «хотелки» пользователя с объединением данных из разных источников лучше использовать СКД (Систему компоновки данных).

Таким образом, мы рассмотрели различные способы получения суммовых данных по складу в 1С:Розница 2.2. Для быстрой оценки достаточно настроить Оценку склада по видам цен, а для глубокого анализа движений лучше воспользоваться отчетом Анализ продаж и товародвижения или разработать собственный отчет на базе приведенного выше запроса.

← На главную