1С 8.3 Объединение Таблиц значений - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

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в.ВыгрузитьКолонку(Индекс), Индекс);
   КонецЦикла;

КонецПроцедуры
Объединение ТЗ (пример 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.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 01.11.2023
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому