Метод ТАБ_ФОРМА.КОПИРОВАТЬ_РАЗДЕЛЫ
Метод КОПИРОВАТЬ_РАЗДЕЛЫ позволяет копировать непрерывную последовательность разделов из одной формы в другую. Приемником является форма, в отношении которой вызван метод.
ФУНКЦИЯ ЛОГИКА: КОПИРОВАТЬ_РАЗДЕЛЫ(ПЕРЕМ ТАБ_ФОРМА: форма; ЦЕЛОЕ: поз1; ЦЕЛОЕ: поз2; ЦЕЛОЕ: поз_вст; ЦЕЛОЕ: кол = 1)
Параметры
- форма
- Табличная форма, откуда будет производиться копирование разделов (источник).
- поз1
- Начальная позиция раздела в форме-источнике.
- поз2
- Конечная позиция раздела (включительно) в форме-источнике.
- поз_вст
- Позиция вставки разделов в форме-приемнике.
- кол
- Количество вставок блока разделов в форму-приемник.
Возвращаемое значение
ДА – в случае успешного выполнения, НЕТ – в случае ошибки.
Копирование разделов в рамках одной формы возможно, но т.к. имена разделов должны быть уникальны, то имена вставляемых разделов изменяются автоматически. Например, имя "Раздел1" заменяется на "Раздел2" и т.д.
При копировании разделов из одной формы в другую встает задача нахождения соответствия шрифтов. Для этого можно установить режим вставки методом УСТ_РЕЖ_ВСТАВКИ. в режиме вставки ТФ_РЕЖИМ_ВСТАВКИ также можно указать до или после указанной позиции осуществлять вставку (константы позиции вставки ТФ_ПВ_ПЕРЕД и ТФ_ПВ_ПОСЛЕ).
Пример:
//копирование разделов в обработчике до_открытия
ТИП Форма(ТАБ_ФОРМА)
[
ПОДМЕНА файл = "Форма.ibf";
ПОДМЕНА до_открытия = {Тиражирование_разделов};
ФУНКЦИЯ Тиражирование_разделов
РЕЗУЛЬТАТ = ДА
ПЕРЕМ ЦЕЛОЕ: номерРаздел = 1
ПЕРЕМ ЦЕЛОЕ: поз = ПОЗ_РАЗДЕЛА("Раздел")
ЦИКЛ ПОКА (номерРаздел < 5)
КОПИРОВАТЬ_РАЗДЕЛЫ(САМ, поз, поз, поз + 1, 1)
поз++
номерРаздел++
КОНЕЦ_ЦИКЛА
КОНЕЦ_ФУНКЦИИ
]
ВЫЧИСЛИТЬ
ПЕРЕМ Форма: тф
// тф <- данные
тф.ПОКАЗАТЬ
КОНЕЦ