Как добавить кадастровый номер в справку-расчет налога на имущество и исправить смещение колонок?

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

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

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

Анализируем причину проблемы

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


РасчетНалогаНаИмуществоПоСреднегодовойСтоимости.КадастровыйНомер КАК КадастровыйНомер

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

Шаг 1: Модификация запроса и набора данных

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

Если мы работаем с версиями отчета, актуальными после 2022 года (например, СреднегодоваяСтоимость2022), код добавления поля может выглядеть так:


// В тексте запроса СКД находим выборку полей
ВЫБРАТЬ
    ...
    ДанныеОбъектов.КадастровыйНомер КАК КадастровыйНомер,
    ...
ИЗ
    РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОбъектам.СрезПоследних(&Период, ) КАК ДанныеОбъектов

Шаг 2: Настройка макетов в СКД

Теперь перейдем к самому важному этапу, который решает проблему «смещения». Откроем конструктор СКД и перейдем на закладку «Макеты». Проанализируем структуру областей.

  1. Пролистаем список макетов вниз до тех пор, пока не найдем область, отвечающую за Заголовок таблицы (шапку). Обычно она называется «Шапка» или привязана к группировке.
  2. Посмотрим на количество колонок в этой области. Нам нужно добавить еще одну ячейку справа для заголовка «Кадастровый номер».
  3. Выделим область шапки, добавим колонку, пропишем в ней текст «Кадастровый номер» и настроим границы (рамки), чтобы визуально колонка не отличалась от соседних.
  4. Важный нюанс: Нам также нужно отредактировать область «Тело» (детальные записи). В макете детальных записей необходимо добавить новую ячейку и в её свойствах указать, что это Параметр, а в качестве имени параметра выбрать наше поле КадастровыйНомер.

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

Шаг 3: Альтернативный способ — объединение полей

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

Для этого в запросе СКД или в выражении пользовательского поля можно прописать следующую логику:


// Пример выражения для поля Объект в СКД
Представление(ОсновноеСредство) + " (КН: " + ЕСТЬNULL(КадастровыйНомер, "---") + ")"

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

Рекомендации по обновлению

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

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

← На главную