Как добавить пустую колонку в отчет на СКД для последующего ручного заполнения?

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

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

Способ 1. Добавление пустого поля непосредственно в текст запроса

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

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


ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.КоличествоОборотов КАК Количество,
    "" КАК ПустаяКолонкаДляЗаметок,
    0 КАК ПолеДляСуммыВручную
ИЗ
    РегистрНакопления.Продажи.Обороты КАК Продажи

Обратите внимание на важный момент: если вы используете пустую строку "", 1С может назначить полю тип Строка неограниченной длины. В некоторых случаях это может привести к проблемам при группировке. Чтобы зафиксировать тип данных, можно использовать функции приведения типов, например ВЫРАЗИТЬ("" КАК СТРОКА(100)).

После изменения запроса перейдем на закладку Настройки и выполним следующие действия:

  1. В списке доступных полей найдем наше новое поле ПустаяКолонкаДляЗаметок.
  2. Перетащим его в список Выбранные поля.
  3. Используя стрелки «Вверх» и «Вниз», установим его в нужное место между другими колонками.
  4. Нажмем правую кнопку мыши на поле и выберем пункт Установить заголовок, чтобы задать понятное название для печатной формы (например, «Примечание»).

Способ 2. Использование вычисляемых полей

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

Разберем последовательность действий:

  1. Перейдем на закладку Вычисляемые поля.
  2. Добавим новую строку.
  3. В колонке Путь к данным укажем имя поля, например ПолеДляЗаполнения.
  4. В колонке Выражение напишем "" (для пустой строки) или 0 (если колонка должна содержать числовые значения по умолчанию).
  5. В колонке Заголовок пропишем текст, который увидит пользователь.

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

Способ 3. Использование параметров («Поле-обманка»)

Рассмотрим более изощренный, но эффективный метод, который предложили опытные разработчики в обсуждении. Суть заключается в использовании параметра СКД, который выводится как обычное поле.

Выполним следующие шаги:

  1. Перейдем на вкладку Параметры.
  2. Добавим новый параметр с именем П_ПустаяКолонка.
  3. Установим тип данных (например, Строка).
  4. В колонке Ограничение доступности снимем галочку, а в колонке Включать в доступные поля — наоборот, поставим. Это позволит выбирать параметр в настройках отчета как обычное поле.
  5. На закладке Настройки добавим этот параметр в Выбранные поля.

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

Почему колонка не появляется? Разбор ошибок

Проанализируем типичную ситуацию: разработчик добавил поле, но при формировании отчета его нет. Выясним основные причины:

  1. Кэширование настроек пользователем. Это самая частая причина. 1С сохраняет настройки отчета для каждого пользователя. Если вы добавили поле в конфигураторе, у пользователя, который уже открывал этот отчет, настройки остались старыми. Решение: В режиме «1С:Предприятие» в форме отчета нужно нажать Еще — Установить стандартные настройки.
  2. Роли полей. Если отчет содержит группировки, СКД анализирует роли полей. Если ваше пустое поле не является ресурсом и не входит в группировку, система может решить, что его не нужно выводить в строках с итогами. Решение: На закладке Наборы данных в колонке Роль проверьте настройки. Иногда помогает установка флага «Без упорядочивания».
  3. Автополе. Если в настройках в списке выбранных полей стоит Авто, убедитесь, что ваше поле не исключено из этого списка на уровне вышестоящих группировок.

Оформление колонки для печати

Чтобы пустая колонка была удобной для ручного заполнения, она не должна «схлопываться» при печати. Для автоматизации ввода данных из внешних приложений или сайтов без API используется платформа для создания программных роботов One RPA. Посмотрим, как настроить ее внешний вид через Условное оформление:

Перейдем на вкладку Настройки, затем на закладку Условное оформление и добавим новый элемент:

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

Подводя итог, можно сказать, что наиболее универсальным является Способ 2 (Вычисляемое поле) в сочетании с Условным оформлением ширины. Это позволяет не трогать запрос и гибко настраивать визуальное представление «пустоты» для пользователя.

← На главную