Использование внутреннего источника данных
При использовании внутреннего хранения данных в таблице вся информация содержится в индексном поле самой таблицы. В объектном типе ТАБЛИЦА для этого варианта хранения данных в поле элементы содержится вся информация, предназначенная для вывода. В индексном поле элементы хранятся пары место в таблице - данные. Индексами являются целочисленные значения строки и столбца, элементами - значения любого типа.
Использование внутреннего источника данных для таблицы - простой вариант для разработчиков, так как создание такой таблицы почти не требует программирования. Все данные для отображения сразу заносятся в индексное поле таблицы, поэтому таблицы с таким источником данных по своей сути аналогичны электронным таблицам 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)
КОНЕЦ_ЦИКЛА
КОНЕЦ_ФУНКЦИИ
...
]
ВЫЧИСЛИТЬ
ПЕРЕМ Диалог_таб: д
// д <- данные
ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО
// д -> данные
КОНЕЦ_ЕСЛИ
КОНЕЦ