В типовой конфигурации «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются с необходимостью получить данные, которые стандартные бухгалтерские отчеты (Оборотно-сальдовая ведомость по счету или Анализ счета) не могут вывести в нужном виде. Типичный пример — необходимость увидеть остатки материалов по 10 счету в виде кросс-таблицы: чтобы названия материалов располагались в строках, а периоды (например, недели или месяцы) — в колонках.
В этой статье мы подробно разберем, как с помощью Универсального отчета и механизма Системы компоновки данных (СКД) реализовать такую задачу, не прибегая к программированию в конфигураторе.
Стандартная «Оборотно-сальдовая ведомость по счету» (ОСВ) ориентирована на вертикальное отображение данных. Она отлично показывает начальный остаток, обороты и конечный остаток за период, но если мы хотим сравнить остатки на конец каждой недели в течение квартала, нам придется либо формировать несколько отчетов, либо довольствоваться одной длинной вертикальной таблицей, где периоды будут идти друг за другом внутри группировки по материалам.
Для решения задачи «Материалы — по вертикали, Недели — по горизонтали» идеально подходит Универсальный отчет, который при правильной настройке превращается в мощный инструмент построения сводных таблиц.
Для начала откроем Универсальный отчет (раздел Отчеты — Стандартные отчеты — Универсальный отчет). Первым делом нам необходимо правильно определить объект, из которого отчет будет брать данные.
Проанализируем доступные варианты. Если мы выберем тип данных Регистр бухгалтерии и таблицу Остатки, отчет покажет данные только на одну конкретную дату (конец периода). Это нам не подходит, так как мы хотим видеть динамику по неделям.
Разберем правильный алгоритм выбора:
Регистр бухгалтерии.Хозрасчетный.Остатки и обороты. Именно эта виртуальная таблица позволяет системе «развернуть» данные во времени.Прежде чем переходить к структуре, необходимо ограничить выборку данных. Если мы не укажем конкретный счет, отчет попытается собрать данные по всему плану счетов, что приведет к ошибке или неверному отображению субконто.
Зайдем в Настройки, перейдем на вкладку Отборы и добавим условие:
Счет Равно 10.01 (или другой нужный вам субсчет).
После установки отбора по счету система поймет, что в качестве Субконто1 выступает справочник Номенклатура.
Теперь перейдем к самому важному — превращению обычного плоского списка в таблицу с колонками-неделями. Для этого нам понадобится расширенный режим настроек СКД.
Новая таблица.Теперь проанализируем структуру созданной таблицы:
Субконто1 (это и есть наши материалы).ПериодНеделя. Если такого поля нет в быстром выборе, выберите просто Период, а затем в настройках поля укажите формат или выберите соответствующее дополнение периода.Для того чтобы на пересечении строк и колонок отображались цифры, перейдем на вкладку Поля и сортировки (или Выбранные поля в окне редактирования структуры). Оставим только один показатель — СуммаКонечныйОстаток. Это позволит нам видеть остаток материала на конец каждой недели.
Рассмотрим ситуацию: по какому-то материалу не было движений в течение второй недели месяца. По умолчанию СКД может просто пропустить эту колонку, и визуальный ряд «недель» прервется. Чтобы этого избежать, воспользуемся функцией Дополнение периодов.
В настройках поля ПериодНеделя (в окне редактирования схемы или варианта) необходимо убедиться, что установлен тип дополнения Неделя. Также важно проверить параметры виртуальной таблицы: в поле Периодичность должно стоять значение Неделя или Авто.
Если стандартный интерфейс настроек «Универсального отчета» не позволяет добиться нужной вложенности, можно воспользоваться скрытой возможностью редактирования схемы.
Как указано в материалах форума, в некоторых версиях для этого требуется запуск в Толстом клиенте, однако в актуальных редакциях БП 3.0 (на платформе 8.3.15+) можно выполнить следующие действия:
Если задача требует сложной логики (например, вывода не только бухгалтерской суммы, но и количества, а также расчета отклонений между неделями), проще всего подготовить схему компоновки данных (файл .xml) в консоли отчетов.
Рассмотрим, как загрузить готовую схему в Универсальный отчет:
Для понимания того, как система обращается к данным, приведем пример структуры полей, которую мы формируем в конструкторе:
Выбранные поля:
- Субконто1 (Заголовок: "Материал")
- ПериодНеделя (Заголовок: "Неделя")
- СуммаКонечныйОстаток (Заголовок: "Остаток")
Группировки:
- Строки: Субконто1
- Колонки: ПериодНеделя
Важный нюанс: при работе с 10 счетом помните, что субконто может быть несколько. Если вам нужна детализация по складам, просто добавьте Субконто2 (Склад) в группировку строк под Субконто1. Тогда вы получите иерархический список: Склад -> Материал -> Остатки по неделям.
Таким образом, Универсальный отчет в умелых руках программиста или опытного бухгалтера превращается в полноценный конструктор отчетов, заменяющий написание сотен строк кода на языке запросов.