Как добавить поле в табличную часть формы без изменения конфигурации?

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

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

Почему поле не переносится простым перетаскиванием?

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

  1. Связь с данными: Поля в табличной части жестко привязаны к объекту метаданных (ТабличнойЧасти). Если реквизит, который вы хотите перенести, не является колонкой этой таблицы в структуре конфигурации, платформа не позволит его «внедрить» туда простым перемещением элементов в интерфейсе.
  2. Программное формирование: Современные конфигурации, такие как КА 2.4 или 2.5, используют сложные механизмы динамического формирования форм. При открытии формы программный код на сервере может принудительно перестраивать структуру элементов, перекрывая любые ручные правки пользователя.
  3. Ограничения прав: Иногда перенос элементов невозможен из-за установленных в конфигураторе свойств группы, запрещающих модификацию состава элементов пользователями.

Вариант 1: Использование дополнительных реквизитов

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

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

  1. Перейдите в раздел Администрирование — Общие настройки.
  2. Убедитесь, что включена опция Дополнительные реквизиты и сведения.
  3. В карточке документа или в настройках вида номенклатуры/документа добавьте новый реквизит.
  4. Если реквизит добавлен для Табличной части, он автоматически появится в интерфейсе формы как доступная колонка.

Вариант 2: Использование Расширения конфигурации

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

Разберем процесс по шагам:

  1. Откройте Конфигуратор и создайте новое расширение через меню Конфигурация — Расширения конфигурации.
  2. Добавьте в расширение нужную форму документа.
  3. В форме расширения добавьте реквизит в табличную часть, если это необходимо, или измените видимость/расположение существующих элементов.
  4. Так как формы часто строятся динамически, вам может потребоваться программная доработка. Используйте обработчик ПриСозданииНаСервере для принудительного вывода данных.

Пример программного доступа к данным в табличной части:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Доступ к табличной части через объект
    Для Каждого СтрокаТЧ Из Объект.Премии Цикл
        // Здесь можно дозаполнить данные или изменить свойства колонок
        СтрокаТЧ.СпособОтражения = ПолучитьСпособОтражения(СтрокаТЧ.МестоПолученияДохода);
    КонецЦикла;
КонецПроцедуры

Как найти нужную форму в Конфигураторе?

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

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

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

Резюме

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

← На главную