Каталог решений - Как передать таблицу значений через клиента на управляемых формах

Как передать таблицу значений через клиента на управляемых формах

Как передать таблицу значений через клиента на управляемых формах

В наличии

При выполнении одной из задач возникла передать между клиентскими частями обработки данные таблицы значений.
Может, и есть какие либо другие решения, но мне не попадались, да и искать не захотелось.
Накидал по-быстрому свой вариант. Для небольших таблиц работает без каких либо существенных нагрузок на систему.
Может, кому и пригодится данное решение.

Категория:

Описание

Задача. Получить данные из таблицы объекта, поместить эти данные в параметры оповещения
для открываемой формы. Загрузить эти данные в таблицу открывшейся формы.

Получение данных. Данные решено было поместить в массив структур. Структура описывает данные строки таблицы значений.

// ВыгрузитьТаблицуЗначенийВМассив:
// Выгружает данные из таблицы значений в массив структур.
// Структура содержит данные строки. Ключами являются имена колонок

&НаСервере
Функция ВыгрузитьТаблицуЗначенийВМассив(ИмяТаблицыОбъекта)
	
	ТаблицаОбъекта = Объект[ИмяТаблицыОбъекта].Выгрузить();
	
	МассивСтрок = Новый Массив;
	
	Для Каждого СтрокаДанных Из ТаблицаДанных Цикл
		
		СтруктураСтроки = Новый Структура;
		
		Для Каждого Колонка Из ТаблицаДанных.Колонки Цикл
			
			ИмяКолонки = Колонка.Имя; 
			СтруктураСтроки.Вставить(ИмяКолонки, СтрокаДанных[ИмяКолонки]);
			
		КонецЦикла;
		
		МассивСтрок.Добавить(СтруктураСтроки);
		
	КонецЦикла;
	
	Возврат МассивСтрок;
	
КонецФункции	

 

Получение данных из массива запись их в таблицу значений

///////////////////////////////////////////////////////////////////////////////
// ЗагрузитьТаблицуЗначенийИзМассива:
// Загружает данные из массива структур в таблицу значений.
// Таблица значений може быть как реквизитом объекта, так и
// реквизитом формы.

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

 

has been added to your cart:
Оформление заказа