Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Доска 2 доп.doc
Скачиваний:
0
Добавлен:
13.02.2020
Размер:
73.73 Кб
Скачать

5) ТаблицаЗначений

Табл = Новый ТаблицаЗначений();

Делай «раз»: создаем колонки

Табл.Колонки.Добавить(«Номенклатура»);

Табл.Колонки.Добавить(«Дата»);

Табл.Колонки.Добавить(«Сумма»);

А так гораздо лучше:

Табл.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Табл.Колонки.Добавить(«Дата», Новый ОписаниеТипов(«Дата»));

Табл.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Уровень экстра-класса:

Табл.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Табл.Колонки.Добавить(«Дата», Новый ОписаниеТипов(«Дата», Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)));

Табл.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число», Новый КвалификаторыЧисла(15,2)));

Уровень экстра-экстра-класса:

Табл.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»), «Товар», 100);

Табл.Колонки.Добавить(«Дата», Новый ОписаниеТипов(«Дата», Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)), «Срок годности», 45);

Табл.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число», Новый КвалификаторыЧисла(15,2)), «Стоимость», 35);

Таблица значений – это коллекция СТРОК таблицы

Методы:

Добавить():

НоваяСтрока = Табл.Добавить();

НоваяСтрока.Номенклатура = …;

НоваяСтрока.Дата = …;

НоваяСтрока.Сумма = …;

Вставить():

НоваяСтрока = Табл.Вставить(3);

ВыбратьСтроку() – пользователь выбирает строку из таблицы. Возвращается СтрокаТаблицыЗначений

ВыгрузитьКолонку(): по имени колонки выгружается в массив

Табл.ВыгрузитьКолонку(«Номенклатура»);

ЗагрузитьКолонку(): обратная операция

ЗаполнитьЗначения()

Табл.ЗаполнитьЗначения(1000, «Сумма»); // вся колонка «Сумма» заполнена значениями 1000

Индекс(): параметр - СтрокаТаблицыЗначений

Итог():

Сумма = Табл.Итог(«Сумма»);

Количество() – число строк

Найти():

НайденнаяСтрока = Табл.Найти(‘2012115000000’, «Дата»);- первое вхождение: СтрокаТаблицыЗначений или Неопределено

НайтиСтроки():

СтруктураПоиска = Новый Структура();

СтруктураПоиска.Вставить(«Дата», ‘20121115000000’);

СтруктураПоиска.Вставить(«Сумма», 1000);

НайденныеСтроки = Табл.НайтиСтроки(СтруктураПоиска);

Результат – массив с элементами типа СтрокаТаблицыЗначений

Если нет строк – пустой массив

Очистить() – удаляет строки, колонки не удаляет

Получить():

Сумма = Табл[0].Сумма;

Сумма = Табл.Получить(0).Сумма;

Свернуть():

Номенклатура

Дата

Сумма

Яблоки

‘20121115000000’

1000

Груши

‘20121115000000’

2000

Груши

‘20121116000000’

5000

Яблоки

‘20121116000000’

3000

Груши

‘20121115000000’

4000

Табл.Свернуть(«Номенклатура», «Сумма»);

Номенклатура

Сумма

Яблоки

4000

Груши

11000

ВНИМАНИЕ!!! Это в той же таблице!!!

Табл.Свернуть(«Дата», «Сумма»);

Дата

Сумма

‘20121115000000’

7000

‘20121116000000’

8000

Табл.Свернуть(«Номенклатура, Дата», «Сумма»);

Номенклатура

Дата

Сумма

Яблоки

‘20121115000000’

1000

Груши

‘20121115000000’

6000

Груши

‘20121116000000’

5000

Яблоки

‘20121116000000’

3000

Табл.Свернуть(«Номенклатура»);

Номенклатура

Яблоки

Груши

Сдвинуть()

Табл.Сдвинуть(СтрокаТаблицыЗначений, Смещение);

Табл.Сдвинуть(Индекс, Смещение);

Скопировать() – копия таблицы. Но есть нюансы

НоваяТабл = Табл.Скопировать(); // вся таблица

НоваяТабл = Табл.Скопировать(МассивСтрок); // только эти строки

НоваяТабл = Табл.Скопировать(МассивСтрок, «Номенклатура»); // только эти строки, и только колонка «Номенклатура»

НоваяТабл = Табл.Скопировать(, «Номенклатура,Дата»); // все строки, и только колонки «Номенклатура» и «Дата»

СтруктураОтбора = Новый Структура();

СтруктураОтбора.Вставить(«Дата», ‘20121115000000’);

СтруктураОтбора.Вставить(«Сумма», 1000);

НоваяТабл = Табл.Скопировать(СтруктураОтбора, «Номенклатура,Дата»); // только строки, где дата = 15.11.2012 и сумма = 1000, и только колонки «Номенклатура» и «Дата»

СкопироватьКолонки() – пустая новая таблица, но с такими же колонками

Сортировать():

Табл.Сортировать(«Дата Возр, Сумма Убыв»);

Табл.Сортировать(«Дата, Сумма Убыв»);

Удалить(): СтрокаТаблицыЗначений или Индекс