ЮНИТ 12. ТАБЛИЦА ЗНАЧЕНИЙ В ЯЗЫКЕ 1C (В ПРИМЕРАХ)

Описание:

Таблица значений — это не сохраняемый в базе данных объект, который позволяет строить динамические наборы значений и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Он может быть наполнен значениями любого типа, т.е. в одной таблице типы хранимых значений могут быть разными.

Одним из примеров использования данного объекта может служить организация представления в форме списка элементов справочника, отобранных по сложному алгоритму

Необходимо отметить, что таблица значений, связанная с элементом управления Табличное Поле, будет иметь все колонки, имеющиеся в табличном поле, с соответствующими именами. Кроме того, таблица значений может иметь также и собственные колонки, не отображаемые в табличном поле, при этом их имена должны отличаться от имен колонок табличного поля.

Элементы коллекции: СтрокаТаблицыЗначений

Для объекта доступен обход коллекции посредством оператора Для каждого ... Из ... Цикл. При обходе выбираются элементы коллекции.

Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс строки (нумерация с 0).

Свойства:

Индексы

Содержит коллекцию индексов таблицы значений.

Колонки

Содержит коллекцию колонок таблицы значений.

Методы:

Вставить(<Индекс>)

Вставляет строку на позицию в таблице значений, соответствующую указанному индексу. Возвращает вставленную строку. ВыбратьСтроку(<Заголовок>, <НачальнаяСтрока>)

Вызывает модальное диалоговое окно для интерактивного выбора строки из таблицы значений. Возвращает выбранную строку или Неопределено, если пользователь отказался от выбора.

В ы грузить Кол он ку (< Кол он ка >)

Создает массив и копирует в него значения, содержащиеся в колонке таблицы значений. Возвращает этот массив.

Добавить()

Добавляет строку в конец таблицы значений. Возвращает добавленную строку.

ЗагрузитьКолонку(<Массив>, <Колонка>)

Загружает колонку таблицы значений из массива значений.

ЗаполнитьЗначения(<Значение>, <Колонки>)

Заполняет все строки таблицы значений указанным значением. Индекс(<Строка>)

Получает индекс строки в коллекции строк таблицы значений. Если не найдено, то возвращается —1.

Итог(<Колонка>)

Суммирует значения всех строк в указанной колонке.

Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.

Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.

Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.

Если в колонке несколько типов и среди них нет типа Число, то результатом будет значение Неопределено.

КоличествоО

Получает количество строк таблицы значений.

Найти(<3начение>, <Колонки>)

Осуществляет поиск значения в указанных колонках таблицы значений. Возвращает строку, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено.

НайтиСтроки(< ПараметрыОтбора>)

Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска. Возвращает массив строк таблицы значений, соответствующих условиям поиска. Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице значение в массиве тоже будет измененным.

Очистить()

Удаляет все строки таблицы значений. Структура колонок остается неизменной.

Получить(<Индекс>)

Получает значение по индексу. Работает аналогично оператору [].

Свернуть(<КолонкиГруппировок>,<КолонкиСуммирования>) Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются. Важно! Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.

Сдвинуть(<Строка>, <Смещение>)

Сдвигает строку на указанное количество позиций.

Скопировать(<Строки>, <Колонки>)

Если указаны строки и колонки, то только они будут скопированы. Если не указаны, то будет создана полная копия таблицы значений.

Скопировать Колонки(<Колонки>)

Создает таблицу значений с заданным списком колонок.

Сортировать(< Колонки>, <ОбъектСравнения>)

Сортирует таблицу значений в соответствии с указанными правилами сортировки.

Удалить(<Строка>)

Удаляет строку таблицы значений, где Строка — индекс или сама строка.

Конструктор:

Новый ТаблицаЗначений

Процедура КнопкаВыполнитьНажатие (Кнопка)

III Как создать таблицу значений

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

III Как добавить колонки в таблицу значений

Таб.Колонки.Добавить("Фрукт");

Таб.Колонки.Добавить("Цвет");

Таб. Колонки.Добавить(" Вкус");

III Как добавить строки в таблицу значений

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

Стр.Фрукт = "Яблоко";

Стр. Цвет = "Зеленый";

Стр. Вкус = "Кислый";

Стр = Таб.Добавить(); Стр. Фрукт = "Банан"; Стр. Цвет = "Желтый"; Стр. Вкус = "Сладкий";

Стр = Таб.Добавить(); Стр.Фрукт = "Слива"; Стр. Цвет = "Синий"; Стр. Вкус = "Терпкий";

III Как связать таблицу значений на форме

ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "Таб", Истина);

ЭлементыФормы.Таб.Лево = 50;

ЭлементыФормы.Таб. Верх = 50;

ЭлементыФормы.Таб.Ширина = 800;

ЭлементыФормы.Таб. Высота = 600;

ЭлементыФормы.Таб. Значение = Таб;

ЭлементыФормы.Таб. Создать Колонки();

ЭлементыФормы.Таб.Колонки[0].Ширина = 50; ЭлементыФормы.Таб. Передо ваниеЦветовСтрок =

Истина;

III Как добавить в таблицу значений колонку с описанием III типа и заголовка

ОписаниеВеса = Новый ОписаниеТипов("Число",

Новый КвалификаторыЧисла(12, 3));

Таб.Колонки.Добавить("ВесФрукта", ОписаниеВеса, "Вес фрук-

);

Таб[0].ВесФрукта = 100.005;

Таб[1].ВесФрукта = 60.010;

Таб[2].ВесФрукта = 25.000;

ЭлементыФормы.Таб. СоздатьКолонки();

III Как перечислить все строки в таблице значений в 1с

Для Каждого Стр Из Таб Цикл Сообщить(Стр.Фрукт + "" + Стр.Цвет + "" + Стр.Вкус); КонецЦикла;

III Как перечислить все колонки в таблице значений

Для Каждого Колонка Из Таб.Колонки Цикл Сообщить(Колонка.Имя);

КонецЦикла;

III Как интерактивно выбрать строку из таблицы значений

// Таб. ВыбратьСтроку("Выберите фрукт", 1);

III Как выгрузить колонку таблицы значений в массив

// выгрузка названий фруктов в массив МассивФруктов = Таб. Выгрузить Колонку("Фрукт");

// ничего не измениться, так как массив не менялся Таб.ЗагрузитьКолонку(МассивФруктов, "Фрукт");

III Как заполнить значения в колонке для всех строк таблицы III значений

// обнулим вес во всех строках Таб.3аполнить3начения(0, "ВесФрукта");

// выставим новые веса

Таб[0].ВесФрукта = 100;

Таб[1].ВесФрукта = 60;

Таб[2].ВесФрукта = 25;

III Как в таблице значений посчитать итог по колонке

Сообщить(Таб.Итог("ВесФрукта")); // 185

III Как найти строку в таблице значений по значению

// найдем строчку с яблоком и покажем его цвет Сообщить(Таб.Найти( "Яблоко" ).Цвет); //Зеленый

III Как найти строку в таблице значений поиском значения III в определенных колонках

// будем искать по слову "Кислый" в колонках вкус и цвет Сообщить(Таб.Найти("Кислый", "Вкус, Цвет").Фрукт); // Яблоко

//добавим еще один зеленый фрукт Стр = Таб.Добавить();

Стр.Фрукт = "Киви";

Стр. Цвет = "Зеленый";

Стр. Вкус = "Сладкий";

Стр. ВесФрукта = 30;

III Как искать в таблице значений неуникальные значения

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

Отбор.Вставить("Цвет", "Зеленый");

Строки = Таб.НайтиСтроки(Отбор);

Для Каждого Стр Из Строки Цикл Сообщить(Стр.Фрукт); // Яблоко Киви КонецЦикла;

III Как сдвинуть строку таблицы значений

// сдвигаем первую строку на одну позицию вперед Таб.Сдвинуть(0, 1);

// и возвращаем обратно Таб.Сдвинуть(1, -1);

III Как создать копию таблицы значений в 1с 8.3, 8.2

// полная копия

КопияТаб = Таб.Скопировать();

III Как создать копию таблицы значений по нужным III колонкам

// только две колонки будет Фрукт и Цвет КопияТаб = Таб. Скопировать Кол онки("Фрукт, Цвет");

III Как создать копию таблицы значений по отбору

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

Отбор.Вставить("Фрукт", "Яблоко");

// таблица будет содержать только строчку с яблоком КопияТаб = Таб.Скопировать(Отбор);

// таблица будет содержать цвет и вес яблока КопияТаб = Таб.Скопировать(Отбор, "Цвет, ВесФрукта");

III Как свернуть таблицу значений по колонке

// свернем по вкусу, просуммируем по весу Таб.Свернуть("Вкус","ВесФрукта");

III Как отсортировать таблицу значений по колонке

Таб.Сортировать("ВесФрукта Возр");

III Как отсортировать таблицу значений по нескольким III колонкам

Таб.Сортировать("ВесФрукта Возр, Вкус Убыв");

III Как удалить строку из таблицы значений

// по индексу или по значению Таб.Удалить(О);

Конец П роцедуры

 
< Пред   СОДЕРЖАНИЕ     След >