Работа с таблицами значений
20 мин
Инициализация
Таблица значений создается с помощью оператора Новый
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
Представляет собой набор строк, для каждой из которых определена колонка.
Свойства и методы
1. Свойство Колонки
Содержит коллекцию колонок таблицы. Представляет собой отдельный тип КоллекцияКолонокТаблицыЗначений. Обладает своими свойствами и методами. Единственное свойство колонки - имя. Рассмотрим некоторые из методов.
1.1 Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>)
- <Имя> (необязательный) - Строка - имя колонки. Если не указано пустая строка
- <Тип> (необязательный) - ОписаниеТипов - объект для описание допустимых типов. Если не указан, то любой тип
- <Заголовок> (необязательный) - Строка - заголовок колонки. Используется при визуальном отображении. Если не указан пустая строка
- <Ширина> (необязательный) - Число - ширина колонки в символах. Используется при визуальном отображении
Добавляет колонку в таблицу значений. Как правило, требуется указать <Имя> - формируется по правилам переменных и <Тип> - Новый ОписаниеТипов(<Тип>). К колонкам таблицы доступно обращение по индексу [..].
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
Сообщить(ДанныеФизическихЛиц.Колонки[0].Имя);
1.2 Найти(<ИмяКолонки>)
- <ИмяКолонки> (обязательный) - Строка - наименование колонки
Возвращает КолонкаТаблицыЗНачений, если колонка не найдена возвращает Неопределено.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
НайденнаяКолонка = ДанныеФизическихЛиц.Колонки.Найти("Имя");
Если НайденнаяКолонка <> Неопределено Тогда
Сообщить("Колонка найдена");
Иначе
Сообщить("Такой колонки нет");
КонецЕсли;
1.3 Количество()
Возвращает количество колонок
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
КоличествоКолонок = ДанныеФизическихЛиц.Колонки.Количество();
Сообщить(КоличествоКолонок); // 4
2. Добавить()
Добавляет строку в конец таблицы. СтрокаТаблицыЗначений - отдельный тип со своими свойствами и методами. Доступно обращение к конкретной строке через оператор [..]
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
НоваяСтрока = ДанныеФизическихЛиц.Добавить();
2.1 Свойство <ИмяКолонки>
Для каждой строки можно обратиться к значению колонки этой строки
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
НоваяСтрока = ДанныеФизическихЛиц.Добавить();
НоваяСтрока.Фамилия = "Иванов";
НоваяСтрока.Имя = "Иван";
НоваяСтрока.ДатаРождения = '1990-02-01';
Сообщить(ДанныеФизическихЛиц[0].ДатаРождения); // 01.02.1990 0:00:00
3. Вставить(<Индекс>)
- <Индекс> (обязательный) - Число - индекс строки
Вставляет строку на позицию указанную в <Индекс>
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаПетров = ДанныеФизическихЛиц.Вставить(0);
СтрокаПетров.Фамилия = "Петров";
ФамилияПетров = ДанныеФизическихЛиц[0].Фамилия;
Сообщить(ФамилияПетров); // Петров
4. ВыгрузитьКолонку(<Колонка>)
- <Колонка> (обязательный) - Число, Строка, КоолонкаТаблицыЗначений - колонка, значения которой нужно выгрузить
Возвращает массив значений колонки.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаПетров = ДанныеФизическихЛиц.Вставить(0);
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
КолонкаФамилия = ДанныеФизическихЛиц.ВыгрузитьКолонку("Фамилия");
Для Каждого Фамилия Из КолонкаФамилия Цикл
Сообщить(Фамилия);
КонецЦикла;
5. ЗагрузитьКолонку(<Массив>, <Колонка>)
- <Массив> (обязательный) - Массив - массив значений для загрузки
- <Колонка> (обязательный) - Число, Строка, КолонкаТаблицыЗначений - колонка, в которую будут загружены значения
Загружает в колонку массив в порядке индексов.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
ДатыРождения = Новый Массив;
ДатыРождения.Добавить('1990-02-01'); // Индекс 0: 01.02.1990 0:00:00
ДатыРождения.Добавить('1993-03-02'); // Индекс 1: 02.03.1993 0:00:00
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
ДанныеФизическихЛиц.ЗагрузитьКолонку(ДатыРождения, "ДатаРождения");
Сообщить(ДанныеФизическихЛиц[0].Фамилия + ": " + ДанныеФизическихЛиц[0].ДатаРождения); // Иванов: 01.02.1990 0:00:00
Сообщить(ДанныеФизическихЛиц[1].Фамилия + ": " + ДанныеФизическихЛиц[1].ДатаРождения); // Петров: 02.03.1993 0:00:00
6. ЗаполнитьЗначения(<Значение>, <Колонки>)
- <Значение> (обязательный) - Произвольный - значение, которым заполняются строки.
- <Колонки> (необязательный) - Строка - список имен колонок через запятую, если не указаны, то заполняется все таблица.
Заполняет все строки таблицы указанным значением.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
ДанныеФизическихЛиц.ЗаполнитьЗначения(Истина, "СотрудникОрганизации");
Сообщить(ДанныеФизическихЛиц[0].Фамилия + ": " + ДанныеФизическихЛиц[0].СотрудникОрганизации); // Иванов: Да
7. Индекс(<Строка>)
- <Строка> (обязательный) - СтрокаТаблицыЗначений - строка, для которой нужно определить индекс.
Возвращает индекс указанной строки.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
ИндексСтроки = ДанныеФизическихЛиц.Индекс(СтрокаПетров);
Сообщить(ИндексСтроки); // 1
8. Итог(<Колонка>)
- <Колонка> (обязательный) - Строка - имя колонки
Возвращает сумму по всем строкам указанной колонки
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Стоимость", Новый ОписаниеТипов("Число"));
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = "1С:Программирование для начинающих";
НоваяСтрока.Стоимость = 100;
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = "1С:Предприятие 8.3. Практическое пособие разработчика";
НоваяСтрока.Стоимость = 200;
Сумма = Товары.Итог("Стоимость");
Сообщить(Сумма); // 3
9. Количество()
Возвращает количество строк
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
КоличествоСтрок = ДанныеФизическихЛиц.Количество();
Сообщить(КоличествоСтрок); // 2
10. Найти(<Значение>, <Колонки>)
- <Значение> (обязательный) - Произвольный - значение, которое нужно найти.
- <Колонки> (необязательный) - Строка - список имен колонок через запятую. Если не указан, то поиск по всей таблице.
Возвращает первую найденную строку со значением <Значение>, производя поиск в колонках из списка через запятую в <Колонки>. Если значение не найдено, возвращает Неопределено.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
НайденнаяСтрока = ДанныеФизическихЛиц.Найти("Иванов", "Фамилия");
Сообщить(НайденнаяСтрока.ДатаРождения); // 02.03.1993 0:00:00
11. НайтиСтроки(<ПараметрыОтбора>)
- <ПараметрыОтбора> - структура, <Ключ> - имя колонки, <Значение> - искомое значение
Возвращает массив содержащий найденные строки.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидор";
СтрокаСидоров.ДатаРождения = '1993-03-02';
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ДатаРождения", '1993-03-02');
НайденныеСтроки = ДанныеФизическихЛиц.НайтиСтроки(ПараметрыОтбора);
Для Каждого Строка Из НайденныеСтроки Цикл
Сообщить(Строка.Фамилия);
КонецЦикла;
12. Очистить()
Удаляет все строки таблицы.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
ДанныеФизическихЛиц.Очистить();
КоличествоСтрок = ДанныеФизическихЛиц.Количество();
Сообщить(КоличествоСтрок);
13. Получить(<Индекс>)
- <Индекс> (обязательный) - Число - индекс строки.
Возвращает СтрокаТаблицыЗначений по индексу, работает аналогично [..].
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
Результат = ДанныеФизическихЛиц.Получить(0).Фамилия;
Сообщить(Результат);
14. Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
- <КолонкиГруппировок> (обязательный) - Строка - имена колонок, разделенных запятыми, по которым будет группировка
- <КолонкиСуммирования> (необязательный) - Строка - имена колонок, разделенных запятыми, по которым будет суммирование
Свертка таблицы по Номенклатуре, преобразует таблицу
Номенклатура | Количество |
---|---|
Ручка | 10 |
Рука | 2 |
Книга | 3 |
Книга | 1 |
в таблицу
Номенклатура | Количество |
---|---|
Ручка | 12 |
Книга | 4 |
Строки по колонке «Номенклатура», в которой значения совпадают, объединены в одну, по колонке «Количество» для совпадающих строк по номенклатуре вычислена сумма.
Строки, у которых совпадают значения в колонках, указанных в <КолонкиГруппировок>, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных в <КолонкиСуммирования>, накапливаются.
Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений.
Аналогично другим универсальным коллекциям элементы коллекции, в случае ТаблицыЗначений - СтрокиТаблицыЗначений, доступны для обхода циклом Для Каждого
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = "Ручка";
НоваяСтрока.Количество = 10;
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = "Ручка";
НоваяСтрока.Количество = 2;
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = "Книга";
НоваяСтрока.Количество = 3;
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Номенклатура = "Книга";
НоваяСтрока.Количество = 1;
Товары.Свернуть("Номенклатура", "Количество");
Для Каждого Строка Из Товары Цикл
Сообщить(Строка.Номенклатура + ": " + Строка.Количество);
КонецЦикла;
15. Скопировать
Имеет несколько вариантов использования
15.1 Скопировать строки. Скопировать(<Строки>, <Колонки>)
Если указаны строки и колонки, то только они будут скопированы. Если не указаны, то будет создана полная копия таблицы значений.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаИванов.СотрудникОрганизации = Ложь;
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаПетров.СотрудникОрганизации = Истина;
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидор";
СтрокаСидоров.ДатаРождения = '1993-03-02';
СтрокаСидоров.СотрудникОрганизации = Истина;
Сотрудники = Новый Массив;
Сотрудники.Добавить(СтрокаПетров);
Сотрудники.Добавить(СтрокаСидоров);
СотрудникиОрганизации = ДанныеФизическихЛиц.Скопировать(Сотрудники, "Фамилия, Имя");
Для Каждого Сотрудник Из СотрудникиОрганизации Цикл
Сообщить(Сотрудник.Фамилия + " " + Сотрудник.Имя);
КонецЦикла;
15.2 Скопировать по отбору. Скопировать(<ПараметрыОтбора>, <Колонки>)
Если указан отбор, то только строки из отбора будут скопированы. Если отбор не указан, то будут скопированы все строки таблицы значений. Если указаны колонки, то только эти колонки будут скопированы.
<ПараметрыОтбора> - Структура, <Ключ> - идентификатор колонки, <Значение>- значение отбора
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаИванов.СотрудникОрганизации = Ложь;
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаПетров.СотрудникОрганизации = Истина;
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидор";
СтрокаСидоров.ДатаРождения = '1993-03-02';
СтрокаСидоров.СотрудникОрганизации = Истина;
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("СотрудникОрганизации", Истина);
СотрудникиОрганизации = ДанныеФизическихЛиц.Скопировать(ПараметрыОтбора, "Фамилия, Имя");
Для Каждого Сотрудник Из СотрудникиОрганизации Цикл
Сообщить(Сотрудник.Фамилия + " " + Сотрудник.Имя);
КонецЦикла;
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаИванов.СотрудникОрганизации = Ложь;
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаПетров.СотрудникОрганизации = Истина;
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидор";
СтрокаСидоров.ДатаРождения = '1993-03-02';
СтрокаСидоров.СотрудникОрганизации = Истина;
КопияДанныеФизическихЛиц = ДанныеФизическихЛиц.Скопировать();
Для Каждого Сотрудник Из КопияДанныеФизическихЛиц Цикл
Сообщить(Сотрудник.Фамилия + " " + Сотрудник.Имя);
КонецЦикла;
14. СкопироватьКолонки(<Колонки>)
Создает таблицу значений с заданным списком колонок.
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаИванов.СотрудникОрганизации = Ложь;
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаПетров.СотрудникОрганизации = Истина;
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидор";
СтрокаСидоров.ДатаРождения = '1993-03-02';
СтрокаСидоров.СотрудникОрганизации = Истина;
ДатыРождения = ДанныеФизическихЛиц.СкопироватьКолонки("СотрудникОрганизации, ДатаРождения");
Для Каждого Колонка Из ДатыРождения.Колонки Цикл
Сообщить("Имя колонки: " + Колонка.Имя + ", тип: " + Колонка.ТипЗначения);
КонецЦикла;
16. Сортировать(<Колонки>, <ОбъектСравнения>)
Сортирует таблицу значений
<Колонки> (обязательный) - Строка, одно имя или список имен колонок через запятую, после которых указывается направление - Убыв, Возр. Если не указана, то Возр. Если колонок несколько, то сортировка сначала по первой колонке, затем по второй и т. д.
<ОбъектСравнения> (необязательный) - СравнениеЗначений, объект для сравнения. Для простых типов сравнение по значению
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаПетров.СотрудникОрганизации = Истина;
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаИванов.СотрудникОрганизации = Ложь;
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидор";
СтрокаСидоров.ДатаРождения = '1993-03-02';
СтрокаСидоров.СотрудникОрганизации = Истина;
// Без сортировки
НомерСтроки = 1;
Для Каждого Строка Из ДанныеФизическихЛиц Цикл
Сообщить("" + НомерСтроки + ". " + Строка.Фамилия);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
ДанныеФизическихЛиц.Сортировать("Фамилия Возр");
// Отсортированные
НомерСтроки = 1;
Для Каждого Строка Из ДанныеФизическихЛиц Цикл
Сообщить("" + НомерСтроки + ". " + Строка.Фамилия);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
17. Удалить(<Индекс>)
Удаляет строку таблицы значений по ее индексу
<Индекс> (обязательный) - число, индекс строки
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
ДанныеФизическихЛиц.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Дата"));
ДанныеФизическихЛиц.Колонки.Добавить("СотрудникОрганизации", Новый ОписаниеТипов("Булево"));
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаПетров.Имя = "Петр";
СтрокаПетров.ДатаРождения = '1993-03-02';
СтрокаПетров.СотрудникОрганизации = Истина;
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаИванов.Имя = "Иван";
СтрокаИванов.ДатаРождения = '1990-02-01';
СтрокаИванов.СотрудникОрганизации = Ложь;
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
СтрокаСидоров.Имя = "Сидр";
СтрокаСидоров.ДатаРождения = '1993-03-02';
СтрокаСидоров.СотрудникОрганизации = Истина;
ДанныеФизическихЛиц.Удалить(1);
Для Каждого Строка Из ДанныеФизическихЛиц Цикл
Сообщить(Строка.Имя + " " + Строка.Фамилия);
КонецЦикла;
18. Сдвинуть(<Строка>, <Смещение>)
Перемещает строку
<Строка> (обязательный) - Число, СтрокаТаблицыЗначений, индекс или сама строка, которую нужно переместить
<Смещение> (обязательный) - Число, если положительно перемещение вниз, отрицательное вверх
ДанныеФизическихЛиц = Новый ТаблицаЗначений;
ДанныеФизическихЛиц.Колонки.Добавить("Фамилия", Новый ОписаниеТипов("Строка"));
СтрокаПетров = ДанныеФизическихЛиц.Добавить();
СтрокаПетров.Фамилия = "Петров";
СтрокаИванов = ДанныеФизическихЛиц.Добавить();
СтрокаИванов.Фамилия = "Иванов";
СтрокаСидоров = ДанныеФизическихЛиц.Добавить();
СтрокаСидоров.Фамилия = "Сидоров";
ДанныеФизическихЛиц.Сдвинуть(СтрокаИванов, -1);;
Для Каждого Строка Из ДанныеФизическихЛиц Цикл
Сообщить(Строка.Фамилия);
КонецЦикла;