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

Метод ТАБ_ФОРМА.КОПИРОВАТЬ_РАЗДЕЛЫ

Метод КОПИРОВАТЬ_РАЗДЕЛЫ позволяет копировать непрерывную последовательность разделов из одной формы в другую. Приемником является форма, в отношении которой вызван метод.

ФУНКЦИЯ ЛОГИКА: КОПИРОВАТЬ_РАЗДЕЛЫ(ПЕРЕМ ТАБ_ФОРМА: форма; 
                                   ЦЕЛОЕ: поз1; 
                                   ЦЕЛОЕ: поз2; 
                                   ЦЕЛОЕ: поз_вст;
                                   ЦЕЛОЕ: кол = 1)

Параметры

форма
Табличная форма, откуда будет производиться копирование разделов (источник).
поз1
Начальная позиция раздела в форме-источнике.
поз2
Конечная позиция раздела (включительно) в форме-источнике.
поз_вст
Позиция вставки разделов в форме-приемнике.
кол
Количество вставок блока разделов в форму-приемник.

Возвращаемое значение

ДА – в случае успешного выполнения, НЕТ – в случае ошибки.

Копирование разделов в рамках одной формы возможно, но т.к. имена разделов должны быть уникальны, то имена вставляемых разделов изменяются автоматически. Например, имя "Раздел1" заменяется на "Раздел2" и т.д.

При копировании разделов из одной формы в другую встает задача нахождения соответствия шрифтов. Для этого можно установить режим вставки методом УСТ_РЕЖ_ВСТАВКИ. в режиме вставки ТФ_РЕЖИМ_ВСТАВКИ также можно указать до или после указанной позиции осуществлять вставку (константы позиции вставки ТФ_ПВ_ПЕРЕД и ТФ_ПВ_ПОСЛЕ).

Пример:

//копирование разделов в обработчике до_открытия
ТИП Форма(ТАБ_ФОРМА)
[
  ПОДМЕНА файл = "Форма.ibf";
  ПОДМЕНА до_открытия = {Тиражирование_разделов};
 
  ФУНКЦИЯ Тиражирование_разделов
    РЕЗУЛЬТАТ = ДА
    ПЕРЕМ ЦЕЛОЕ: номерРаздел = 1
    ПЕРЕМ ЦЕЛОЕ: поз = ПОЗ_РАЗДЕЛА("Раздел")
    ЦИКЛ ПОКА (номерРаздел < 5)
      КОПИРОВАТЬ_РАЗДЕЛЫ(САМ, поз, поз, поз + 1, 1)
      поз++
      номерРаздел++
    КОНЕЦ_ЦИКЛА
  КОНЕЦ_ФУНКЦИИ
]

ВЫЧИСЛИТЬ
  ПЕРЕМ Форма: тф
  // тф <- данные
  тф.ПОКАЗАТЬ
КОНЕЦ

См. также: