Каталог решений - Создание кода новой таблицы значений из реквизита на форме

Создание кода новой таблицы значений из реквизита на форме

Создание кода новой таблицы значений из реквизита на форме

В наличии

Позволяет из реквизита на форме типа «ТаблицаЗначений» создать код новой таблицы значений для вставки в код.

Категория:

Описание

Поступила задача чужую обработку с кучей реквизитов типа "ТаблицаЗначений" с большим количеством полей переписать на регламентное задание и, чтобы не делать руками создание Таблиц кодом, написал следующий код:


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

Вызов: Стр    =ВернутьСкриптСозданияТЗ("ТаблицаЦен",ТЗЦены);

возвращает строку типа

ТаблицаЦен=Новый ТаблицаЗначений;
ТаблицаЦен.Колонки.Добавить("ЕстьОшибки", Новый ОписаниеТипов("Булево"));
ТаблицаЦен.Колонки.Добавить("IDКлиент", Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(20)));
ТаблицаЦен.Колонки.Добавить("Клиент", Новый ОписаниеТипов("СправочникСсылка.СегментыПартнеров"));
....
ТаблицаЦен.Колонки.Добавить("СрокС", Новый ОписаниеТипов("Дата",Новый КвалификаторыДаты(ЧастиДаты.Дата)));
ТаблицаЦен.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15, 1,ДопустимыйЗнак.Любой)));
ТаблицаЦен.Колонки.Добавить("ПроблемаОкругления", Новый ОписаниеТипов("Булево"));

В случае, если поле имеет составной тип, то тоже учитывает.

Код обработки будет интересен для понятия, как работает "Новый ОписаниеТипов" и создания ТаблицыЗначений.

Прилагаю приложенную внешнюю обработку, которая демонстрирует, как все работает.

Запустится на любой конфигурации, открывать через Файл-Открыть.

Когда откроется форма, нажать кнопку "Получить текст".

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