К статьям

Работа с таблицами значений

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);;

 

Для Каждого Строка Из ДанныеФизическихЛиц Цикл

    Сообщить(Строка.Фамилия);

КонецЦикла;

Задачи на эту тему:

Рейтинг 0

Комментарии