Архив рубрики: Работа с таблицами значений

Удаление строк из таблицы значений (обход сверху)

Для того, чтобы удалить строки из таблицы значений 1С по определённому условию, можно использовать цикл «Для Каждого Из« и обойти таблицу, начиная с первой строки.

Предположим, что таблица имеет две колонки — «Договор» и «Валюта», где «Валюта» — валюта договора. Необходимо из таблицы удалить все строки с теми договорам, валюта которых находится в определённом списке:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// МассивВалют - массив, в котором хранится список валют.
//
// Построчно обходим таблицу значений
Для Каждого Стр ИЗ ОсновнаяТаблицаДанных Цикл
	// Вводим счетчик
	Сч = 0;
	Пока Сч < ОсновнаяТаблицаДанных.Количество() Цикл
		// Получаем строку таблицы значений по индексу
		СтрокаТаблицы = ОсновнаяТаблицаДанных.Получить(Сч);
		// Если значение валюты в текущей строке таблицы значений входит
		// в массив валют - удаляем строку. Счётчик при этом не меняет своего
		// значения. Этим обеспечивается построчная проверка таблицы
		// начиная сверху.
		Если МассивВалют.Найти(СтрокаТаблицы.Валюта) <> Неопределено Тогда
			ОсновнаяТаблицаДанных.Удалить(СтрокаТаблицы);
		Иначе
			Сч = Сч + 1;
		КонецЕсли;
	КонецЦикла;
КонецЦикла;

Добавить колонку из одной таблицы значений к другой

Как добавить колонку одной таблицы значений к другой, связав, при этом, значения по ключевым полям?

Предположим, у нас есть две таблицы значений — «ПерваяТЗ» и «ВтораяТЗ». Их состав:

ПерваяТЗ:

Номенклатура        Цена
Торшер 1000
Утюг 750
Пылесос 5000

ВтораяТЗ:

Номенклатура        ДатаПоставки
Торшер 12.12.2013
Пылесос 16.12.2013
Микроволновая печь 30.11.2013

А получить необходимо таблицу, в которой будет номенклатура, цена этой номенклатуры и дата поставки именно для этой номенклатуры.

Читать далее

Объединение таблиц значений

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// ТаблицаПриемник - таблица, к которой добавляются значения.
// ТаблицаИсточник - таблица, из которой добавляются значения в таблицу-приёмник.
//Сформируем массив совпадающих колонок.
МассивСовпадающихКолонок = Новый Массив();
Для Каждого Колонка ИЗ ТаблицаПриемник.Колонки Цикл
 
	Если ТаблицаИсточник.Колонки.Найти(Колонка.Имя) &lt;&gt; Неопределено Тогда
 
		МассивСовпадающихКолонок.Добавить(Колонка.Имя);
 
	КонецЕсли;
 
КонецЦикла;
 
Для Каждого СтрокаТаблицыИсточника ИЗ ТаблицаИсточник Цикл
 
	СтрокаТаблицыПриемника = ТаблицаПриемник.Добавить();
 
	// Заполним значения в совпадающих колонках.
	Для каждого ЭлементМассива Из МассивСовпадающихКолонок Цикл
 
		СтрокаТаблицыПриемника[ЭлементМассива] = СтрокаТаблицыИсточника[ЭлементМассива];
 
	КонецЦикла;
 
КонецЦикла;

В результате к таблице-приёмнику снизу поочерёдно добавляются все строки из таблицы-источника.

Объединение двух таблиц значений в одну

Имеется две таблицы значений — «ПерваяТЗ» и «ВтораяТЗ». Они имеют следующий вид:

ПерваяТЗ:

Номенклатура        Цена
Торшер 1000
Утюг 750
Пылесос 5000

ВтораяТЗ:

Номенклатура        Цена
Торшер 1000
Мясорубка 3000
Микроволновая печь 5000

Их необходимо объединить так, чтобы не было дублирующихся строк.

Для объединения таблиц значений в 1С можно использовать функцию, возвращающую получающую на входе две таблицы значений и возвращающую результирующую таблицу значений:

Читать далее