Супер каротее с таблицей значений
# Как создать таблицу значений и заполнить ее поля?
ТаблицаЗначений = Новый ТаблицаЗначений;
# Создать нужные колонки.
ТаблицаЗначений.Колонки.Добавить("Фамилия");
ТаблицаЗначений.Колонки.Добавить("Возраст");
# Добавить новую строку и задать значения в колонках таблицы.
НоваяСтрока = ТаблицаЗначений.Добавить();
НоваяСтрока.Фамилия = "Иванов";
НоваяСтрока.Возраст = 23;
# Добавить новую строку и задать значения в колонках таблицы.
НоваяСтрока = ТаблицаЗначений.Добавить();
НоваяСтрока["Фамилия"] = "Иванов";
НоваяСтрока["Возраст"] = 23;
# Как найти значение в таблице значений?
НайденнаяСтрока = ТаблицаЗначений.Найти(ИскомоеЗначение);
// ЗДЕСЬ МЫ УКАЗЫВАЕМ В КАКИХ КОЛОНКАХ ИСКАТЬ
НайденнаяСтрока = ТаблицаЗначений.Найти(ИскомоеЗначение, "Поставщик, Покупатель");
# Сформировать структуру отбора.
СтруктураПоиска = Структура("Сотрудник", ИскомоеЗначение);
# Найти строки.
МассивНайденныхСтрок = ТаблицаЗначений.НайтиСтроки(СтруктураПоиска);
## Как перебрать строки таблицы значений?
Для Каждого ТекущаяСтрока Из ТаблицаСотрудников Цикл
Сообщить(ТекущаяСтрока.Сотрудник);
КонецЦикла;
СтаршийИндекс = ТаблицаСотрудников.Количество() - 1;
Для Сч = 0 по СтаршийИндекс Цикл
Сообщить(СписокСотрудников[Сч].Сотрудник);
КонецЦикла;
# Как удалить строки (колонки) таблицы значений?
ТаблицаЗначений.Удалить(УдаляемаяСтрока);
ТаблицаЗначений.Удалить(0);
ТаблицаЗначений.Колонки.Удалить(УдаляемаяКолонка);
ТаблицаЗначений.Колонки.Удалить(0);
СтаршийИндексКолонок = ТаблицаЗначений.Колонки.Количество() - 1;
Индекс = ТаблицаЗначений.Количество() - 1;
Пока Индекс > = 0 Цикл
Для Сч = 0 По СтаршийИндексКолонок Цикл
Если ТипЗнч(ТаблицаЗначений[Индекс][Сч]) = Тип("Число") Тогда
ТаблицаЗначений.Удалить(Индекс);
Прервать;
КонецЕсли;
КонецЦикла;
Индекс = Индекс - 1;
КонецЦикла;
Как заполнить таблицу значений, если имена колонок содержатся в переменных?
НоваяСтрока = ТаблицаЗначений.Добавить();
НоваяСтрока[ИмяКолонки] = Значение;
# Как заполнить всю колонку таблицы значений нужным значением?
ТаблицаЗначений.ЗаполнитьЗначения(Ложь, "ФлагФискальногоУчета");
# Таблицу значений "ТаблицаПолучатель" заполнить данными таблицы значений "ИсходнаяТаблица":
ТаблицаПолучатель = ТаблицаИсходная.Скопировать();
Для Каждого СтрокаИсходнойТаблицы Из ИсходнаяТаблица Цикл
НоваяСтрока = ТаблицаПолучатель.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаИсходнойТаблицы);
КонецЦикла;
ОдноименныеКолонки = Новый Массив();
Для Каждого Колонка Из ИсходнаяТаблица.Колонки Цикл
СовпадающаяКолонка = ТаблицаПолучатель.Колонки.Найти(Колонка.Имя);
Если СовпадающаяКолонка <> Неопределено Тогда
// Получить свойства колонки.
Индекс = ТаблицаПолучатель.Колонки.Индекс(СовпадающаяКолонка);
Имя = Колонка.Имя;
ТипЗначения = Колонка.ТипЗначения;
Заголовок = Колонка.Заголовок;
Ширина = Колонка.Ширина;
// Заменить колонки в таблице-получаетеле.
ТаблицаПолучатель.Колонки.Удалить(Индекс);
ТаблицаПолучатель.Колонки.Вставить(Индекс, Имя, ТипЗначения, Заголовок, Ширина);
// Добавить очередное имя совпадающих колонок в массив.
ОдноименныеКолонки.Добавить(Колонка.Имя);
КонецЕсли;
КонецЦикла;
// Цикл перебора строк исходной таблицы.
Для Каждого СтрокаИсходнойТаблицы Из ИсходнаяТаблица Цикл
// Добавить новую строку в таблицу-получатель.
НоваяСтрока = ТаблицаПолучатель.Добавить();
// Заполнить значения в совпадающих ячейках.
Для Каждого ИмяКолонки Из ОдноименныеКолонки Цикл
НоваяСтрока[ИмяКолонки] = СтрокаИсходнойТаблицы[ИмяКолонки];
КонецЦикла;
КонецЦикла;
0 коммент.:
Отправить комментарий