Как добавить колонки остаточной стоимости на конец предыдущих годов в Ведомости остатков ОС

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет
← На главную

В работе бухгалтера государственного учреждения часто возникает необходимость сравнить показатели остаточной стоимости основных средств не только на текущую дату, но и в динамике за прошлые периоды (например, на конец 2020, 2021 и 2022 годов). Типовой отчет Ведомость остатков ОС в конфигурации 1С:Бухгалтерия государственного учреждения 2.0 (БГУ 2.0) по умолчанию настроен на работу с одной конкретной датой. Разберем подробно, почему так происходит и какими способами можно решить эту задачу, начиная от простых настроек в пользовательском режиме и заканчивая созданием внешнего отчета.

Анализ проблемы: почему нельзя просто добавить колонку

Проанализируем структуру типового отчета. Ведомость остатков ОС построена на базе Системы компоновки данных (СКД). Основной запрос отчета обращается к виртуальным таблицам остатков (регистры накопления или регистр бухгалтерии). Особенность виртуальных таблиц остатков в том, что они принимают один обязательный параметр — &Период (или &НаДату).

В пользовательском режиме мы видим этот параметр как поле Дата отчета. Поскольку запрос внутри отчета жестко привязан к этой единственной точке во времени, стандартная настройка через кнопку Изменить вариант не позволяет добавить еще одну колонку с остатками на другую дату. Система просто не знает, откуда взять данные для второго «среза» времени в рамках одного набора данных.

Способ 1: Использование отчета Ведомость движения ОС

Рассмотрим самый простой обходной путь, не требующий программирования. В БГУ 2.0 существует отчет Ведомость движения ОС. В отличие от ведомости остатков, он работает с периодом времени.

  1. Откроем отчет Ведомость движения ОС.
  2. В настройках укажем период, охватывающий несколько лет (например, с 01.01.2020 по текущую дату).
  3. Зайдем в Настройки — Расширенный — Структура.
  4. Добавим группировку колонок по полю Период, Год.
  5. В показателях выберем Стоимость на конец периода и Амортизация на конец периода.

Хотя этот отчет может не вывести готовую колонку Остаточная стоимость (как разность), мы получим данные по первоначальной стоимости и накопленной амортизации на конец каждого года в одной таблице. Это позволит быстро сопоставить цифры.

Способ 2: Настройка через Универсальный отчет

Разберем, как использовать Универсальный отчет для получения нужных данных. Этот инструмент позволяет обращаться напрямую к регистрам накопления, где информация хранится в более «сыром», но гибком виде.

Выясним, какие регистры нам понадобятся. Основные данные по ОС хранятся в регистре накопления Стоимость объектов ОС, НМА, НПА. Чтобы получить остаточную стоимость, нам также нужны данные из регистра Амортизация объектов ОС, НМА, НПА.

Посмотрим на алгоритм настройки:

  1. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Универсальный отчет.
  2. В качестве типа объекта выберем Регистр накопления, а в качестве имени — Стоимость объектов ОС, НМА, НПА.
  3. В настройках на вкладке Поля и сортировки оставим только нужные характеристики ОС (Инвентарный номер, Наименование).
  4. Чтобы добавить данные за разные годы, нам придется формировать отчет несколько раз или использовать выгрузку в Excel для сведения, так как Универсальный отчет также ограничен одним периодом для итоговых остатков.

    Способ 3: Создание внешнего отчета через модификацию СКД

    Если нам необходимо видеть именно колонки «Остаточная стоимость 2020», «Остаточная стоимость 2021» в одном окне, проанализируем техническое решение через конфигуратор. Это самый надежный способ, который рекомендуют опытные специалисты.

    Суть метода заключается в создании нескольких Наборов данных в схеме компоновки. Мы создадим три набора данных, каждый из которых будет получать остатки на свою дату.

    Пропишем пример структуры запроса для одного из наборов данных (на конец 2020 года):

    
    ВЫБРАТЬ
        СтоимостьОстатки.ОсновноеСредство КАК ОС,
        СтоимостьОстатки.СтоимостьОстаток - АмортизацияОстатки.АмортизацияОстаток КАК ОстаточнаяСтоимость2020
    ИЗ
        РегистрНакопления.СтоимостьОбъектовОСНМА_НПА.Остатки(&Дата2020, ) КАК СтоимостьОстатки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.АмортизацияОбъектовОСНМА_НПА.Остатки(&Дата2020, ) КАК АмортизацияОстатки
            ПО СтоимостьОстатки.ОсновноеСредство = АмортизацияОстатки.ОсновноеСредство
    

    Повторим эту логику для каждой нужной даты (2021, 2022 годы), создавая соответствующие параметры &Дата2021 и &Дата2022. Затем в СКД на закладке Связи наборов данных свяжем их по полю ОсновноеСредство.

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

    Способ 4: Использование вычисляемых полей и Консоли запросов

    Выясним, как проверить корректность данных перед созданием отчета. Для этого воспользуемся Консолью запросов. Мы можем написать сложный запрос, который объединяет данные из регистра бухгалтерии (счет 101.00 и 104.00).

    Рассмотрим логику расчета остаточной стоимости на произвольную дату через регистр бухгалтерии ЕПСБУ:

    
    ВЫБРАТЬ
        ЕПСБУОстатки101.Субконто1 КАК ОсновноеСредство,
        ЕПСБУОстатки101.СуммаОстатокДт КАК Стоимость,
        ЕСТЬNULL(ЕПСБУОстатки104.СуммаОстатокКт, 0) КАК Амортизация,
        ЕПСБУОстатки101.СуммаОстатокДт - ЕСТЬNULL(ЕПСБУОстатки104.СуммаОстатокКт, 0) КАК ОстаточнаяСтоимость
    ИЗ
        РегистрБухгалтерии.ЕПСБУ.Остатки(&ДатаКонецГода, Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.ОсновныеСредства)), , ) КАК ЕПСБУОстатки101
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.Остатки(&ДатаКонецГода, Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.Амортизация)), , ) КАК ЕПСБУОстатки104
            ПО ЕПСБУОстатки101.Субконто1 = ЕПСБУОстатки104.Субконто1
    

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

    Способ 5: Применение Расширений конфигурации

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

    1. Создадим новое расширение.
    2. Добавим в него типовой отчет Ведомость остатков ОС и его схему компоновки данных.
    3. В схеме расширения добавим новые параметры (например, &ДатаПредыдущегоГода).
    4. Модифицируем запрос, добавив в него выборку данных на новую дату через ОБЪЕДИНИТЬ ВСЕ или дополнительные соединения.
    5. Выведем новые поля в список доступных полей отчета.

    Преимущество этого метода: при обновлении БГУ 2.0 ваши настройки не пропадут, а отчет останется в интерфейсе на своем привычном месте.

    Рекомендации по оптимизации

    При работе с остатками за несколько лет отчет может стать «тяжелым». Чтобы ускорить работу, проанализируем следующие советы:

    • Ограничивайте выборку: Всегда устанавливайте фильтр по Организации и, если возможно, по Группе ОС или КФО.
    • Используйте временные таблицы: Если вы пишете сложный запрос в СКД, сначала выберите список всех ОС во временную таблицу, а затем присоединяйте к ней остатки на разные даты. Это работает быстрее, чем множественные соединения виртуальных таблиц напрямую.
    • Проверяйте итоги: При добавлении колонок через объединение наборов данных следите за тем, чтобы итоговые суммы по всей организации считались корректно. Иногда требуется дополнительная настройка ресурсов в СКД (функция СУММА(ВычислитьВыражениеСГруппировкойТаблица(...))).

    Таким образом, хотя штатная Ведомость остатков ОС не поддерживает многопериодность «из коробки», использование внешних отчетов или расширений с модифицированным запросом СКД позволяет полностью решить задачу и предоставить пользователю удобный инструмент для анализа динамики стоимости государственного имущества.

← На главную