Получение остатков товаров, материалов или денежных средств на каждый день — одна из самых востребованных задач в 1С:Предприятие. Такие данные необходимы для анализа динамики запасов, контроля оборотов, планирования закупок или даже для судебных разбирательств. Однако стандартные отчеты системы часто выдают остатки только на текущую дату или за период без детализации по дням.

Многие пользователи сталкиваются с проблемой: как выгрузить историю остатков так, чтобы видеть изменения показателя по каждому календарному дню? В этой статье мы разберем все возможные способы — от простых настроек встроенных отчетов до написания собственных запросов. Вы узнаете, какие инструменты подходят для 1С:Бухгалтерии, 1С:Управление торговлей и 1С:ERP, а также как автоматизировать процесс для регулярного мониторинга.

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

Если вам нужно срочно получить данные без глубокого погружения в настройки — начните с раздела про стандартные отчеты. Для опытных пользователей и программистов 1С будет полезен блок с запросами и обработками.

Зачем нужен отчет по остаткам на каждый день?

Ежедневные остатки — это не просто "красивая" аналитика. Эти данные решают конкретные бизнес-задачи:

  • 📊 Контроль динамики запасов: видите, как быстро расходуются товары, и корректируете заказы поставщикам.
  • 💰 Управление денежными потоками: в рознице или кассовых операциях ежедневные остатки по счетам помогают избежать кассовых разрывов.
  • 📈 Анализ сезонности: сравнивая остатки по дням за прошлые периоды, прогнозируете спрос.
  • ⚖️ Юридические требования: при судебных спорах или проверках часто запрашивают историю остатков с привязкой к датам.
  • 🔄 Выявление ошибок: резкие скачки остатков сигнализируют о некорректных проводках или кражах.

Например, в торговле ежедневные остатки помогают выявить скрытые потери от порчи или хищений, которые при суммарном учете за месяц остаются незамеченными. В производстве — контролировать расход материалов по дням, чтобы избежать простоев из-за нехватки сырья.

Без детализации по дням вы рискуете принимать решения на основе усредненных данных. Представьте: средний остаток товара за месяц — 100 штук. Но в реальности могло быть 200 штук в начале месяца и 0 в конце. Разница критична для бизнеса!

📊 Как часто вам нужны ежедневные остатки в 1С?
Ежедневно
Раз в неделю
Раз в месяц
Только по запросу

Способ 1: Стандартные отчеты с настройкой периодов

Самый простой способ — использовать встроенные отчеты , изменив параметры группировки и детализации. Рассмотрим на примере 1С:Управление торговлей 11 и 1С:Бухгалтерия 3.0.

Шаг 1. Отчет "Ведомость по товарам на складах"

Перейдите в раздел Отчеты → Товары → Ведомость по товарам на складах. В настройках отчета:

  1. Установите период с нужной даты начала (например, с 1 января).
  2. В группировках добавьте поле Дата и установите интервал День.
  3. В поля выведите Остаток на начало и Остаток на конец.

Шаг 2. Отчет "Оборотно-сальдовая ведомость" (для бухгалтерии)

Для счетов учета (например, 10 "Материалы" или 41 "Товары") используйте Оборотно-сальдовую ведомость:

  1. Выберите счет и субсчета.
  2. В настройках детализации укажите По дням.
  3. Добавьте ресурсы Сальдо на начало и Сальдо на конец.

Установить период с нужной даты начала|

Добавить группировку по дате с интервалом "День"|

Вывести поля "Остаток на начало/конец"|

Проверить фильтры по складам/организациям-->

Ограничения метода:

Стандартные отчеты показывают остатки только на начало и конец дня, но не фиксируют изменения внутри дня. Также они могут тормозить при больших объемах данных (например, если анализировать остатки за год по 10 000 номенклатур).

⚠️ Внимание: В конфигурациях с упрощенным учетом (например, 1С:Розница базовой версии) детализация по дням может быть недоступна. Проверьте настройки учета в разделе Администрирование → Настройки программы.

Способ 2: Универсальный отчет с детализацией по дням

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

Инструкция для 1С:ERP и 1С:КА:

  1. Перейдите в Отчеты → Универсальный отчет.
  2. Выберите источник данных — регистр накопления (например, ТоварыНаСкладах).
  3. В настройках укажите:
    • Период: с нужной даты по текущий день.
    • Группировки: Номенклатура, Склад, Дата (интервал — день).
    • Ресурсы: КоличествоНачальныйОстаток, КоличествоКонечныйОстаток.
  • Добавьте отборы по организации, складу или группе номенклатуры.
  • Пример настройки для 1С:Бухгалтерия 3.0:

    В универсальном отчете выберите регистр БухгалтерияХозрасчетный (для счетов 10, 41, 43) и настройте:

    - Группировка: Субконто1 (номенклатура), Дата (день).

    - Ресурсы: СальдоНачальноеДт, СальдоКонечноеДт.

    КонфигурацияРегистр для отчетаКлючевые ресурсы
    1С:УТ 11ТоварыНаСкладахКоличествоНачальныйОстаток, КоличествоКонечныйОстаток
    1С:Бухгалтерия 3.0БухгалтерияХозрасчетныйСальдоНачальноеДт, СальдоКонечноеДт
    1С:ERP 2.5ТоварыНаСкладах или ПартииТоваровНаСкладахКоличествоОстаток (с разрезом по датам)
    1С:Розница 2.3ТоварыВНоменклатуреКоличество (требуется настройка периодичности)

    Совет: Если отчет тормозит, разбейте запрос по интервалам (например, по месяцам) и экспортируйте данные в Excel, а затем объедините файлы.

    💡

    В универсальном отчете можно сохранить настройку как пользовательский вариант. Для этого после настройки нажмите "Сохранить вариант" и укажите название (например, "Ежедневные остатки по складу").

    Способ 3: Запросы и обработки для программистов

    Если вам нужна максимальная гибкость или автоматизация, напишите собственный запрос. Этот метод требует знаний 1С:Предприятие и прав на изменение конфигурации.

    Пример запроса для остатков по дням (1С:УТ 11):

    ВЫБРАТЬ
    

    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,

    ТоварыНаСкладахОстатки.Склад КАК Склад,

    ТоварыНаСкладахОстатки.Период КАК Дата,

    ТоварыНаСкладахОстатки.КоличествоНачальныйОстаток КАК ОстатокНаНачалоДня,

    ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток КАК ОстатокНаКонецДня

    ИЗ

    РегистрНакопления.ТоварыНаСкладах.Остатки(

    &НачалоПериода,

    &КонецПериода,

    ,

    Номенклатура, Склад,

    КоличествоНачальныйОстаток, КоличествоКонечныйОстаток) КАК ТоварыНаСкладахОстатки

    УПОРЯДОЧИТЬ ПО

    Дата,

    Номенклатура

    Как использовать этот запрос:

    1. Откройте Файл → Новый → Запрос.
    2. Вставьте код, заменив &НачалоПериода и &КонецПериода на нужные даты.
    3. Для параметров используйте конструктор: ВЫБРАТЬ &НачалоПериода КАК ПериодНачала.
    4. Выполните запрос и экспортируйте результат в Excel или CSV.
    5. Для бухгалтерских счетов (1С:Бухгалтерия 3.0):

      Используйте виртуальную таблицу БухгалтерияХозрасчетный.ОборотыИСальдо с группировкой по дням:

      ВЫБРАТЬ
      

      ОборотыИСальдо.Субконто1 КАК Номенклатура,

      ОборотыИСальдо.Период КАК Дата,

      ОборотыИСальдо.СальдоНачальноеДт КАК СальдоНаНачалоДня,

      ОборотыИСальдо.СальдоКонечноеДт КАК СальдоНаКонецДня

      ИЗ

      РегистрБухгалтерии.БухгалтерияХозрасчетный.ОборотыИСальдо(

      &НачалоПериода,

      &КонецПериода,

      Счет = &Счет,

      ,

      Субконто1) КАК ОборотыИСальдо

      ⚠️ Внимание: При работе с большими периодами (более 1 года) запросы к виртуальным таблицам могут занимать много времени. Оптимизируйте запрос, добавив отборы по организациям, складам или группам номенклатуры.
      Как ускорить выполнение запроса

      Добавьте индексы по полям, используемым в отборах (например, по складу или группе номенклатуры).

      Разбейте большой период на более мелкие интервалы (по месяцам) и объедините результаты в внешней обработке.

      Используйте временные таблицы для промежуточных данных, если запрос сложный.

      Способ 4: Внешние обработки и расширения

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

      • 📥 Обработка "Анализ остатков по дням" (доступна на Инфостарт или 1С-Софт). Позволяет выгружать остатки с детализацией до часа.
      • 📊 Расширение "Управленческие отчеты" для 1С:ERP и 1С:КА. Включает шаблоны для ежедневной аналитики.
      • 🔗 Интеграция с Power BI: выгружайте данные из 1С в Power Query и стройте дашборды с дневной детализацией.
      • 📂 Готовые конфигурации (например, "1С:Аналитика"), которые содержат специализированные отчеты.

    Как подключить внешнюю обработку:

    1. Скачайте файл обработки (формат .epf или .erf).
    2. В 1С перейдите в Файл → Открыть и выберите скачанный файл.
    3. Запустите обработку и настройте параметры (период, склады, номенклатуру).

    Пример настройки интеграции с Power BI:

    Используйте 1С:Предприятие 8.3 с установленным расширением 1C:EnterpriseData:

    1. В Power BI выберите Get Data → OData Feed.
    2. Укажите URL вашей базы 1С (например, http://server/base/odata/standard.odata/).
    3. Выберите таблицу с остатками (например, Catalog_Номенклатура и AccumulationRegister_ТоварыНаСкладах).
    4. Свяжите таблицы по полям и постройте отчет с группировкой по датам.
    💡

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

    Способ 5: Автоматизация выгрузки остатков

    Если ежедневные остатки нужны регулярно (например, для аналитики или отчетности перед руководством), настройте автоматическую выгрузку. Это можно сделать через:

    • 🤖 Регламентные задания в 1С.
    • 📤 Обмен данными с внешними системами (например, Excel, Google Sheets, BI-системы).
    • 📧 Email-рассылку отчетов.

    Настройка регламентного задания:

    1. Перейдите в Администрирование → Регламентные задания.
    2. Создайте новое задание, выбрав тип Выполнение отчета.
    3. Укажите отчет (например, Универсальный отчет с сохраненными настройками).
    4. Настройте расписание (например, ежедневно в 20:00).
    5. В действиях укажите экспорт результата в файл или отправку по email.

    Пример кода для автоматической выгрузки в Excel:

    Процедура ВыгрузитьОстаткиВExcel()
    

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,

    | ТоварыНаСкладахОстатки.Период КАК Дата,

    | ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток КАК Остаток

    |ИЗ

    | РегистрНакопления.ТоварыНаСкладах.Остатки(

    | &НачалоДня,

    | &КонецДня,

    | ,

    | Номенклатура, Период) КАК ТоварыНаСкладахОстатки";

    Запрос.УстановитьПараметр("НачалоДня", НачалоДня(ТекущаяДата()));

    Запрос.УстановитьПараметр("КонецДня", КонецДня(ТекущаяДата()));

    Результат = Запрос.Выполнить();

    Таблица = Результат.Выгрузить();

    Excel = Новый COMОбъект("Excel.Application");

    Книга = Excel.Workbooks.Add();

    Лист = Книга.Worksheets(1);

    Лист.Cells(1,1).Value = "Номенклатура";

    Лист.Cells(1,2).Value = "Дата";

    Лист.Cells(1,3).Value = "Остаток";

    Для Каждого Строка Из Таблица Цикл

    НомерСтроки = Строка.Индекс + 2;

    Лист.Cells(НомерСтроки,1).Value = Строка.Номенклатура;

    Лист.Cells(НомерСтроки,2).Value = Строка.Дата;

    Лист.Cells(НомерСтроки,3).Value = Строка.Остаток;

    КонецЦикла;

    ПутьКФайлу = "C:\Остатки\" + Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd") + ".xlsx";

    Книга.SaveAs(ПутьКФайлу);

    Excel.Quit();

    КонецПроцедуры

    ⚠️ Внимание: При автоматической выгрузке проверьте права доступа пользователя, от имени которого выполняется задание. У него должны быть права на чтение регистров накопления и запись в указанную папку.

    Типичные ошибки и как их избежать

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

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

    Как проверить корректность данных:

    1. Сверьте остаток на конец последнего дня с данными отчета Ведомость по товарам.
    2. Проверьте, что в период не попали непроведенные документы (используйте отчет Журнал документов с фильтром по статусу).
    3. Для бухгалтерских счетов сверьте сальдо с Оборотно-сальдовой ведомостью.

    Пример запроса с левым соединением для заполнения пропущенных дат:

    ВЫБРАТЬ
    

    Календарь.Дата КАК Дата,

    Товары.Номенклатура КАК Номенклатура,

    ВЫБОР

    КОГДА Остатки.Номенклатура ЕСТЬ NULL

    ТОГДА 0

    ИНАЧЕ Остатки.КоличествоКонечныйОстаток

    КОНЕЦ КАК Остаток

    ИЗ

    (ВЫБРАТЬ

    &НачалоПериода + ЧИСЛО(0) КАК Дата

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ

    &НачалоПериода + ЧИСЛО(1) КАК Дата

    ...

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ

    &КонецПериода КАК Дата) КАК Календарь

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(

    &НачалоПериода,

    &КонецПериода,

    ,

    Номенклатура = Товары.Номенклатура) КАК Остатки

    ПО Календарь.Дата = Остатки.Период

    Частые вопросы

    Можно ли получить остатки по часам, а не по дням?

    Да, но это зависит от конфигурации. В 1С:УТ 11 и 1С:ERP можно использовать регистр ТоварыНаСкладах с периодичностью "Секunda" (требуется доработка конфигурации). В стандартных решениях детализация обычно ограничена днями.

    Для часовой аналитики придется писать запрос к документам (например, РеализацияТоваровУслуг) с группировкой по времени создания.

    Почему в отчете остатки на начало дня не совпадают с концом предыдущего?

    Это типичная проблема при неверной настройке периодичности регистра. Проверьте:

    1. Включен ли Партионный учет в настройках программы.
    2. Нет ли документов с датой, выходящей за пределы рабочего дня (например, документы с временем 00:00 следующего дня).
    3. Не сбились ли последовательности проведения документов (используйте обработку Проверка последовательности проведения).
    Как выгрузить остатки по нескольким складам в одном отчете?

    В стандартных отчетах добавьте группировку по полю Склад. В универсальном отчете или запросе используйте конструкцию:

    ВЫБРАТЬ
    

    Остатки.Склад КАК Склад,

    Остатки.Период КАК Дата,

    Остатки.Номенклатура КАК Номенклатура,

    Остатки.КоличествоКонечныйОстаток КАК Остаток

    ИЗ

    РегистрНакопления.ТоварыНаСкладах.Остатки(...) КАК Остатки

    Для отбора по нескольким складам используйте:

    ГДЕ Остатки.Склад В (&СписокСкладов)
    Можно ли получить остатки в разрезе характеристик (цвет, размер)?

    Да, если в конфигурации ведется учет по характеристикам. В запросе добавьте поле ХарактеристикаНоменклатуры:

    ВЫБРАТЬ
    

    Остатки.Номенклатура КАК Номенклатура,

    Остатки.ХарактеристикаНоменклатуры КАК Характеристика,

    Остатки.Период КАК Дата,

    Остатки.КоличествоКонечныйОстаток КАК Остаток

    В 1С:УТ 11 и 1С:ERP характеристики хранятся в регистре ТоварыНаСкладах в измерении Характеристика.

    Как автоматизировать отправку отчета по email?

    Используйте регламентное задание с обработкой, которая:

    1. Формирует отчет в Excel или PDF.
    2. Отправляет файл на email через ПочтаMAPI или ИнтернетПочта.

    Пример кода для отправки:

    Процедура ОтправитьОтчетНаПочту(ПутьКФайлу, АдресПочты)
    

    Почта = Новый ПочтаMAPI;

    Письмо = Почта.СоздатьПисьмо();

    Письмо.Тема = "Ежедневные остатки на " + Формат(ТекущаяДата(), "ДЛФ=DD");

    Письмо.Текст = "В приложении отчет по остаткам.";

    Письмо.Получатели.Добавить(АдресПочты);

    Письмо.Вложения.Добавить(ПутьКФайлу);

    Почта.ОтправитьПисьмо(Письмо);

    КонецПроцедуры

    Настройте права для пользователя, от имени которого отправляется письмо, в Администрирование → Пользователи.