Руководство разработчика

Заполнение табличной формы

Заполнение ячеек в табличной форме может осуществляться при помощи двух методов: УСТ_ДАННЫЕ_ЯЧЕЙКИ и ПОДСТАВИТЬ_ДАННЫЕ.

В ячейках табличной формы могут содержаться значения стандартных типов - ЧИЛО, ЦЕЛОЕ, СТРОКА, ДАТА, ВРЕМЯ, ЛОГИКА, а также значение кода объекта аналитики. Кроме того, существуют отдельные типы ячеек - макрос и элемент управления.

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

Метод УСТ_ДАННЫЕ_ЯЧЕЙКИ заполняет табличную форму по ячейкам. Этот метод принимает значение типа ТФ_ЯЧЕЙКА. Объектный тип ТФ_ЯЧЕЙКА использует разные возможности адресации к ячейке что предполагает вариативность заполнения табличной формы. Ячейка табличной формы однозначно идентифицируется тремя числами: номером раздела, номером столбца и номером строки. При заполнении табличной формы при помощи метода УСТ_ДАННЫЕ_ЯЧЕЙКИ обращение к ячейке происходит по этим трем значениям. Но нумерация строк и столбцов может меняться на ходу, например при добавлении и удалении строк и столбцов, поэтому использование номеров строки и столбца не самый предпочтительный вариант. Наиболее устойчивый к ошибкам вариант - это использование идентификаторов ячеек, столбцов и строк вместо номеров строки и столбца.

В Редакторе Форм устанавливаются идентификаторы ячейкам в поле ид.ячейки в Инспекторе объектов или в меню Форма-Ячейки-Идентификатор. В процессе выполнения программы идентификатор ячейки присваивается при помощи метода УСТ_ИДЕНТ_ЯЧЕЙКИ.

Пример 1

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

  ...
  ФУНКЦИЯ Заполнение
    ПЕРЕМ ТФ_ЯЧЕЙКА: яч1, яч2, яч3, яч4, яч5, яч6, яч7, яч8
    яч1 = [имя_раздела = "Раздел1", идент = "фио"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч1, "Иванов Иван Иванович")
    яч2 = [имя_раздела = "Раздел1", идент = "должность"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч2, "Бухгалтер")
    яч3 = [имя_раздела = "Раздел1", идент = "отдел"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч3, "Отдел торговли, сбыта и снабжения")
    яч4 = [имя_раздела = "Раздел3", идент = "удержания"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч4, "НДФЛ13")
    яч5 = [имя_раздела = "Раздел3", идент = "начисления"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч5, "Повременно (Стандарт)")
    яч6 = [имя_раздела = "Раздел3", идент = "удержсумма"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч6, "4841")
    яч7 = [имя_раздела = "Раздел3", идент = "начислсумма"]
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч7, "17000")
    яч8 = [имя_раздела = "Раздел2", идент = "дата"]
	ПЕРЕМ ФОРМАТ_ДАТЫ: формат = [маска = "dd.mm.yyyy", разделитель = "/"]
    ПЕРЕМ СТРОКА: стр = ФОРМАТ_Д(ДАТА_ТЕК, формат)
    УСТ_ДАННЫЕ_ЯЧЕЙКИ(яч8, стр)
  КОНЕЦ_ФУНКЦИИ
  ...

Метод ПОДСТАВИТЬ_ДАННЫЕ осуществляет подстановку сформированных данных в табличную форму. В качетсве подстановок используется связка строкового ключа, который ассоциируется с именем раздела и идентификатором ячейки или строки, и подставляемого значения. Тип ПОДСТАНОВКА_ФОРМЫ не стоит использовать для заполнения форм с большим объемом данных.

Пример 2

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

  ...
  ФУНКЦИЯ Заполнение
    ПЕРЕМ ПОДСТАНОВКА_ФОРМЫ: подстановка
    подстановка.поля["Раздел1:фио"] = "Иванов Иван Иванович"
    подстановка.поля["Раздел1:должность"] = "Бухгалтер"
    подстановка.поля["Раздел1:отдел"] = "Отдел торговли, сбыта и снабжения"
    подстановка.поля["Раздел3:удержания"] = "НДФЛ13"
    подстановка.поля["Раздел3:начисления"] = "Повременно (Стандарт)"
    подстановка.поля["Раздел3:удержсумма"] = "4841"
    подстановка.поля["Раздел3:начислсумма"] = "17000"
    ПЕРЕМ ФОРМАТ_ДАТЫ: формат = [маска = "dd.mm.yyyy", разделитель = "/"]
    ПЕРЕМ СТРОКА: стр = ФОРМАТ_Д(ДАТА_ТЕК, формат)
    подстановка.поля["Раздел2:дата"] = стр
    ПОДСТАВИТЬ_ДАННЫЕ(подстановка)
  КОНЕЦ_ФУНКЦИИ
  ...

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

См. также: