
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, и только колонки «Номенклатура» и «Дата»
СкопироватьКолонки() – пустая новая таблица, но с такими же колонками
Сортировать():
Табл.Сортировать(«Дата Возр, Сумма Убыв»);
Табл.Сортировать(«Дата, Сумма Убыв»);
Удалить(): СтрокаТаблицыЗначений или Индекс