1С 8.3 Объединение Таблиц значений
Данные > Примеры кода 1С > 1С 8.3 Таблица значений
Перейти в основной раздел:
Объединение ТЗ в 1С 8.3:
// Параметры:
// ТЗ1п - ТаблицаЗначений - в эту таблицу, в начало (а не в конец) будут добавлены строки из ТЗ2в
// ТЗ2в - ТаблицаЗначений - таблица, строками которой требуется дополнить значение из параметра ТЗ1п
//
Процедура ДополнитьТЗ1ИзТЗ2(ТЗ1п, ТЗ2в) Экспорт
Для Индекс = 1 По ТЗ2в.Количество() Цикл
ТЗ1п.Вставить(0);
КонецЦикла;
Для Индекс = 0 По ТЗ2в.Колонки.Количество() - 1 Цикл
ТЗ1п.ЗагрузитьКолонку(ТЗ2в.ВыгрузитьКолонку(Индекс), Индекс);
КонецЦикла;
КонецПроцедуры
// ТЗ1п - ТаблицаЗначений - в эту таблицу, в начало (а не в конец) будут добавлены строки из ТЗ2в
// ТЗ2в - ТаблицаЗначений - таблица, строками которой требуется дополнить значение из параметра ТЗ1п
//
Процедура ДополнитьТЗ1ИзТЗ2(ТЗ1п, ТЗ2в) Экспорт
Для Индекс = 1 По ТЗ2в.Количество() Цикл
ТЗ1п.Вставить(0);
КонецЦикла;
Для Индекс = 0 По ТЗ2в.Колонки.Количество() - 1 Цикл
ТЗ1п.ЗагрузитьКолонку(ТЗ2в.ВыгрузитьКолонку(Индекс), Индекс);
КонецЦикла;
КонецПроцедуры
Объединение ТЗ (пример 2) в 1С 8.3:
// Объединить таблицы значений.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/86
//
// Параметры:
// МассивТаблиц - Массив из ТаблицаЗначений
//
// Возвращаемое значение:
// ТаблицаЗначений
//
// Пример:
//
// ТЗ1 = Новый ТаблицаЗначений;
// ТЗ1.Колонки.Добавить("К1");
// ТЗ1.Добавить().К1 = 1;
//
// ТЗ2 = Новый ТаблицаЗначений;
// ТЗ2.Колонки.Добавить("К2");
// ТЗ2.Добавить().К2 = 2;
//
// Таблицы = Новый Массив;
// Таблицы.Добавить(ТЗ1);
// Таблицы.Добавить(ТЗ2);
//
// Результат = ОбъединитьТаблицыЗначений(Таблицы);
// | К1 | К2 |
// | 1 | |
// | | 2 |
//
//
Функция ОбъединитьТаблицыЗначений(Знач МассивТаблиц) Экспорт
Результат = Новый ТаблицаЗначений();
Для Каждого ТаблицаЗначений Из МассивТаблиц Цикл
Для Каждого КолонкаТаблицы Из ТаблицаЗначений.Колонки Цикл
Если Результат.Колонки.Найти(КолонкаТаблицы.Имя) = Неопределено Тогда
Результат.Колонки.Добавить(КолонкаТаблицы.Имя, КолонкаТаблицы.ТипЗначения,
КолонкаТаблицы.Заголовок, КолонкаТаблицы.Ширина);
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗаполнитьЗначенияСвойств(Результат.Добавить(), СтрокаТаблицы);
КонецЦикла;
КонецЦикла;
Возврат Результат;
КонецФункции
// MIT License
//
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/86
//
// Параметры:
// МассивТаблиц - Массив из ТаблицаЗначений
//
// Возвращаемое значение:
// ТаблицаЗначений
//
// Пример:
//
// ТЗ1 = Новый ТаблицаЗначений;
// ТЗ1.Колонки.Добавить("К1");
// ТЗ1.Добавить().К1 = 1;
//
// ТЗ2 = Новый ТаблицаЗначений;
// ТЗ2.Колонки.Добавить("К2");
// ТЗ2.Добавить().К2 = 2;
//
// Таблицы = Новый Массив;
// Таблицы.Добавить(ТЗ1);
// Таблицы.Добавить(ТЗ2);
//
// Результат = ОбъединитьТаблицыЗначений(Таблицы);
// | К1 | К2 |
// | 1 | |
// | | 2 |
//
//
Функция ОбъединитьТаблицыЗначений(Знач МассивТаблиц) Экспорт
Результат = Новый ТаблицаЗначений();
Для Каждого ТаблицаЗначений Из МассивТаблиц Цикл
Для Каждого КолонкаТаблицы Из ТаблицаЗначений.Колонки Цикл
Если Результат.Колонки.Найти(КолонкаТаблицы.Имя) = Неопределено Тогда
Результат.Колонки.Добавить(КолонкаТаблицы.Имя, КолонкаТаблицы.ТипЗначения,
КолонкаТаблицы.Заголовок, КолонкаТаблицы.Ширина);
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
ЗаполнитьЗначенияСвойств(Результат.Добавить(), СтрокаТаблицы);
КонецЦикла;
КонецЦикла;
Возврат Результат;
КонецФункции
// MIT License
//
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник