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