Top.Mail.Ru
16 декабря 2025
Формат: online
Митап «ТЗ для системных аналитиков: шаблоны, кейсы, практики применения»

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

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

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

 Данные в ячейках табличного документа могут храниться в одном из двух свойств ячейки: «Текст» или «Значение». Использованием этих свойств управляет свойство «СодержитЗначение», если в нем установлено значение «Истина», то данные можно записать в свойство «Значение», при этом свойство «Текст» становится недоступным для использования, тогда как в значении «Ложь» свойство «Текст» доступно для записи, а свойство «Значение» становится недоступным. Свойство «Текст» позволяет хранить данные только с типом «Строка», в свойство «Значение» можно записывать ссылочные типы и примитивные типы.

Данные, отображаемые в табличном документе, могут быть преобразованы в таблицу значений (например, для загрузки в табличную часть) посредством построителя запроса:

Построитель = Новый ПостроительЗапроса;

Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДокумент.Область());

ТаблицаЗначений = Построитель.Результат.Выгрузить();

Для ячеек с установленным свойством «СодержитЗначение = Истина» можно использовать встроенные элементы управления (поле ввода, флажок). При этом если видимость встроенного элемента управления установлена в значении «Ложь», то элемент управления будет отображаться в ячейке, только когда активирован режим редактирования.

В событии табличного документа «Выбор» (которое наступает при двойном клике на ячейке) можно реализовать код проверки координат ячейки.

&НаКлиенте

Процедура ТабличныйДокументВыбор(Элемент, Область, СтандартнаяОбработка)

      // Координаты ячейки

      НомерСтроки = Область.Верх;   

      НомерКолонки = Область.Лево;



      // Получение данных ячейки

      Если Область.СодержитЗначение = Истина Тогда

            Значение = Область.Значение;

      Иначе

            Текст = Область.Текст;   

      Конецесли;

КонецПроцедуры

Иногда требуется определить количество колонок в таблице табличного документа. Это можно сделать с помощью свойства «ШиринаТаблицы», при этом свойство «ВысотаТаблицы» показывает количество строк в таблице.

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

В случае если требуется динамически устанавливать для отдельных строк режим «Только просмотр» в зависимости от данных в строке, лучше использовать событие поля табличного документа «ПриАктивизацииОбласти». В данный обработчик события передается параметр «Элемент», содержащий поле табличного документа. Используя свойство поля табличного документа «ТекущаяОбласть», можно получить координаты области (строки и колонки) и по ним данные из нужных колонок строки.

Использование перетаскивания

Для поля табличного документа доступно перетаскивание, позволяющее мышью переносить значения в табличный документ или из табличного документа. Этой возможностью управляют два свойства: «РазрешитьНачалоПеретаскивания» и «РазрешитьПеретаскивание». Первое свойство позволяет управлять источником данных при перетаскивании, второе – приемником данных. При перетаскивании генерируются события: в источнике — «НачалоПеретаскивания», «ПроверкаПеретаскивания» и в приемнике —  «Перетаскивание» и «ОкончаниеПеретаскивания».

Табличные документы также имеют следующие дополнительные возможности:

  • группировки,
  • примечания,
  • расшифровки.

Использование примечаний

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

ОбластьЯчеек.Примечание.Текст = "Текст примечания";

Использование расшифровок

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

Использование группировки

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

Возможность фиксации области табличного документа программно

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

ТабличныйДокумент.ФиксацияСверху = 5;

ТабличныйДокумент.ФиксацияСлева = 1;

Выводы

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

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar