Как настроить сортировку и группировку по дополнительной аналитике в ОСВ по счету в 1С?

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

В процессе выполнения требований заказчиков разработчики нередко сталкиваются с задачей добавить дополнительный разрезориентированный учет (например, реквизит «Объект») в документы и движения регистра бухгалтерии. Однако при попытке настроить стандартный отчет Оборотно-сальдовая ведомость (ОСВ) по счету с группировкой или сортировкой по созданному полю возникают трудности: отчет либо не выводит данные, либо некорректно рассчитывает итоги.

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

Причина ограничения: как работают виртуальные таблицы регистра бухгалтерии

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

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

  1. Счета учета;
  2. Измерения регистра бухгалтерии;
  3. Виды субконто, привязанные к конкретному счету.

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

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

Решение 1. Использование механизма субконто (Рекомендуемый способ)

Разберем наиболее правильный и штатный способ реализации дополнительного разреза учета. Если клиентам необходима аналитика по объектам на бухгалтерских счетах с возможностью просмотра остатков, оборотов и сортировки в стандартной ОСВ, следует использовать механизм субконто.

Рассмотрим порядок действий по шагам:

  1. Перейдем в План видов характеристик (например, ВидыСубконтоХозрасчетные) и добавим новый вид субконто «Объекты» с типом значения СправочникСсылка.Объекты.
  2. В конфигураторе или в режиме пользователя (в зависимости от настроек конфигурации) добавим созданный вид субконто на требуемые счета Плана счетов.
  3. Заполним значение субконто при проведении документов в наборе записей регистра бухгалтерии.

При таком подходе стандартный отчет «Оборотно-сальдовая ведомость по счету» без каких-либо доработок схемы компоновки данных (СКД) позволит группировать, отбирать и сортировать данные по объектам.

Решение 2. Использование измерения регистра бухгалтерии

Выясним условия, при которых реквизит целесообразно перенести в измерения регистра.

Если аналитика «Объект» является сквозной для всех операций регистра и по ней требуется непрерывный учет остатков независимо от счетов и видов субконто, реквизит следует сделать Измерением регистра бухгалтерии.

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

Важно: Добавление нового измерения существенно увеличивает объем таблиц итогов и может повысить нагрузку на систему при проведении документов. Проанализируем необходимость этого шага до внесения изменений в структуру БД.

Решение 3. Детализация отчета до регистратора

Если реквизит «Объект» уже добавлен в документы и движения, но менять структуру субконто или измерений не разрешено, разберем вариант использования поля регистратора в СКД.

В схеме компоновки данных можно обращаться к реквизитам документа через поле Регистратор.Объект или Регистратор.Ссылка.Объект.

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

Решение 4. Использование альтернативных отчетов или создание внешнего отчета

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

  1. Использование отчетов «Карточка счета» или «Отчет по проводкам»: Данные отчеты формируются напрямую по физической таблице движений РегистрБухгалтерии.Хозрасчетный, поэтому в них доступна сортировка по любым реквизитам проводки или документа.
  2. Разработка собственного отчета на СКД: Можно создать произвольный отчет с запросом к таблице РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто. В таком отчете вычислять начальные и конечные остатки придется с помощью ресурсов СКД и функций работы с группировками (например, ВычислитьВыражениеСГруппировкойМассив).

Резюме

Для корректной работы сортировки и группировки в ОСВ необходимо выбирать архитектурное решение в зависимости от задач бизнеса:

← На главную