Использование внешнего источника данных
При хранении данных таблицы во внешнем источнике информация для содержимого таблицы запрашивается из источника данных при помощи обработчика данные. При использовании внешнего источника данных таблица запрашивает данные постепенно, не нужно копировать весь объем информации сразу. Таблица с внешним источником данных не поддерживает стандартный механизм редактирования содержимого ячеек. Для реализации процессов редактирования и сохранения внесенных изменений нужно использовать обработчики редактирование и сохранение.
В примере ниже демонстрируется связывание таблицы с внешним источником данных. Внешний источник данных представлен переменной типа Товары, обработчик данные копирует данные из этой переменной в таблицу. Выражение (строка - элемент.кол_фикс_строк) в качестве индекса используется для предотвращения потери объектов при использовании многоуровнего заголовка в таблице.
Пример
ТИП Товары [ СТРОКА: название; ЧИСЛО: цена; СТРОКА: производитель; ФУНКЦИЯ Заполнение(ЦЕЛОЕ: номер) название = "ТОВАР_" + СТР(номер) цена = СЛУЧ_ЧИСЛО(500) производитель = "Производитель_" + СТР(номер) КОНЕЦ_ФУНКЦИИ ] ТИП Диалог_таб(ДИАЛОГ) [ ПОДМЕНА до_открытия = {Подготовка_данных}; ... Товары: товар[]; ТАБЛИЦА: Таблица1 = [ левый = 25, верхний = 50, ширина = 260, высота = 125, табиндекс = 1003, размер_столбца = 50, размер_строки = 20, столбцы = ( 1: 76, 3: 105 ), данные = {Получение_данных} ]; ФУНКЦИЯ Получение_данных(ПЕРЕМ ТАБЛИЦА: элемент; ЦЕЛОЕ: столбец; ЦЕЛОЕ: строка; ПЕРЕМ *: знач) ЕСЛИ строка > элемент.кол_фикс_строк ТО ВЫБОР (столбец) #1: знач = товар[строка - элемент.кол_фикс_строк].название #2: знач = товар[строка - элемент.кол_фикс_строк].производитель #3: знач = товар[строка - элемент.кол_фикс_строк].цена КОНЕЦ_ВЫБОРА ИНАЧЕ ВЫБОР (столбец) #1: знач = "наименование" #2: знач = "производитель" #3: знач = "цена" КОНЕЦ_ВЫБОРА КОНЕЦ_ЕСЛИ КОНЕЦ_ФУНКЦИИ ФУНКЦИЯ ЛОГИКА: Подготовка_данных РЕЗУЛЬТАТ = ДА ЦИКЛ ДЛЯ (и = 1, 5) товар[и].Заполнение(и) КОНЕЦ_ЦИКЛА КОНЕЦ_ФУНКЦИИ ... ] ВЫЧИСЛИТЬ ПЕРЕМ Диалог_таб: д // д <- данные ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО // д -> данные КОНЕЦ_ЕСЛИ КОНЕЦ