Примеры программирования с таблицей значений в системе 1С:Предприятие 8

Таблица значений в 1C8

Доброго времени суток, уважаемые читатели! На этом сайте уже были описаны примеры работы с таблицей значений. Например, было написано как объединить две таблицы значений. Сегодня я поделюсь ещё некоторыми примерами программирования с таблицей значений в системе 1С:Предприятие 8.


Таблица значений в 1C8

Отбор по типу значения в таблице значений

Читать/смотреть далее

Как объединить две таблицы значений в системе 1С:Предприятие 8?

Слияние, объединение двух таблиц значений в одну в системе 1C8

Здравствуйте, уважаемые читатели! Эта одна из статей, касающаяся темы программирования с таблицей значений в системе 1С:Предприятие 8. В этой статье приведена функция для слияния двух таблиц значений в одну с неповторяющимися строками.


Слияние, объединение двух таблиц значений в одну в системе 1C8

Функция СлитьТЗ(ТЗ1, ТЗ2, КолонкаПоиска) возвращает таблицу значений в которой обединены все элементы
из таблиц значений ТЗ1 и ТЗ2 по полю КолонкаПоиска.

Функция СлитьТЗ(ТЗ1, ТЗ2, КолонкаПоиска)
	Результат 	= Новый ТаблицаЗначений;
	Результат = ТЗ1.Скопировать();
	Для Каждого Эл из ТЗ1 цикл
		//Проверяем значение в таблице Результат, 
		//если такого значения нет, то продолжаем
		Если Результат.Найти(Эл[КолонкаПоиска],КолонкаПоиска) =
		Неопределено Тогда
			//Проверяем значение в таблице ТЗ2, 
			//если такого значения нет, то добавляем
			Если ТЗ2.Найти(Эл[КолонкаПоиска],КолонкаПоиска) =
			Неопределено Тогда
				НоваяСтрока = Результат.Добавить();
				Для Каждого Кол Из Результат.Колонки Цикл
					НоваяСтрока[Кол.Имя] = Эл[Кол.Имя];
				КонецЦикла;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Для Каждого Эл из ТЗ2 цикл
		//Проверяем значение в таблице Результат, 
		//если такого значения нет, то продолжаем
		Если Результат.Найти(Эл[КолонкаПоиска],КолонкаПоиска) =
		Неопределено Тогда
			//Проверяем значение в таблице ТЗ1, 
			//если такого значения нет, то добавляем
			Если ТЗ1.Найти(Эл[КолонкаПоиска],КолонкаПоиска) =
			Неопределено Тогда
				НоваяСтрока1 = Результат.Добавить();
				Для Каждого Кол Из Результат.Колонки Цикл
					НоваяСтрока1[Кол.Имя] = Эл[Кол.Имя];
				КонецЦикла;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Возврат Результат;
КонецФункции

Читать/смотреть далее