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