Каталог решений - Таблица значений — синтаксический сахар

Таблица значений — синтаксический сахар

Таблица значений — синтаксический сахар

В наличии

Ещё одна идея добавления «синтаксического сахара» в язык 1С для работы с коллекцией значения: Таблица значений.

Категория:

Описание

На идею подобной реализации натолкнуло знакомство с jQuery:

$("#MyId")
 .css("background-color","green")
 .css("color","red")
 .css("fontSize","50px")
 .css("marginLeft","50px")
 .width(150)
 .height(80);

Интересной показалась возможность создание цепочки вызовов методов объекта для изменения его свойств, где каждый метод возвращает текущий объект. Попробовал сделать подобную обёртку для работы с таблицей значений (в качестве обёртки использовал внешнюю обработку):

Код модуля объекта внешней обработки:

// Колонка
Функция К(пИмяКолонки) Экспорт	
	Таблица.Колонки.Добавить(пИмяКолонки);  	
	Возврат ЭтотОбъект;                     	
КонецФункции

// Новая строка
Функция Н() экспорт
	ТекущаяСтрока = Таблица.Добавить();	
	Возврат ЭтотОбъект;
КонецФункции

// Значение ячейки
Функция З(пИмяКолонки,пЗначение) Экспорт	
	ТекущаяСтрока[пИмяКолонки] = пЗначение;              	
	Возврат ЭтотОбъект;
КонецФункции

Таблица = Новый ТаблицаЗначений;

Каждая функция возвращает сам объект внешней обработки — что позволит выстраивать цепочки вызовов подобно jQuery.

Код создания Таблицы значений типовой код:

Таблица = Новый ТаблицаЗначений;
	
Таблица.Колонки.Добавить("Т1");
Таблица.Колонки.Добавить("Т2");
Таблица.Колонки.Добавить("Т3");

нСтр = Таблица.Добавить();
нСтр.Т1 = "т1Знач1";
нСтр.Т2 = "т2Знач1";
нСтр.Т3 = "т3Знач1";

нСтр = Таблица.Добавить();
нСтр.Т1 = "т1Знач2";
нСтр.Т2 = "т2Знач2";
нСтр.Т3 = "т3Знач2";
	
нСтр = Таблица.Добавить();
нСтр.Т1 = "т1Знач3";
нСтр.Т2 = "т2Знач3";
нСтр.Т3 = "т3Знач3";

Код создания Таблицы значений используя обёртку:

ВО = ВнешниеОбработки.Создать("C:\Users\xxx\Documents\ВнешняяОбработка2.epf");	
	
ВО.К("Т1")
	.К("Т2")
	.К("Т3");	
	
ВО.Н()
	.З("Т1","т1Знач1")
	.З("Т2","т2Знач1")
	.З("Т3","т3Знач1");
		
ВО.Н()
	.З("Т1","т1Знач2")
	.З("Т2","т2Знач2")
	.З("Т3","т3Знач2");
		
ВО.Н()
	.З("Т1","т1Знач3")
	.З("Т2","т2Знач3")
	.З("Т3","т3Знач3");

Трудно оценить практическое значение данной статьи, но возможно кого-то натолкнёт на какую либо идею.

Платформа 8.х (платформа не имеет значения, скринов обработки нет — обработка с 3мя экспортными функциями в модуле объекта обработки — код представлен в статье)

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