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

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

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

Подготовка структуры метаданных для новой графы

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

Для документов и справочников новая графа обычно соответствует новому реквизиту в табличной части. Перейдите к объекту, раскройте ветку «Табличные части» и выберите нужную. Добавьте новый реквизит, задав ему уникальное имя и тип данных. Например, если вы добавляете графу «Артикул поставщика», типом может быть Строка длиной 50 символов.

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

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

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

💡

Используйте синонимы для реквизитов сразу при их создании — это автоматически подставит понятное название в заголовок графы при добавлении поля в форму по умолчанию.

Добавление графы в форму документа или справочника

Когда реквизит создан, его нужно отобразить в интерфейсе. Откройте форму нужного объекта в режиме редактирования. Найдите элемент таблицы, соответствующий вашей табличной части. Обычно он называется так же, как и сама табличная часть, или имеет суффикс «Список».

В палитре свойств таблицы найдите раздел «Колонки». Здесь вы можете добавить новую колонку вручную или перетащить созданный ранее реквизит из дерева метаданных прямо в таблицу формы. Система автоматически свяжет поле формы с реквизитом данных.

Настройте свойства новой колонки. Ключевыми параметрами являются «Заголовок» (то, что увидит пользователь), «Ширина» и «Видимость». Если графа предназначена только для печати или специфических расчетов, можно установить видимость по условию или скрыть её вовсе, оставив доступ к данным через код.

  • 📊 Для числовых полей установите формат строки, например ЧЦ=15; ЧД=2, чтобы значения выравнивались по правому краю и имели два знака после запятой.
  • 📝 Для текстовых полей включите режим «Редактирование», если пользователю нужно вводить данные прямо в списке.
  • 🔍 Добавьте подсказку в свойство «Комментарий», чтобы помочь пользователям понять назначение новой графы.

Иногда требуется добавить графу, которая не хранится в базе, а вычисляется на лету. В этом случае в форму добавляется реквизит формы (не путать с реквизитом объекта). Такой реквизит существует только в памяти клиента и исчезает после закрытия окна.

📊 Где вы чаще всего добавляете новые графы?
В печатные формы
В формы документов
В отчеты СКД
В регистрационные формы

Настройка вывода данных в отчетах на СКД

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

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

Для сложных случаев, когда графа должна содержать результат вычислений (например, процент наценки), используйте вкладку «Вычисляемые поля». Здесь можно задать формулу, использующую другие поля набора данных. Синтаксис формул напоминает Excel, но с использованием имен полей в фигурных скобках.

⚠️ Внимание: При добавлении вычисляемых полей убедитесь, что типы данных операндов совместимы. Попытка разделить строку на число приведет к ошибке выполнения отчета у пользователя.

Не забудьте настроить заголовок колонки в разделе «Поля и заголовки». По умолчанию система подставит синоним поля, но для отчетов часто требуются более лаконичные или специфичные названия. Также здесь можно задать порядок сортировки по новой графе.

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

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

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

Работа с табличным документом в печатных формах

Печатные формы в 1С часто реализуются через объект ТабличныйДokument. Добавление графы здесь происходит программно в момент формирования макета. Это требует знаний встроенного языка 1С.

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

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

ОбластьДетальныеДанные = Макет.ПолучитьОбласть("ДетальныеДанные");

ОбластьДетальныеДанные.Параметры.НоваяГрафа = ЭлементДанных.НовыйРеквизит;

ТабДок.Вывести(ОбластьДетальныеДанные);

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

Метод Описание Когда использовать
ВывестиГоризонтально Выводит область, заполняя строки Стандартная печать списков
ВывестиВертикально Выводит область, заполняя колонки Специфические матричные отчеты
ЗаполнитьИзМассива Заполняет таблицу данными из массива Сложные вычисления перед печатью

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

☑️ Проверка печатной формы

Выполнено: 0 / 5

Типичные ошибки при добавлении колонок

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

Другая частая ошибка — несоответствие типов данных. Если в базе поле числовое, а в запросе или формуле отчета оно обрабатывается как строка, система выдаст ошибку преобразования типов. Всегда явно приводите типы при сложных вычислениях.

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

⚠️ Внимание: Интерфейсы и возможности конфигуратора могут отличаться в зависимости от версии платформы 1С:Предприятие (8.2, 8.3, 8.4 и новее). Всегда сверяйте доступные свойства в справке по вашей конкретной версии платформы.

Не забывайте про права доступа. Если вы добавили графу с конфиденциальной информацией (например, «Закупочная цена»), убедитесь, что роли пользователей настроены корректно. Иначе пользователи либо не увидят колонку, либо получат ошибку доступа к данным.

💡

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

Оптимизация производительности при большом количестве граф

Добавление десятков новых граф в табличные части может существенно замедлить работу документа. Каждая лишняя колонка увеличивает объем передаваемых данных между сервером и клиентом. Используйте выборку только необходимых полей в запросах.

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

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

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

Как добавить графу без изменения конфигурации?

В режиме предприятия некоторые формы позволяют пользователю добавлять колонки через меню «Изменить форму» или «Настройки списка». Однако эти изменения сохраняются только в персональных настройках пользователя и не влияют на базу данных глобально.

Почему новая графа не сохраняется при записи документа?

Проверьте, добавлен ли реквизит именно в табличную часть объекта, а не в сам объект. Также убедитесь, что в модуле объекта нет программного кода, который очищает эту колонку перед записью (например, в обработчике ПередЗаписью).

Можно ли скрыть графу для одних пользователей и показать другим?

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

Как изменить порядок колонок в уже работающем документе?

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

Влияет ли добавление графы на скорость проведения документов?

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