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

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

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

В наличии

Часто возникает необходимость при отладке видеть, что мы получили из запроса к различным источникам данных, но отображение ТЗ не самая простая задача.

Категория:

Описание

Недавно появилась у меня задача получить данные из MS SQL и загрузить их в 1СБП 3.0. И если задачу по получению данных я выполнил достаточно быстро, спасибо //sale.itcity.ru/public/137872/,   то с проблемой вывода этих данных на форму для визуального контроля как-то не складывалось. ТЗ на управляемой форме отображаться никак не хотела. Пришлось по-быстрому сделать табличный документ на форме и заполнять его.

Но, не бросив первоначальную идею и потратив вечер на поиск, как это правильно сделать, натыкался только на программное создание элементов на форме, что в конце-концов и пришлось сделать, но упростив для себя модуль. Я заранее вывожу нужные реквизиты на форму, чтобы это не определять программно, и точно видеть, где потом отобразятся мои данные.

Конфигуратор форма

 

Хотя на форме ТЗ и не видна, так как нет ни одной колонки, но после выполнения все встает на свои места.

В итоге предлагаю два варианта вывода ТЗ на Форму через ТЗ и через Табличный документ (чтобы можно было скопировать).

Модуль выполняется &НаСервере в форме объекта.

 ТаблицаЗапросаТЗ.Загрузить(База_ВыполнитьЗапросИВернутьТаблицуЗначений(ТекстЗапроса)); 
 
 // Далее если нужна ТЗ ...
 
 Для Каждого Колонка ИЗ ТаблицаЗапросаТЗ.Колонки Цикл 
	 Заг=СокрЛП(Колонка.Заголовок);
	 Заг=?(Заг="",Колонка.Имя, Заг); 
	 
	 //Определяем наличие такой же колонки
	 Если не Элементы.Найти(Заг) = неопределено тогда продолжить конецесли;   
	 
	 //Добавляем колонки на форму 
	 МассивДобавляемыхРеквизитов = Новый Массив; 
	 МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Заг, Колонка.ТипЗначения,"ТаблицаЗапросаТЗ" ,Заг)); 
	 
	 //Методы управляемой формы
	 ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); 
	 
	 //Добавляем отображение
	 НоваяКолонка =Элементы.Добавить(Заг,Тип("ПолеФормы"), Элементы.ТаблицаЗапросаТЗ); 
	 НоваяКолонка.Заголовок = Заг; 
	 НоваяКолонка.ПутьКДанным = "ТаблицаЗапросаТЗ."+Заг; 
	 НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; 
 КонецЦикла; 
 
		
		
// Далее если нужен табличный документ ... 
				
		
Т=Новый ТабличныйДокумент(); 
Для Каждого Колонка ИЗ ТаблицаЗапросаТЗ.Колонки Цикл 
	
	Заг=СокрЛП(Колонка.Заголовок); 
	Заг=?(Заг="",Колонка.Имя, Заг);       
	Т.Область("R1C"+Формат(ТаблицаЗапросаТЗ.Колонки.Индекс(Колонка)+1, "ЧГ=")).Текст=Заг; 
КонецЦикла;

Для Каждого СтрокаТЗ ИЗ ТаблицаЗапросаТЗ Цикл 
	Для Каждого Колонка ИЗ ТаблицаЗапросаТЗ.Колонки Цикл 
		Т.Область("R"+Формат(ТаблицаЗапросаТЗ.Индекс(СтрокаТЗ)+2, "ЧГ=")+"C"+Формат(ТаблицаЗапросаТЗ.Колонки.Индекс(Колонка)+1, "ЧГ=")).Текст=СтрокаТЗ[Колонка.Имя]; 
	КонецЦикла; 
КонецЦикла; 
ТаблицаЗапроса = Т; 

P.S. Здесь после всех своих поисков наткнулся на похожую статью 

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