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